monitoring systems

在 PDCA (Plan Do Check Act) 的自我改善循環中,check是進入下一輪更新的關鍵。在IT上,就是監控系統的建制。那麼怎樣選擇才好呢?選擇的依據,不外乎:公司要求的,自己喜歡的,人力與財力負擔得起的。總之,最後還是用的順手最重要,以確實達到即時「監控」的目標。

公司要求的 公司已經有既定的傳統,就照著發揚光大吧。主要原因,是該系統的know how應該已經累積不少了,客製化監測,教育訓練,作業SOP等等,這些都需要時間去建置,並且不容易直接從外部導入的珍貴資產。

自己喜歡的 你會看這篇文章,大概因為你是被指定要建置監控系統的承辦人。那麼為了讓這件工作更有趣,找個自己喜歡的系統玩玩吧。至少自己喜歡,學習跟維護的熱情會比較大,這也是系統能夠成功的關鍵因素之一。

人力與財力負擔得起的 公司的規模,老闆的口袋,團隊的質量,都直接影響到IT監控系統的選擇。就像開船一樣,大船承載能力強,但需要水手多,耗材多,而小船雖然成本都低,但承載力不盡人意。從管理的角度來抓出最適當的平衡,就很重要了。

以下就從這個面向,來談談幾個我用過的系統。

Cacti 很多網管是從這個入門的。他最大的優點是資料視覺化 (data visualization) 很方便,並且使用RRD作為資料格式,儲存空間需求低,對於需要進階分析 (analytics) 的團隊很好用。然而他 data fetching (採資料) 的能力稍弱,主要靠SNMP,還有自己客製的script。這是兩大煩惱:SNMP template 很多需要自己刻 (有團隊就派給專人刻),寫script也要花時間 (有專人最好),可怕的是當你監測很多主機時,script的效率,Cacti的負載就面臨考驗了。所以最好是把 data fetching 交給別的系統做,Cacti做好最擅長的 visualization 就可以了。

那麼 SNMP template 可以考慮嗎?見仁見智,如果你用過能夠做 auto discovery (自動列舉) 的系統,大概就不想自己刻了。並且 SNMP 是否足夠安全,也是需要考量的。有些系統則是發展自己的 agent (代理程式),既有自己的傳輸協定,又能像SNMP一樣大把抓資料。以下要談到的系統,通通有agent可以用。

Splunk 有錢有人的話,Splunk是個很好的選擇。他的 log analyzing (log分析) 很強,又可以分散式部署,visualization也很好用,template也一大堆,客製的彈性也大,社群與商業支援也很多,你能想到的他大概都想到了。但Splunk就是得花錢買,而且要調的東西很多,不是自己僱人做就是買人家的support,而且主機資源也不能太少, Splunk agent (Universal Forwarder) 跟主程式都要夠力的硬體才跑的好,畢竟他要做的事情很多很全面嘛。

Nagios 想打好自己做監控的基礎,Nagios不可或缺。沒摸過的話,市面的書不少,先抓幾本來看,不要急著裝起來。Nagios的設計有極簡約的美,core, plugins 各自做好自己的事,但若你不瞭解他的運作原理,裝起來只會呆掉無從下手。Nagios能調的地方非常多,外掛的功能也超多,就怕你自己不知道要監測什麼--沒錯,你得先規劃好自己的監測架構才行,然後才用Nagios組合出你要的架構,就像堆積木一樣。美中不足的是,Nagios 著眼在警報,若你想要 visualization,一定得自己外掛。如果你沒時間想沒時間做,不建議用Nagios Core,而是用商業版的Nagios XI,或Check_MK,這些基於Nagios但已經幫你架構好的監控系統。

Nagios也有個好用的 agent 叫 NRPE,很輕量,但你也得自己告訴他要去check什麼東西才行。 總的來說,Nagios的優點就是到處都能調。

Check_MK 如果你想要輕量如Nagios,又沒時間從頭做,Check_MK會是很好的選擇。他在Nagios的基礎上,掛好了RRD的data fetching與visualization的功能,並且也有自己的agent,會幫你做auto discovery,自動列舉主機需要監控的項目。支援的OS種類繁多,也支援SNMP亦有auto discovery (弱一些)。可惜的是文件不多,得自己K官網文件與系統說明了。

若想進一步客製化圖表,把RRD導給Cacti進一步處理,會是不錯的做法。

Zabbix 這個系統我是最近才裝起來看的。功能很多,能調的東西也很多,agent也有,不愧其名號 enterprise-class open source monitoring solution。但是啊,既然是enterprise,就算系統不花錢,僱人來調來維護也是必要的。這樣的話,用Nagios不就更有彈性嗎?若還有點預算,買Splunk不更全面嗎?若主機少一些,Cacti的SNMP大概就堪用了。所以,這個系統尚在觀察中,至少其龐雜的體系,值得其他系統借鑒。要說內建功能最完整的監控系統,Zabbix應該當之無愧。端看你是要彈性,還是內建功能齊全。

0筆討論 回應文章