继添加微信告警之后,极大的方便运维人员查看告警信息。要知道,微信是可以发送图片的,如果某个监控项目发生故障,告警时顺便把近一小时的图发出来岂不是更好。
文档不再详细描述配置只对关键步骤进行说明。有些概念和内容是建立在了解zabbix和了解微信接口之上。
此次图文告警是基于微信告警之后,所以企业号的申请等配置查看http://www.jianshu.com/p/55455c43a346


服务器配置
- 1.将告警脚本weixinnew.py放入默认告警/usr/local/zabbix/share/zabbix/alertscripts/目录下。
- 2.添加执行权限 chmod +x weixinnew.py
zabbix web端配置
- 1.添加Media types

- 2.添加告警动作
Default message 使用html的编写方法(微信要求)
主机名:{HOSTNAME1}<br>
主机IP:{IPADDRESS}<br>
主机组:{TRIGGER.HOSTGROUP.NAME}<br>
告警时间:{EVENT.DATE} {EVENT.TIME}<br>
告警信息: {TRIGGER.NAME}<br>
告警项目:{TRIGGER.KEY1}<br>
问题详情:{ITEM.NAME}:{ITEM.VALUE}<br>
告警值:{TRIGGER.STATUS}:{ITEM.VALUE1}<br>
事件ID:{EVENT.ID}

脚本部分说明
1.需要填写变量
######################################
#可以访问到zabbix页面的URL
URL = 'http://**.**.**.**/zabbix/api_jsonrpc.php'
ZABBIX_URL='http://**.**.**.**/zabbix/index.php'
CHART_URL='http://**.**.**.**/zabbix/chart.php'
#登录zabbix的账号密码
USERNAME='*****'
PASSWORD='*****'
#放cookie的路径
COOKIEURL='*****/cookie'
#方式图片的路径
PIC_PATH ='/*****/image/'
#微信企业号
corpsecret ="*****"
corpid = "*****"
#配置应用id
appid='*'
######################################
2.ip 和key 是从zabbix 传来的截取的,用来获取图片
user = 'jipeng' #微信企业号账号标识
title = str(sys.argv[1]) #zabbix传过来的第一个参数-标题
content = str(sys.argv[2]) #zabbix传过来的第二个参数-内容
ip=re.findall(r"主机IP:(.+?)<br>",content)[0]#截取ip地址
key=re.findall(r"告警项目:(.+?)<br>",content)[0]#截取zabbix key
网友评论
1、URL = 'http://**.**.**.**/zabbix/api_jsonrpc.php'、CHART_URL='http://**.**.**.**/zabbix/chart.php'这2个URL是什么意思,我访问时候并不正确
2、 user = 'jipeng' #微信企业号账号标识,这个对于的账号是什么,我试了corpid 、secret、agentid都不对
#方式图片的路径
PIC_PATH ='/*****/image/'
请问这两个路径是自己在系统下随便创建一下吗
COOKIEURL='*****/cookie'
#方式图片的路径
PIC_PATH ='/*****/image/'
这两个路径是什么路径,Zabbix中都没有找到!!
title = str(sys.argv[1]) #zabbix传过来的第一个参数-标题
content = str(sys.argv[2]) #zabbix传过来的第二个参数-内容
ip=re.findall(r"主机IP:(.+?)<br>",content)[0]#截取ip地址
key=re.findall(r"告警项目:(.+?)<br>",content)[0]#截取zabbix key
这一部分内容需要修改吗?
{u'errcode': -1, u'errmsg': u'Invalid input: Missing a closing quotation mark in string.(json format)'}