天天看點

zabbix企業應用之自動語音報警平台

我從2013年5月開始研究zabbix,研究的版本是2.0.6,到現在也馬上2年了,目前生産版本還是2.0.6.

現在我公司1000+的伺服器無論是實體機還是vmware、openstack的雲主機、docker容器等等都使用zabbix進行監控。

目前監控方式為:zabbix=>proxy=>client

目前報警方式為:6個等級報警(未分類、消息、警告、一般嚴重、嚴重、災難)全部通過短信或者郵件來通知,嚴重及其以上使用自動語音報警方式通知。

一、語音報警介紹

1、為什麼使用語音報警

之前我這裡招聘了3個監控運維,然後他們使用輪班制度來進行報警通知,但人總是會有疲倦,并且夜間的時候,易睡無法及時的進行報警發現與通知,為了解決這個情況,我開發了一個語音報警平台,針對zabbix的報警通知做一個補充,可以配合zabbix預設的更新機制,實作報警垂直更新+自動語音報警,還可以web化的檢視報警内容與處理報警資訊。

2、傳統報警與語音報警差別

傳統報警多為:郵件模式或者短信模式

對于休息時間,無法上網或睡覺,會導緻無法及時執行報警,耽誤報警發現與處理時間,造成更多的損失。如果有大量報警,會導緻檢視遺漏重要資訊

如果使用語音模式報警,在休息期間,不需要在電腦旁或者打開郵件,就可以通過電話知曉報警資訊;即使夜間睡覺,也能通過電話來及時知曉并處理。

二、語音報警效果圖

我一般看新内容都喜歡先看看效果圖,如果滿足我需求才深入研究,是以我也先給大家展示一下效果圖,大家覺得滿足在向下看,不滿足可以退出。

1、報警界面

<a href="http://s3.51cto.com/wyfs02/M00/6C/10/wKiom1U-55zzqS8BAAOycXAPKgw168.jpg" target="_blank"></a>

在右側的“處理”列裡,可以看到報警是已經恢複,是以“處理”列資訊都是不可以使用,并且為已處理,如果是報警未恢複,則可以通過點選處理,手動關閉語音報警更新下去。

2、語音報警結果界面(也就是上面圖檔裡“詳情”)

3、垂直報警事件更新

三、如何使用語音報警

1、結合zabbix分布式監控系統

語音報警隻是通知的方式,檢測報警并發現還需要使用監控系統,推薦使用zabbix分别是監控,支援多平台(如果redhat系列、Ubuntu系列、windows系列);

在zabbix監控發現報警,通過使用語音報警接口來把報警内容電話通知給對應負責人。

2、事件更新機制(Escalations)

舉例:如果監控主機出現報警,需要第一時間通知,但如果通知後,報警在一定時間仍然存在,或者電話通知後,由于對方夜間休息,沒有接收,這樣就會延誤處理時間,影響業務;

方法:zabbix事件更新機制(Escalations)

優點:

Zabbix監控自帶,相容性好l發送形式能自定義(目前包括:短信通知、郵件通知、語音電話通知);

根據不同報警等級來進行對于通知l自定義報警更新順序、時間等;

一直通知問題直到問題解決。

3、語音接口選擇

目前國内也有語音接口,但我測試感覺一般,并且花費貴,是以我選擇了國際廠商nexmo接口(不是打廣告,對方也不給我錢,這個接口很穩定、速度很快、并且價格便宜)

Nexmo是國際知名短信雲服務公司l在23個國家70多個運作商均能提供短信與語音功能;

Nexmo的企業客戶包括Airbnb、Viber和ICQ等;

按需收費;

通知時間快,通常在5秒内;

強大的售後與技術支援l基礎的報表功能。

四、語音報警平台案例

1、架構資訊

監控服務:使用zabbix分布式監控;

事件更新:使用zabbix的Escalations垂直模式,從負責人、直屬上司、總監等一級一級的更新;

語音通知接口:nexmo的tts;

平台軟體架構:python+tornado+bootstrap

2、架構圖

<a href="http://s3.51cto.com/wyfs02/M00/6C/10/wKiom1U-6lOzZ67UAAKnC1fOIxA013.jpg" target="_blank"></a>

3、實作功能

嚴重等級報警使用語音接口進行報警通知(嚴重等級報警包括:重新開機、逾時、程序不存在等);

報警垂直更新;

報警合并(同一聯系人的報警,會合并為一條在發送);

平台化檢視報警主機資訊、語音報警通知資訊等。

4、zabbix處理報警方式

<a href="http://s3.51cto.com/wyfs02/M01/6C/10/wKiom1U-6pmyaQlfAAbCqpbxCv0080.jpg" target="_blank"></a>

5、報警垂直事件更新流程圖

<a href="http://s3.51cto.com/wyfs02/M02/6C/0C/wKioL1U-7CrSxhq9AAN1lKUsC5U497.jpg" target="_blank"></a>

6、難點

後端:

報警檢測間隔(預設10分鐘)

垂直事件更新順序(前2次為第一聯系人,第二聯系人、運維主管、運維總監)

報警合并(目前為60秒内同一聯系人報警合并為1條)

報警通知時間(白天為報警出現後5分鐘,晚上為10分鐘,重新開機報警為1分鐘)

報警自助處理(如果報警短時間不能解決,則可以通過平台裡的處理按鈕不進行事件更新)

語音平台使用者組權限(從zabbix資料庫裡擷取使用者組權限)

前端:

Tornado的架構學習

Bootstrap與jquery的學習

Highchart的學習

目前我公司從去年12月上線測試此平台,上傳測試2個月滿足需求,是以從2015年2月份正式上線此平台,截止到現在已經運作6個月運作正常,并且報警及時、準确。

現在我這裡已經取消了監控運維,通過使用此平台,每個月能節省1w+以上的人員成本,此平台的成本僅為15-17歐元(12歐元固定來電号碼租用費用,5元左右的報警電話費用),換為人民币為105-114元左右。

此平台由于還在優化與新功能開發中,是以暫不開源,大家開源參考這個架構來自行定義自己的語言報警平台,有問題可以留言一起交流。

 本文轉自 reinxu 51CTO部落格,原文連結:http://blog.51cto.com/dl528888/1639579,如需轉載請自行聯系原作者