我有篇部落格寫到如何用微信發送告警消息,實作了發送文字消息,不能帶圖檔,這樣不是很直覺,最近又研究了一下如何發送圖檔,寫了腳本實作了發送文字+圖檔的告警。
效果如下:
先發送文字消息,下面挨着graph。
這裡隻提供腳本和思路,具體配置請看我的另一篇部落格:(http://wuhf2015.blog.51cto.com/8213008/1688614#662543)
實作方式:
在Action中設定Default Subject的格式為"狀态:#{TRIGGER.STATUS}#主機:#{HOST.NAME}#鍵名:#{ITEM.KEY}#"。這樣可以在腳本裡做判斷,如果狀态為OK則不發送圖檔,如果狀态為problem則發送圖檔。
腳本有了{HOST.NAME}和{ITEM.KEY}這兩個參數後,可以通過查詢Mysql或者調用zabbix_api的方式得到我們必要的變量ItemID,有了這個變量才能擷取圖檔。
通過itemid從zabbix中擷取圖檔後,我們需要将圖檔上傳到微信企業号的臨時素材裡,上傳後我們會得到一個media_id
我們将media_id通過p_w_picpath格式發送出來就能收到圖檔消息了。
腳本:
互相學習:
腳本參照了下面這兩篇部落格:
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項一定按照我寫的來