zabbix3.4.15用python实现钉钉机器人告警的方法是什么
zabbix3.4.15用python实现钉钉机器人告警的方法是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
zabbix服务器监控到异常,可以通过钉钉机器人进行报警通知,具体配置如下:
钉钉机器人配置:
需要新建一个钉钉群,群里面添加一个机器人即可。
报警用到的python脚本:
#cat dingding.py
#!/usr/bin/env python
#coding:utf-8
#zabbix钉钉报警
import requests,json,sys,os,datetime
webhook="https://oapi.dingtalk.com/robot/send?access_token=3dee44ff7fecfxxxxxxxxxxxxxxxxx" --钉钉机器人webhook地址
user=sys.argv[1]
text=sys.argv[3]
data={
"msgtype": "text",
"text": {
"content": text
},
"at": {
"atMobiles": [
user
],
"isAtAll": False
}
}
headers = {'Content-Type': 'application/json'}
x=requests.post(url=webhook,data=json.dumps(data),headers=headers)
if os.path.exists("/tmp/zabbix_dingding.log"):
f=open("/tmp/zabbix_dingding.log","a+")
else:
f=open("/tmp/zabbix_dingding.log","w+")
f.write("\n"+"--"*30)
if x.json()["errcode"] == 0:
f.write("\n"+str(datetime.datetime.now())+" "+str(user)+" "+"发送成功"+"\n"+str(text))
f.close()
else:
f.write("\n"+str(datetime.datetime.now()) + " " + str(user) + " " + "发送失败" + "\n" + str(text))
f.close()
备注:需要把此脚本放到zabbix定义的脚本执行目录里。
查看zabbix里面定义的脚本执行目录方法:
#cat /etc/zabbix/conf/zabbix_server.conf | grep AlertScriptsPath
### Option: AlertScriptsPath
AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts
钉钉机器人webhook地址获取方法:
群设置--> 群机器人-->本群的机器人,选择之前添加的机器人,然后点开,见下图:
WEB界面上的配置:
1、配置用户可以使用脚本报警
用户-->找到Admin,点开,找到报警媒介
2、创建报警媒介:
名称 dingding
类型 脚本
名称 dingding.py
脚本参数:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
创建用户指定报警媒介类型
管理--> 报警媒介类型-->创建媒体类型
创建触发器发送警告动作
配置-->动作-->创建动作
操作和恢复操作需填写的内容如下:
标题:故障信息!
内容:
主机名称:{HOST.NAME}
主机地址:{HOST.IP}
主机分组:{TRIGGER.HOSTGROUP.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警项目:({EVENT.ID}){TRIGGER.KEY1}
告警信息:{TRIGGER.NAME}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
事件状态:{TRIGGER.STATUS}
发送时间:{TIME}
默认标题:恢复信息!
消息内容:
主机名称:{HOST.NAME}
主机地址:{HOST.IP}
主机分组:{TRIGGER.HOSTGROUP.NAME}
恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
恢复项目:({EVENT.RECOVERY.ID}):{TRIGGER.KEY1}
恢复信息:{TRIGGER.NAME}
恢复详情:{ITEM.NAME}:{ITEM.VALUE}:{EVENT.RECOVERY.VALUE}
当前状态:{EVENT.RECOVERY.STATUS}
发送时间:{TIME}
4、测试发送结果
查看告警发送的日志内容,status列为发送状态,error为错误提示信息。
【报表->审计->动作->选择时间段】
【报表->审计->动作日志->选择时间段】
钉钉能收到报警信息,配置完成。
收到的告警信息类似如下图:
关于zabbix3.4.15用python实现钉钉机器人告警的方法是什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。