主流數據監控運維系統簡單對比


  

系統監控方案:

當下主流的監控方案有三個,分別是:

  1. Zabbix
  2. Prometheus
  3. Open-falon

 一、簡介

Zabbix

zabbix是一個老牌監控系統,基於web界面的企業級開源監控軟件。Zabbix服務器需要LAMP環境或LNMP環境,提供分布式系統監控與網絡監視功能。其具備主機的性能監控,網絡設備性能監控,數據庫性能監控,多種告警方式,詳細報表、圖表的繪制等功能。監測對象可以是Linux或Windows服務器,也可以是路由器、交換機等網絡設備,通過SNMP、zabbix Agent、PING、端口監視等方法提供對遠程網絡服務器等監控、數據收集等功能。

特點:可以監控服務器,路由器,交換機

 

Prometheus(普羅米修斯)

Prometheus是由SoundCloud開發的開源監控系統的開源版本。2016年,由Google發起的Linux基金會(Cloud Native Computing Foundation,CNCF)將Prometheus納入其第二大開源項目。Prometheus在開源社區也十分活躍。Prometheus是與kubernetes是師兄弟關系,CNCF開源第一個項目是k8s,第二項目就是prometheus。

特點:更適合雲環境下監控,特別是k8s系統下的服務監控

 

Open-falcon

Open-Falcon是小米運維部門開源出來的互聯網企業級監控系統,目前包括小米、金山雲、美團、京東金融、趕集網等都在使用Open-Falcon。Open-Falcon 整體可以分為兩部分,即繪圖組件、告警組件。

“繪圖組件”負責數據的采集、收集、存儲、歸檔、采樣、查詢、展示(Dashboard/Screen)等功能,可以單獨工作,作為time-series data的一種存儲展示方案。

“告警組件”負責告警策略配置(portal)、告警判定(judge)、告警處理(alarm/sender)、用戶組管理(uic)等,

特點:國產監控系統,資料豐富

 

總結:

Zabbix文檔資料較少,配置項不多,功能不夠豐富,優點是直接可以在頁面上進行配置;

Prometheus功能比Zabbix多,比Open-falcon少,配置項多但文檔不夠詳細;Open-falcon功能豐富,官方文檔也比較詳細。

 

二、安裝部署難度

Zabbix:

  1. 安裝zabbix-server端
  2. 使用web頁面配置
  3. 增加client端的監控都在web上完成

 

Prometheus

  1. 安裝go 語言環境
  2. 在監控服務器上安裝prometheus
  3. 在被監控環境上安裝客戶端export
  4. 安裝grafana(可以不裝)

 

Open-falcon

  1. 安裝redis
  2. 安裝mysql
  3. 安裝go語言環境
  4. 安裝后端模塊
  5. 安裝客戶端模塊

 

  

 三、數據采集

zabbix

Zabbix 通過 SNMP、Agent、ICMP、SSH、IPMI 等對系統進行數據采集。數據量大時,展示需要直接讀取數據庫,會卡慢

節點監控規模:1000+

 

prometheus

Prometheus的基本原理是通過HTTP協議周期性抓取被監控組件的狀態,任意組件只要提供對應的HTTP接口就可以接入監控。不需要任何SDK或者其他的集成過程。這樣做非常適合做虛擬化環境監控系統,比如VM、Docker、Kubernetes等。輸出被監控組件信息的HTTP接口被叫做exporter 。目前互聯網公司常用的組件大部分都有exporter可以直接使用,比如Varnish、Haproxy、Nginx、MySQL、Linux系統信息(包括磁盤、內存、CPU、網絡等等)。

Prometheus采集的數據包括了主機性能監控、容器性能監控、Nginx訪問流量、Kubernetes狀態以及平台各個組件的性能指標。目前Prometheus本地數據指保留一個月,歷史數據保存到M3DB中。

節點監控規模:1000+

 

Open-falcon

Open-falcon數據傳輸基於tcp協議。agent節點能自動獲取到系統的基礎監控指標,並上報給transfer,agent與transfer建立了TCP長連接,每隔60秒發送一次數據到transfer。

open-falcon的agent組件直接支持CPU、Load、內存、磁盤、IO、網絡相關、內核參數、ss 統計輸出、端口采集、核心服務的進程存活信息采集、關鍵業務進程資源消耗、NTP offset采集、DNS解析采集。還有第三方擴展組件可以支持更多的數據采集。

節點監控規模:1000+

 

 

 

四、數據存儲

Zabbix         

存儲:mysql prostgresql

Zabbix存儲在MySQL上,也可以存儲在其他數據庫服務。Zabbix由於使用了關系型數據存儲時序數據,所以在監控大規模集群時常常在數據存儲方面捉襟見肘。所以從Zabbix 4.2版本后開始支持TimescaleDB時序數據庫,不過目前成熟度還不高。

 

Prometheus

存儲:opentsdb

Prometheus自研一套高性能的時序數據庫,在V3版本可以達到每秒千萬級別的數據存儲,通過對接第三方時序數據庫擴展歷史數據的存儲。

為了解決單節點存儲的限制,prometheus沒有自己實現集群存儲,而是提供了遠程讀寫的接口,讓用戶自己選擇合適的時序數據庫來實現prometheus存儲的擴展性。

 

Open-falcon

存儲:歸檔用RRD 存儲用mysql +redis+opentsdb

Open-Falcon都采用RDD數據存儲,Open-Falcon還加入了一致性hash算法分片數據,並且可以對接到OpenTSDB。

RRD 全稱是 Round Robin Database ,即「環型數據庫」。顧名思義,它是一種循環使用存儲空間的數據庫,適用於存儲和時間序列相關的數據。

RRD 數據庫在被創建的時候就已經定義好了大小,當空間存儲滿了以后,又從頭開始覆蓋舊的數據,所以和其他線性增長的數據庫不同,RRD 的大小可控且不用維護。

 

總結:

如果只是短期存儲和查詢,那么Prometheus、Open-falcon、zabbix現有的都能滿足要求。但如果要對大量數據進行分析預測等過程,則三者都需要轉用其他可接入spark、mapreduce等的數據庫。Open-falcon需要進行二次開發,Prometheus提供了遠程讀寫的接口。Zabbix后台用C開發,二次開發的難度比較大。

 

 

 

五、告警監控

1.Zabbix 可以實現復雜的多條報警信息

電話報警、郵件報警、微信報警、短信報警、報警升級機制等(無論什么報警都可以)。

 

2.Prometheuss

目前支持郵件、slack、微信和webhook,如果是對接釘釘,便可以通過webhook方式觸發釘釘的客戶端發送告警。

 

3.Open-falcon

短信、微信、郵件、電話。

可配置報警級別,比如P0/P1/P2等等,每個及別的報警都會對應不同的redis隊列。

 

六、選擇方案

 

 

安裝復雜度

數據采集支持

數據存儲難度

告警支持

Zabbix

Prometheuss

Open-falcon

 

 

 

 

 

 

 

 

對比三種監控數據的各個特征指標,能夠得出結論open-falcon不是功能最強大的,但是是使用最簡單便捷的。特別是數據存儲方面不用擔心數據量一直增加而出現的磁盤問題,節省運維成本。同時考慮目前openlab系統的服務器規模,功能需求不復雜以及可能需要的告警擴展,open-falcon都能夠滿足需求。

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM