配置zabbix server
- 配置脚本执行目录
[root@ip-10-1-9-154 ~]# grep -Ev '^$|#' /etc/zabbix/zabbix_server.conf | grep ^A AlertScriptsPath=/usr/lib/zabbix/alertscripts
- 创建脚本,进入该定义的脚本存放路径下创建用来推送告警消息的脚本,使用自己的webhook.py脚本根据不同版本或平台会有报错,习性添加相应的库就ok.
[root@ip-10-1-9-154 ~]# cd /usr/lib/zabbix/alertscripts [root@ip-10-1-9-154 alertscripts]# vim wechat.py #!/usr/bin/env python #coding:utf-8 import requests import json import sys import os headers = {'Content-Type': 'application/json;charset=utf-8'} api_url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=974c3cca-9e9311-488b-87cd-848c3f1f7713" #webhook地址 def msg(text): json_text= { "msgtype": "text", "text": { "content": text }, } print requests.post(api_url,json.dumps(json_text),headers=headers).content if __name__ == '__main__': text = sys.argv[1] msg(text)
- 赋予脚本执行权限,因为调用必须有写
[root@ip-10-1-9-154 alertscripts]# chmod +x wechat.py [root@ip-10-1-9-154 alertscripts]# python wechat.py 屋里真冷! {"errcode":0,"errmsg":"ok"}
zabbix web页面配置
- 创建报警媒介-管理–>报警媒介类型–>创建媒介类型->新建一个企业微信的报警,脚本名称就是我们脚本名wechat.py.
- 创建动作
- 操作
服务器:{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.SEVERITY} 当前状态:{TRIGGER.STATUS} 告警信息:{TRIGGER.NAME} 告警时间:{EVENT.DATE} {EVENT.TIME} 恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME} 持续时间:{EVENT.AGE} 事件ID:{EVENT.ID}
- 指定报警用户
测试发送告警
- 停掉客户端
[centos@test-jenkins ~]$ sudo systemctl stop zabbix-agent
继续阅读
评论