1 添加机器人
在钉钉群里面添加一个机器人
会获取到一个URL:
'https://oapi.dingtalk.com/robot/send?access_token=62be1ea97b4653b8521f26a4fxxxxxxxxxxxxxx'
2 写一个发送消息的脚本
在zabbix-server端的配置文件zabbix_server.conf中找到报警脚本的配置
AlertScriptsPath=/usr/lib/zabbix/alertscripts
接下来写一个钉钉发送消息的脚本dingding.py,并放到/usr/lib/zabbix/alertscripts目录底下
#!/usr/bin/python3
import requests
import json
import sys
# 告警群,测试环境
url = 'https://oapi.dingtalk.com/robot/send?access_token=62be1ea97b4653b8521f26a4fxxxxxxxxxxxxxx'
def send_msg(msg):
"""
发送消息的函数,这里使用阿里的钉钉
:param msg: 要发送的消息
:return: 200 or False
"""
# url = url
program = {"msgtype": "text", "text": {"content": msg}, }
headers = {'Content-Type': 'application/json'}
try:
f = requests.post(url, data=json.dumps(program), headers=headers)
except Exception as e:
return False
return f.status_code
def main():
msg = sys.argv[1]
send_msg(msg)
if __name__ == '__main__':
main()
修改脚本权限
chmod 755 /usr/lib/zabbix/alertscripts/dingding.py
3 ZABBIX的设置

创建媒体类型

给用户绑定媒体



创建报警动作



添加好操作是这个样子的

恢复操作和更新操作类似,这里不再赘述!
下面给出告警消息的标题和消息内容格式
操作:
默认标题:
服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障!
消息内容:告警主机:{HOST.NAME}告警地址:{HOST.IP}监控项目:{ITEM.NAME}监控取值:{ITEM.LASTVALUE}告警等级:{TRIGGER.SEVERITY}告警信息:{TRIGGER.NAME}告警时间:{EVENT.DATE} {EVENT.TIME}事件ID:{EVENT.ID}当前状态:{TRIGGER.STATUS}
恢复操作:
默认标题:
服务器:{HOST.NAME}: {TRIGGER.NAME}已恢复!
消息内容:
告警主机:{HOST.NAME}告警地址:{HOST.IP}监控项目:{ITEM.NAME}监控取值:{ITEM.LASTVALUE}告警等级:{TRIGGER.SEVERITY}告警信息:{TRIGGER.NAME}告警时间:{EVENT.DATE} {EVENT.TIME}恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}持续时间:{EVENT.AGE}事件ID:{EVENT.ID}当前状态:{TRIGGER.STATUS}
更新操作:
默认标题:
服务器:{HOST.NAME}: 报警确认
消息内容:
确认人:{USER.FULLNAME} 时间:{ACK.DATE} {ACK.TIME} 确认信息如下: "{ACK.MESSAGE}" 问题服务器IP:{HOSTNAME1} 问题ID:{EVENT.ID} 当前的问题是: {TRIGGER.NAME}
添加好的效果

钉钉收到消息的内容



转自Sunzz
关注点赞不迷路[灵光一闪]