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