本文介紹常見監控工具 zabbix 和 prometheus 的主要特點以及應用於容器監控時各自的優缺點,希望能夠幫助同學們選擇適合項目的監控工具。
說明:本文介紹的兩個工具 zabbix 和 prometheus 都是開源、免費的。
Zabbix 的主要特點
作爲老牌監控工具,zabbix 歷史悠久,功能全面且強大。下面羅列一些它的主要特點:
數據收集方式靈活全面
- 支持可用性和性能檢查
- 支持 SNMP(包括主動輪訓和被動獲取),IPMI,JMX,VMware 監控
- 支持自定義檢查
- 按照自定義的間隔收集需要的數據
- 支持 server/proxy+agents 的模式
自動發現監控對象
- 自動發現網絡設備
- 監控代理自動註冊
- 發現文件系統,網絡接口等等
高度可配置化的報警
- 支持收斂的報警策略
- 可以使用宏變量讓報警通知更加高效
- 在報警的同時可以執行應對策略
強大的模板功能
- 在模板中分組檢查
- 模板可以關聯其他模板
完善的權限管理系統
- 安全用戶認證
- 特定用戶可以限制訪問特定的視圖
近乎無限的擴展能力
- 支持通過腳本進行擴展
看一眼 zabbix 提供的菜單感受下它的豐富功能:
Prometheus 的主要特點
Prometheus 是一個開源的系統監控和警報工具包,許多公司和組織都採用了 Prometheus,該項目擁有非常活躍的開發人員和用戶社區。下面是 prometheus 的一些主要特點:
- 多維度數據模型
- 靈活的查詢語言
- 不依賴分佈式存儲,單個服務器節點是自主的
- 通過 pull 方式採集時序數據
- 可以通過中間網關進行時序列數據推送
- 通過服務發現或者靜態配置來發現目標服務對象
- 支持多種界面展示方案,比如 grafana 等
事實上,業界多把 prometheus 用於容器監控的解決方案,比如與 k8s 的集成。使用 cadvisor + prometheus + grafana 搭建容器監控事實上已經成爲了中小企業的首選方案。下圖是由 grafana 展示的單臺主機上運行容器的彙總信息(當然,數據源來自 prometheus):
其實,prometheus 的擴展性也很好,通過擴展不同的 exporter 可以收集不同應用、設備的信息。
使用 zabbix 監控容器的缺點
Zabbix 的功能非常全面,以至於僅僅用它來監控容器讓我們覺着是大材小用了,同時也難免會覺着它不太專業(就監控容器來說)。
事實上 zabbix 監控容器的能力一點也不弱,特別是從版本 4.2 開始,zabbix 也支持 prometheus 做爲數據源了。這樣一來,zabbix 也就是在視覺展示上比 grafana 差些罷了。
當然 zabbix 還有其它一些問題,比如功能過多(優點有時候也會變成缺點),如果僅僅需要容器監控功能,會覺着 zabbix 用起來太繁瑣了。
Zabbix 使用的是 mysql 數據庫,對於時序型的數據,性能上肯定沒法和專門的時序型數據庫相比。
最後,zabbix 的安裝和配置雖然不是很難,但離開箱即用還是有段距離的。
使用 prometheus 監控容器的優缺點
Prometheus 和 zabbix 比起來就輕多了,它就是爲容器監控而生的。特別是它使用的是時序型的數據庫,對於監控類的場景而言性能非常好。
Prometheus + grafana 做出來的視覺效果非常的棒:
並且多數情況下你都不需要自己動手設計這些圖表,下載大家做好的模板,直接就能用,效果棒棒的!
但與 zabbix 相比,grafana 的報警功能卻不夠靈活。
關於監控信息的收集,zabbix 支持 pull/push 兩種模式,而 prometheus 只支持 pull 模式。關於 pull/push 模式,大家的關注點似乎都在性能上。而對於我管理的較小的系統來說基本上沒有性能問題,我更關注的是安全性。使用 pull 模式,需要生產環境對外暴露端口號,我們需要爲此提供安全性相關的配置,而使用 push 模式則沒有這個問題(其實是需要提供監控服務器端的安全配置)。
結論
不管是 zabbix 還是 prometheus 都能夠完成容器監控的任務。Zabbix 大而全,在傳統的監控領域依然是主流的解決方案。而 prometheus 作爲一個輕量級的後起之秀,在性能和展示方面優勢比較明顯,對容器監控支持的非常好。個人認爲,在中小企業中搭建 zabbix 監控平臺是非常必要的,它能把大大小小、各式各樣的設備管理起來。而對於那些運行在雲端的容器,選擇 prometheus 搭建獨立的監控系統會是個不錯的選擇。
參考:
Zabbix Documentation 3.4 功能點
Zabbix 4.2 發佈:支持 Prometheus 數據收集
《Zabbix 企業級分佈式監控系統》
《Zabbix 監控系統深度實踐第2版》
Prometheus : 入門
Prometheus and the Debate Over 'Push' Versus 'Pull' Monitoring
作者:sparkdev
出處:http://www.cnblogs.com/sparkdev/
主題:《LDAP賬戶集中認證》
內容:
1、簡單介紹 LDAP
2、Django 集成 LDAP
3、GitLab 集成 LDAP
4、Jenkins 集成 LDAP
直播時間9.05晚上21:00,聯繫WeChat:17812796384獲取直播地址進入直播羣