《ZABBIX全棧級監控實踐》系列將由淺入深探討如何實現ZABBIX全棧級別的監控。
本文是《ZABBIX全棧級監控實踐》的第六篇:主要討論IT監控產品的選型以及Zabbix在該領域的優勢。
一、概述
很抱歉,由于種種原因,很久沒有更新這一系列了。
本章討論的是如何在企業中選擇一個合適的IT監控產品和Zabbix在監控產品中的優勢。原本的寫作計劃中,并沒有想到寫這一主題。之所以想到寫這篇與技術面關系不是特別大的“軟文",主要是因為身邊有越來越多的人在問我類似的問題:你為什么用Zabbix?有沒有Zabbix和其他產品的比較?諸如此類……
在2017年11月24日的Zabbix Conference上海站里,和Zabbix SIA公司的CEO Alexei先生,以及商務總監Sergey先生暢所欲言,更讓我覺得用必要為正在進行IT監控產品選型,或者剛入門Zabbix的同學們分享下。本文會以一個中立的角度進行闡述,歡迎拍磚。
先問問大家,下列監控中類似的痛點是否遇見過?
1、一個系統掛了,發現沒有監控,原來是因為人工一個個遺漏了。(監控人工添加導致遺漏)
2、有100臺服務器,每臺上有5-10個磁盤都要監控他們的磁盤空間、讀寫速度等指標,需要一個個加入到監控系統中。(同一類的監控對象需要重復添加)
3、一臺服務器掛了,結果虛擬機、網絡、宿主機都報故障。(無法定位root cause)
4、希望監控一些業務指標,卻發現沒有方法可以監控。(無法實現個性化監控)
…… …… ……
二、監控解決方案的分類和比較
市場上各種各樣的廠商提供著自己的監控解決方案,基本上可以分為三類:
第一類為針對專業平臺的解決方案,如微軟的System Center Operations Manager,IBM的Tivoli,VMware的vRealize Operations Manager等。
優點1:這一類的解決方案一般由對應平臺的廠商直接提供。因此對于自己所屬的平臺監控無微不至。
優點2:企業級支持,原廠提供服務。一般都是久經考驗的監控平臺,穩定性較高。
劣勢1:對于其他平臺的監控,也許或多或少能夠做一些,但可能存在各種限制甚至無法實現:如使用微軟的SCOM監控linux。
劣勢2:存在license費用,各種各樣的收費規則(按CPU核數,按用戶數,按設備數,按流量)。
劣勢3:由于是商業軟件,源碼不公開,個性化定制較差。
第二類為開源的解決方案,如Zabbix,Nagios,Cacti等。這一類的監控解決方案由公司或者社區提供開發及支持。
優點1:免費!不要錢!一般而言都是license-free。
優點2:開源,自主可控。可以進行源碼定制,已滿足企業需求。
優點3:相對原廠的監控平臺,功能相對更為全面。同時也提供一些標準的API。
劣勢1:對部署和運維的IT人員要求較高。可能存在各種坑,大多數情況下需要自行解決。
劣勢2:可能沒有商業支持。隨著時間演進,該產品可能沒有社區進行進一步維護。
劣勢3:文檔少,中文文檔更少。對英語要求略高。
另外,部分廠商會在這一類產品的基礎上,包裝自己的WEB前端UI,而底層仍然使用該平臺原有的功能,以新瓶裝舊酒的方式提供自己的解決方案,也可以歸納為此類。
第三類為自研的解決方案,如小米的Open Falcon,大眾點評的Central Application Tracking等。這一類的監控更多的誕生于互聯網企業,部分后續進行了開源。
優點1:符合當前最新的互聯網架構和監控需求。
優點2:開源免費。
劣勢1:同上述第二類開源軟件的所有劣勢。
劣勢2:由于并沒有進行過長期的時間運行,穩定性有待考證。
三、尋找最合適的監控解決方案
所有的廠商都會推介自己的解決方案。那么如何在種類繁多的解決方案中選擇最符合自身企業的解決方案呢?
本系列的第一章中提到監控的深度和廣度。選擇方案時可以從這兩個角度進行權衡。
單就深度而言,可能Zabbix無法和其他解決方案相抗衡。比如很多外企會使用全套的微軟平臺,從Exchange郵箱,Lync通信,Sharepoint協作,SQL數據庫,Windows桌面和服務器操作系統……如果此時用Zabbix去監控,未必是最合適的。微軟的System Center Operations Manager有著強大的經驗沉淀和知識庫支持,會更加適合這些企業的監控環境。
而在現在越來越多的企業的IT環境中,異構的情況越來越明顯。同時存在多個平臺,多個品牌的情況越來越多。當然,我們可以使用多套監控平臺進行監控。對Windows使用SCOM來進行監控,對VMware使用VRops進行監控,對網絡用Solarwinds監控,諸如此類。但使用多個平臺進行監控,勢必會導致監控重復、監控遺漏等狀況的出現,從而使得監控噪音或者監控缺失等等。
Zabbix正是解決這一問題的利器。它在確保一定監控深度的同時,有著非常好的廣度和延展性。可以作為一個統一監控平臺的解決方案。
四、為什么選擇Zabbix?
開源:社區支持,模板分享
免費:無商業版和社區版之分,無license授權費用
全棧級:從上層應用,到操作系統,以及底層硬件都可實現統一監控;支持Agent,WMI,SNMP,IPMI,JMX等監控方式
可擴展:用戶可自定義監控項、豐富的API接口可被其他平臺調用
分布式:通過Proxy以支持跨區域、跨地域的分布式監控
企業級:每秒可以收集上萬個指標,未來的4.0版本在極限的情況下每秒可以收集40萬個指標。
Zabbix的一些特性,也大大提升了系統監控的效率。
我們先看看對于文章開始提到的一些監控痛點,Zabbix如何解決?
監控人工添加導致遺漏:
Zabbix提供網絡發現功能,結合網絡發現功能和網絡發現行為,可以自動為網絡上存在的Host添加監控,并套用對應模板。
同一類的監控對象需要重復添加:
Zabbix提供低級別發現(LLD)功能,自動發現Host上同一類的對象(如所有的磁盤,所有的網卡等),并套用統一的監控項和觸發器,無需人工重復添加。
無法定位root cause:
Zabbix可以進行Trigger依賴性關聯,減少故障時候關聯報警,較為快速的定位root cause。
無法實現個性化監控:
Zabbix除了提供傳統的Agent,IPMI,SNMP,JMX,WMI等方式的監控,還可以使用用戶自定義參數(User Parameter)來實現個性化監控。
除此之外,Zabbix提供如Dashboard,分布式,標準化API等特性和功能,在此不再贅述。詳細介紹可參考Zabbix官網 。
五、寫在最后
沒有最好的監控解決方案,只有最合適的。
Zabbix的廣度可以覆蓋80-90%的監控需求,剩余的10-20%(如數據庫調優、內核故障定位等)還是需要依賴于一些專業的監控工具趨勢線。
如果你的企業內部只有單一的一兩個平臺,那么并不推薦使用Zabbix。但如果存在越來越多的異構環境,可以嘗試一些Zabbix。
除了本文提到的一些因素以外,對于學習使用Zabbix的成本(比如需要英語閱讀能力,需要掌握基礎的腳本語言)、后期運維成本等方面,也需要一并在監控產品選型中進行考慮。
拋磚引玉,希望對大家了解Zabbix和進行監控產品選型有所幫助:)