天天看点

zabbix通过微信企业号发送图文消息

    我有篇博客写到如何用微信发送告警消息,实现了发送文字消息,不能带图片,这样不是很直观,最近又研究了一下如何发送图片,写了脚本实现了发送文字+图片的告警。

    效果如下:

zabbix通过微信企业号发送图文消息

先发送文字消息,下面挨着graph。

    这里只提供脚本和思路,具体配置请看我的另一篇博客:(http://wuhf2015.blog.51cto.com/8213008/1688614#662543)

    实现方式:

在Action中设置Default Subject的格式为"状态:#{TRIGGER.STATUS}#主机:#{HOST.NAME}#键名:#{ITEM.KEY}#"。这样可以在脚本里做判断,如果状态为OK则不发送图片,如果状态为problem则发送图片。

zabbix通过微信企业号发送图文消息

脚本有了{HOST.NAME}和{ITEM.KEY}这两个参数后,可以通过查询Mysql或者调用zabbix_api的方式得到我们必要的变量ItemID,有了这个变量才能获取图片。

通过itemid从zabbix中获取图片后,我们需要将图片上传到微信企业号的临时素材里,上传后我们会得到一个media_id

我们将media_id通过p_w_picpath格式发送出来就能收到图片消息了。

zabbix通过微信企业号发送图文消息

    脚本:

    互相学习:

    脚本参照了下面这两篇博客:

http://babyfenei.blog.51cto.com/443861/1728604

http://grass51.blog.51cto.com/4356355/1094098

    注意:

    1.key_ 中不能带引号,例如grpsum{"zabbix server",net.if.in[eth0],last,0}这样就不正确

    2.Action中的Default Subject项一定按照我写的来