zabbix5.0 自定义脚本告警+钉钉机器人
1、创建钉钉机器人
2、机器人脚本部署
[root@vm62 ~]# pip3 install json
[root@vm62 ~]# pip3 install requests
[root@vm62 ~]# cd /usr/lib/zabbix/alertscripts/ #此路径为zabbix自定义脚本路径
[root@vm62 alertscripts]# cat alertding.py
#!/usr/bin/python3
import json
import requests
import sys
def send_msg(url, remiders, msg):
print("begin")
headers = {'Content-Type': 'application/json; charset=utf-8'}
data = {
"msgtype": "text",
"at": {
"atMobiles": remiders,
"isAtAll": False,
},
"text": {
"content": msg,
}
}
r = requests.post(url, data=json.dumps(data), headers=headers)
print("ok")
return r.text
if __name__ == '__main__':
#msg = "zabbix告警机器:"
# 习惯加上钉钉机器人的关键字(我实际是想用关键字:zabbix告警,但手误多输入了“机器”,可以在钉钉机器人界面修改关键字的)
msg = "zabbix告警机器:"+sys.argv[1]+"\n"+sys.argv[2]
# remiders 指告警联系人手机号,
remiders = [150*****606]
# 钉钉机器人的url连接
url = 'https://oapi.dingtalk.com/robot/send?access_token=****'
print(send_msg(url, remiders, msg))
3、zabbix端添加自定义动作和告警
4、创建自定义动作
- 告警内容设置
# 触发告警
主题:服务器:{HOST.NAME}发生:{TRIGGER.NAME}故障!
消息:{
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE}-{EVENT.TIME}
事件ID:{EVENT.ID}
}
# 告警恢复
主题:服务器:{HOST.NAME}发生:{TRIGGER.NAME}故障恢复!
消息:{
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE}-{EVENT.TIME}
事件ID:{EVENT.ID}
}