作者:Ethan Chen 云智慧解決方案架構(gòu)師,擁有豐富的運維理論及實戰(zhàn)經(jīng)驗。致力于將客戶需求有效地轉(zhuǎn)化為公司產(chǎn)品場景,讓客戶更有效率地理解公司產(chǎn)品并為其提供優(yōu)質(zhì)的技術支撐。
開源監(jiān)控軟件的前世今生
如下面谷歌趨勢圖所示(因有些單詞有二義性,具體數(shù)值可忽略,只看趨勢),與其他開源監(jiān)控產(chǎn)品相比,2004 年的Nagios仍處在較高位置,但由于Nagios沒有緊跟容器腳步、且配置復雜等缺點導致熱度直線式下降。反觀Zabbix,從2004年至今,由于其監(jiān)控的全面性,使得其熱度一直處于平穩(wěn)上升階段。此外,基于RRD存儲開發(fā)的Ganglia與Cacti由于產(chǎn)品自身的一些缺點,熱度也在逐漸下降。下文我們將詳細介紹各個產(chǎn)品的具體情況。
古代(2000-2010)
Zabbix(2004)
Zabbix于1998年開發(fā),2004年正式Release。較于其他開源監(jiān)控產(chǎn)品,Zabbix擁有強大的指標數(shù)據(jù)存儲功能、畫圖功能,并且真正地做到了All in One全面監(jiān)控,解決了運維人力和時間成本上的問題。
基于以上功能優(yōu)點,以及大量完善的教程文檔,Zabbix在國內(nèi)迅速傳播發(fā)展。現(xiàn)如今,Zabbix已經(jīng)進入了5.X時代,前端界面的優(yōu)化、ES及TimescaleDB等時序數(shù)據(jù)庫的支持,使得Zabbix又步入了一個的新的時代。
優(yōu)勢
豐富的插件。Zabbix擁有豐富的MiB庫資源以及模版等850多個插件;
易用性、依賴少。基于PHP與MySQL搭建,可用性比較強;
可進行一定顆粒度的權限控制;
文檔完善。Zabbix本身定位為企業(yè)級分布式監(jiān)控系統(tǒng),故擁有完善的文檔,活躍的官方社區(qū),且本身也更新得比較頻繁,開發(fā)比較積極;
國內(nèi)市場有相關的商業(yè)支持。
劣勢
MySQL數(shù)據(jù)量問題。當MySQL數(shù)據(jù)量比較大時,存儲性能容易出現(xiàn)問題;
可視化問題。自身可視化靈活性較差,需用Grafana等進行彌補;
功能使用率低,80%的用戶使用的仍為監(jiān)控、看圖、告警等基礎功能,大部分高級功能未能被使用。
使用場景分析
監(jiān)控基礎設施。主機、網(wǎng)絡設備監(jiān)控等;
中小規(guī)模監(jiān)控;
對于大型場景的監(jiān)控來說仍需注意數(shù)據(jù)問題。
Nagios(2002)
Nagios是一個主要用于監(jiān)控系統(tǒng)運行狀態(tài)和網(wǎng)絡信息的監(jiān)控系統(tǒng)。Nagios能監(jiān)控所指定的本地或遠程主機以及服務,同時提供異常通知等功能。
Nagios擁有4000多個插件,且在很早之前就開始擁有自己的官方插件社區(qū)。這里面包括很多應用級別的監(jiān)控插件。此外,Nagios的通知雖然簡單但能覆蓋所有場景,以及本身擁有強大的監(jiān)控任務調(diào)度的能力。
優(yōu)勢
功能簡單易用,主要的功能是主動檢測。
劣勢
功能過于單一,只能通過主動檢測告知結(jié)果是否匹配,被動檢測功能原生功能較弱;
配置復雜,配置修改主機、報警、閾值等時,在原生Nagios中只能通過修改配置文件來實現(xiàn),操作較為復雜。
使用場景
小場景簡單監(jiān)控。對于一些網(wǎng)站、端口等可進行簡單監(jiān)控;
大型場景需要各種花式Hack,需要借助很多第三方的插件進行效率的提升和分布式的擴展。
Centreon(2005)
Centreon是一款開源的軟件,主要用于對Nagios的一些功能增強。可通過頁面管理Nagios,通過第三方插件實現(xiàn)對網(wǎng)絡,操作系統(tǒng),應用程序的監(jiān)控。
優(yōu)勢
界面友好
維護方便
統(tǒng)一管理
性能數(shù)據(jù)可追溯
劣勢
修改配置需要重啟或者重載Nagios主進程
MySQL依然存在數(shù)據(jù)問題
文檔資料較少
使用場景分析
適用于百臺規(guī)模的中等監(jiān)控
仍需要解決原生Nagios的一些弊端
Check_MK
Check_MK是一款通用的Nagios/Icinga增強工具集。其插件有著相當成熟的檢測機制和對硬件服務器的檢測手段。非常適合對硬件服務器進行“體檢”。
優(yōu)勢
界面友好
維護方便
統(tǒng)一管理
性能數(shù)據(jù)可追溯
劣勢
增加變更需要重啟Nagios主進程。
因后端存儲使用RRD,導致分布式擴展較為困難。
文檔資料較少。
使用場景分析
適用于百臺到千臺以內(nèi)中等規(guī)模監(jiān)控
需要解決Nagios的一些弊端
Cacti(2001)
Cacti是用PHP語言實現(xiàn)的一個監(jiān)控軟件,它的主要功能是用SNMP服務獲取數(shù)據(jù),然后用RRD儲存和更新數(shù)據(jù),當用戶需要查看數(shù)據(jù)的時候用RRD生成圖表呈現(xiàn)給用戶。
優(yōu)勢
網(wǎng)絡設備支持好
有權限控制
有漢化版
早期在IDC覆蓋廣
劣勢
SNMP依賴只適合特性場景
資料老舊
使用場景分析
簡單的IDC托管
網(wǎng)絡運維
Ganglia(2001)
Ganglia是UC Berkeley發(fā)起的一個開源集群監(jiān)視項目,設計用于測量數(shù)以千計的節(jié)點。主要是用來監(jiān)控系統(tǒng)性能,如:CPU 、內(nèi)存、硬盤利用率, I/O負載、網(wǎng)絡流量情況等。
優(yōu)勢
數(shù)據(jù)集中,部署分布式
適合大規(guī)模部署
對集群熱點觀測性支持較好
劣勢
無告警
集群內(nèi)UDP廣播問題多
使用場景分析
大數(shù)據(jù)應用
集群較多,關注整體資源使用率
近代(2010-2015)
監(jiān)控寶(2010)
監(jiān)控寶是云智慧推出的新一代用戶體驗監(jiān)控工具,從全球節(jié)點主動模擬真實用戶訪問,提供網(wǎng)站性能監(jiān)控、API監(jiān)控等服務,持續(xù)監(jiān)測應用程序、網(wǎng)站、網(wǎng)絡和數(shù)字化服務的可用性和性能,提前診斷,實時告警,幫助客戶提升網(wǎng)絡應用效能。
優(yōu)勢
全球分布式監(jiān)測網(wǎng)絡。200+ 分布式監(jiān)測節(jié)點覆蓋全球112個城市以及主要運營商網(wǎng)絡,網(wǎng)絡規(guī)模持續(xù)擴大中。
主動監(jiān)測。監(jiān)測節(jié)點按照預設規(guī)則模擬真實用戶發(fā)起主動監(jiān)測,實時掌控網(wǎng)絡性能,聚焦用戶體驗。
立體化覆蓋。HTTP/HTTPS/TCP/UDP/TR/DNS/PING等多種協(xié)議類型,全面問診網(wǎng)絡、業(yè)務健康。
面向業(yè)務。通過包含多步請求的事物監(jiān)控實現(xiàn)業(yè)務流程的監(jiān)測,保障業(yè)務的穩(wěn)定性和可用性。
持續(xù)監(jiān)控。24/7小時全天候監(jiān)測網(wǎng)站和網(wǎng)絡性能,多渠道服務支持,減少可能發(fā)生的中斷。
快照+MTR。先進的問題診斷與分析機制,問題發(fā)生之前和問題恢復之后的數(shù)據(jù)盡在掌握,快速定位故障。
靈活告警。短信、郵件、微信、語音、API等多種告警方式,確保告警能夠被即時送達。
專業(yè)的分析報告。提供綜合排名、競品分析、同比/環(huán)比、日/周報等多維度的數(shù)據(jù)報告,滿足專業(yè)化定制需求。
使用場景分析
網(wǎng)絡鏈路質(zhì)量監(jiān)控與評估。通過采集不同地區(qū)、不同運營商鏈路的時延、丟包、網(wǎng)絡抖動情況,從時間、地域、運營商等維度綜合分析網(wǎng)絡鏈路質(zhì)量及可用率,快速發(fā)現(xiàn)和準確定位網(wǎng)絡問題,便于及時進行鏈路調(diào)整,保障全網(wǎng)用戶的體驗。
CDN監(jiān)控。通過海量的分布式節(jié)點模仿真實用戶訪問,監(jiān)控CDN性能,評估CDN的加速情況,確保最佳的用戶體驗,可用于CDN選型評估、CDN加速效果評估、CDN故障排查與定位等使用場景。
API接口監(jiān)測。通過監(jiān)控API接口的響應時間、可用性和正確性并及時告警來保證API服務的可靠性,可用于API接口性能優(yōu)化、第三方API接口監(jiān)控等使用場景。
Graphite(2008)
Graphite是一個開源實時的、顯示時間序列度量數(shù)據(jù)的圖形系統(tǒng),通過其后端接收度量數(shù)據(jù),然后以實時方式查詢、轉(zhuǎn)換、組合這些度量數(shù)據(jù)。
優(yōu)勢
指標點分概念引入
Grafana支持較早的協(xié)議之一
統(tǒng)計函數(shù)支持(140+)
劣勢
指標無Label支持
使用場景分析
在做好數(shù)據(jù)歸并時可用于大規(guī)模場景
現(xiàn)代(2015-2021)
Prometheus(2016)
Prometheus 是由 SoundCloud 開源的監(jiān)控告警解決方案。存儲的是時序數(shù)據(jù),即按相同時序(相同名稱和標簽),以時間維度存儲連續(xù)的數(shù)據(jù)的集合。
優(yōu)勢
時序型存儲、查詢效率高。
支持集群模式,擴展性強。
CNCF項目,社區(qū)活躍。
劣勢
一些Exporter采集的指標眾多,需進行適當裁剪。
自定義采集腳本需要腳本開發(fā)能力(Golang、Python),相比Shell腳本來說學習成本更高一些。
使用場景分析
對于云計算、容器化場景更適合
夜鶯(2018)
夜鶯是一套分布式高可用的運維監(jiān)控系統(tǒng),前身是國內(nèi)大名鼎鼎的open-falcon。基于一些國內(nèi)特殊的運維場景和習慣,在運維圈中有著不俗的場景理解和用戶體驗。
優(yōu)勢
社區(qū)活躍,有open-falcon群眾基礎。
產(chǎn)品設計靈活,人性化。
v4版本自帶小型CMDB和自動化。
v5版本全面擁抱開源體系(Prometheus Telegraf)。
劣勢
v5剛發(fā)布,仍然需要一定的時間積累
后端存儲的選型多樣,需要根據(jù)場景進行選擇
缺少日志類和Tracing類的監(jiān)控場景
使用場景分析
所有指標類的監(jiān)控
未來(2022-)
云原生的出現(xiàn)導致在k8s環(huán)境下的可觀測性難度極具增加,因此出現(xiàn)了eBPF等新技術,但無奈市場上大部分的客戶Linux內(nèi)核還不足以支持相關的技術。但可以看到的是DataDog skywalking 云杉等目前都在向eBPF進行布局。 除了增強程序自身的可觀測性之外,可以預見在不久的將來,隨著Linux內(nèi)核的不斷的完善以及客戶環(huán)境逐漸的成熟。在運維角度可以發(fā)力的可觀測性的選擇一定會越來越多。
編輯:黃飛
?
評論