天天看點

詭異的zabbix報警功能(短信、郵件)

起因:公司線上zabbix隻有簡單的部署了郵件報警功能;

需求: 希望zabbix線上上實作短信報警及更新報警功能;

經過:

   申請了5台線下内網測試伺服器進行zabbix報警測試;

   搭建過程略過,網上文檔很多。(本人測試的版本為:官方2.1.0版)

 報警

   公司現線上上用的一些nagios報警,用的一些腳本及接口,腳本拿過來,直接修改了,測試了下,可以報警。

<a target="_blank" href="http://blog.51cto.com/attachment/201308/155357728.png"></a>

   --一直到這裡都很順利。(ok,這些東西就不便于貼出來了,關于短信報警的可以借用飛信等文檔)

問題:

   因為是第一次用zabbix,第一感覺是中文界面挺好。于是直接上手去測試下報警功能。

   誰知道一團糟,剛開始完全是沒有思路在那亂添加(當時一團糟的操作現在肯定已經記不起來了)。

<a target="_blank" href="http://blog.51cto.com/attachment/201308/154033817.png"></a>

   于是稍微思考了下,熟悉了下環境。然後算是配置成功了。(當時event與action之間的關系還是想不通,但是配置流程算是下來了。)

   然後剛開始報警動作一直觸發不了,很是郁悶呐。百思不得其解,去查日志,裡面空的,屁都沒有。問人吧,這邊情況糟糕說不清楚,那邊稀裡糊塗的也不知道咋回事,瞎指揮。閑着沒事,一個配置一個配置在那亂點,突然,手機收到了報警資訊!當時高興的,沒有留意1分鐘來了2條!對。2條,我當時定義trigger的時候确定是定義了1次。手機一直在響,一毛一條,雖然是公司的錢。。。但是手機的電是我的啊。于是跑到系統裡面。改了下配置檔案,隻把日志列印了出來,把報警的規則給注釋掉了。

<a target="_blank" href="http://blog.51cto.com/attachment/201308/155537935.png"></a>

    就是這樣,一次2條,不慌不忙。

   本來想的是就這樣,能報警就行。但是老大的意思是短信是要錢的,不能一次2條這麼浪費吧。也是,于是想了下,是不是第一次亂搞的時候啟動了1個守護程序在那呆着,然後第二次又是1個,然後就這樣2條這麼發。于是重新開機了下服務端server,然後no,還是2條這麼在發。糾結。然後繼續開始找配置。終于在動作裡面發現了端倪:原來動作裡面有一個預設的動作,然後不知道是自己之前動了他還是他自己改變的,然後就一直在那發,于是停止掉這個action。終于短信發1條了。笑。。

<a target="_blank" href="http://blog.51cto.com/attachment/201308/160132494.png"></a>

   ③

   這個時候需求又出現了,短信是1分鐘一條在那彪着的,這麼發着,公司不心疼我還心煩的。這次頭真的大了。找不到原因嘛。真悔恨搞zabbix之前沒有好好去看會文檔。。不管怎麼搞一直都是1分/1條。

<a target="_blank" href="http://blog.51cto.com/attachment/201308/160602356.png"></a>

沒有其他的辦法了,找不到根源。于是出現了下面的插曲,确定找了好多人詢問了下,是以整理了一下問了好多人。

<a target="_blank" href="http://blog.51cto.com/attachment/201308/161053117.png"></a>

<a target="_blank" href="http://blog.51cto.com/attachment/201308/161053399.png"></a>

   自己琢磨分析了好久,找人探讨他的具體流程,囧+汗,N多用zabbix的親都沒細究這個問題。。好吧。問題還得自己解決。

   于是我把原先的觸發器啊,動作神馬的全删掉了。重新做一次,記錄每一個步驟!

   然後。。。擦,竟然成功了!是按照我定義的動作來報警的,但是我之前的想法應該怎麼來解釋??顯然這東西已經沒人讨論了。

   好吧,還是自己動手吧。于是自己模拟了幾種情況來定制方案。

<a target="_blank" href="http://blog.51cto.com/attachment/201308/161735181.jpg"></a>

這個就是我測試的幾個實驗了。其中包括不同的觸發器中的函數值,還有action中的問題。最後又在這個基礎上測試了分層報警等等功能。

(其中有個小插曲,當我把動作裡面的收件人改成admin的時候,短信動作是可以提取的,當我改成junqi或者yanzong使用者的時候,發不出來。配置是完全一樣的,最後找了下,是配置使用者的時候沒有給予權限。管理--使用者--“user”--許可權。這裡可能也跟之前我動作執行不了有一定的聯系)

最後的結論是這樣的。

一次報警的觸發及實作:①滿足trigger,然後trigger分為2個岔路,1個為時間event,另一個為動作action。然後報警的時間間隔及分層報警是由action中選項中的參數來定義的!有2個不錯的文檔分享給大家

另外要感謝我的幾個師兄(馬哥教育)及zabbix技術監控群中的幾個朋友對我的幫助。

PS:另外還有個問題現在還未解決。就是1分鐘2次不同的報警的選項。時間間隔都是1分鐘,隐約記得當時是沒動過預設動作裡面的東西的,,那麼他為何還是按照1分鐘1次發給我。這點到現在還有點不清楚。

也就是說①執行個體中,他發了2個郵件。頻率都是1分鐘,如果我當時動了我自己定義的動作裡面的操作,那麼為何系統預設的動作也是1分鐘給我發一次。報警動作的時間間隔是否跟trigger有關系也就是trigger可以控制報警的頻率這樣。 如果有知道的童鞋或者大牛可以留言給我這個問題!或者是我當時真的操作錯了。

本文轉自 陳延宗 51CTO部落格,原文連結:http://blog.51cto.com/407711169/1266148,如需轉載請自行聯系原作者

繼續閱讀