用什麼監控我們的容器?

原文鏈接:https://www.cnblogs.com/sparkdev/p/11384824.html

本文介紹常見監控工具 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獲取直播地址進入直播羣

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章