一.企业微信机器人告警
记住这个 Webhook地址
二.配置 zabbix server
1.定义脚本目录,我这里就选择了默认的目录/usr/lib/zabbix/alertscripts
[root@zabbix-master ~]# grep -Ev '^$|#' /etc/zabbix/zabbix_server.conf | grep ^AAlertScriptsPath=/usr/lib/zabbix/alertscripts
2.在/usr/lib/zabbix/alertscripts创建发送消息的python脚本,企业微信告警方式
vim/usr/lib/zabbix/alertscripts/webchartAlert.py
#!/usr/bin/python# -*- coding: utf-8 -*-import requestsimport jsonimport sysimport osheaders = {'Content-Type': 'application/json;charset=utf-8'}api_url = "https://qyapi./cgi-bin/webhook/send?key=c3578c16-1a8e-4646-8867777-469488888"def msg(text):json_text= {"msgtype": "text","text": {"content": text},}print requests.post(api_url,json.dumps(json_text),headers=headers).contentif __name__ == '__main__':text = sys.argv[1]msg(text)
备注:钉钉告警脚本如下,更换api_url的地址就可以了
#!/usr/bin/python# -*- coding: utf-8 -*-import requestsimport jsonimport sysimport osheaders = {'Content-Type': 'application/json;charset=utf-8'}api_url = "/robot/send?access_token=72127c3784865520fcc155c7fd051e956ea8081f2c2c3dfd410f888811118888"def msg(text):json_text= {"msgtype": "text","text": {"content": text},}print requests.post(api_url,json.dumps(json_text),headers=headers).contentif __name__ == '__main__':text = sys.argv[1]msg(text)
3.赋予脚本执行权限
[root@zabbix-master alertscripts]# chmod +x webchartAlert.py[root@zabbix-master alertscripts]# python webchartAlert.py 你好
三.zabbix Web 页面配置
1.创建报警媒介类型
管理--> 报警媒介类型--> 创建媒介类型
新建一个企业微信的报警,脚本名称就是我们脚本名:webchartAlert.py
脚本名称,写上一步创建的python脚本的名称,一定要一致,参数(ALERT.MESSAGE)消息内容,也可以根据需要增加:(ALERT.SENDTO)消息发送给谁,(ALERT.SUBJECT)消息主题
2.创建报警媒介media
3.创建动作
配置-动作
切换到操作
告警的消息内容格式:
故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!告警主机:{HOSTNAME1}告警地址:{HOST.IP}告警时间:{EVENT.DATE} {EVENT.TIME}告警等级:{TRIGGER.SEVERITY}告警信息: {TRIGGER.NAME}告警项目:{TRIGGER.KEY1}问题详情:{ITEM.NAME}:{ITEM.VALUE}当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}事件ID:{EVENT.ID}
告警的操作
切换到恢复操作
恢复操作的消息格式
恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!告警主机:{HOSTNAME1}告警地址:{HOST.IP}告警时间:{EVENT.DATE} {EVENT.TIME}告警等级:{TRIGGER.SEVERITY}告警信息: {TRIGGER.NAME}告警项目:{TRIGGER.KEY1}问题详情:{ITEM.NAME}:{ITEM.VALUE}当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}事件ID:{EVENT.ID}
告警消息
钉钉告警的实现方式是一样的,只需要在钉钉群创建机器人,在webchartAlert.py修改api_url的地址为钉钉机器人的地址即可。