一,申请钉钉账号,登录账号。
二,创建一个告警群组,添加一个机器人。
、
三,脚本配置
在/usr/local/zabbix/share/zabbix/alertscripts目录下面创建脚本,名称为zabbix_dingding.py
脚本的内容如下:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import requests
import json
import sys
import os
headers = {'Content-Type': 'application/json;charset=utf-8'}
api_url = "刚才复制的"
def msg(text):
json_text= {
"msgtype": "text",
"text": {
"content": text
},
"at": {
"atMobiles": [
"1xxxxxxxxxxxxx"
],
"isAtAll": False
}
}
print requests.post(api_url,json.dumps(json_text),headers=headers).content
if __name__ == '__main__':
text = sys.argv[1]
msg(text)
给脚本添加执行权限测试脚本
[root alertscripts]# chmod +x zabbix_dingding.py
[root alertscripts]# ll
total 4
-rwxr-xr-x 1 zabbix zabbix 933 Aug 17 10:05 zabbix_dingding.py
[root alertscripts]# ./zabbix_dingding.py test
{"errmsg":"ok","errcode":0}
[root alertscripts]#
钉钉正确的收到了我们的测试告警,到此监控脚本完成,
四,告警配置
脚本参数 {ALERT.MESSAGE}
信息内容分别为:
操作
默认接收人:告警等级:{TRIGGER.SEVERITY} 主机:{HOSTNAME1} {TRIGGER.NAME}
默认信息:
告警主机:{HOSTNAME1}
告警信息:{TRIGGER.NAME}
告警等级:{TRIGGER.SEVERITY}
告警项目:{ITEM.NAME}
告警时间:{EVENT.DATE}_{EVENT.TIME}
当前状态:故障 值={ITEM.VALUE1}
故障已持续{EVENT.AGE},请尽快处理
事件ID:{EVENT.ID}
恢复操作
默认接收人:告警等级:故障恢复 主机:{HOSTNAME1} {TRIGGER.NAME}
默认信息:告警主机:{HOSTNAME1}
告警信息:{TRIGGER.NAME}
告警项目:{ITEM.NAME}
告警时间:{EVENT.DATE}_{EVENT.TIME}
恢复时间:{EVENT.RECOVERY.DATE}_{EVENT.RECOVERY.TIME}
当前状态:{TRIGGER.STATUS} 值={ITEM.VALUE1}
故障共持续{EVENT.AGE}
事件ID:{EVENT.ID}
确认操作
确认操作:
默认接收人:服务器:{HOST.NAME}: 报警确认
默认信息:
{
服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障!
确认人:{USER.FULLNAME}
时间:{ACK.DATE} {ACK.TIME}
确认信息如下:
"{ACK.MESSAGE}"
问题服务器IP:{HOSTNAME1}
问题ID:{EVENT.ID}
当前的问题是: {TRIGGER.NAME}
}
告警添加完成,先关闭一台机器上面的agent
收到如下告警
确认告警,收到如下信息
启动agent,告警恢复,收到如下信息
告警信息,确认信息,恢复信息接收正常,到此,配置完成!
如果告警信息需要在优化可以参考钉钉官网的资料 :