系統監控方案:
當下主流的監控方案有三個,分別是:
- Zabbix
- Prometheus
- 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:
- 安裝zabbix-server端
- 使用web頁面配置
- 增加client端的監控都在web上完成
Prometheus
- 安裝go 語言環境
- 在監控服務器上安裝prometheus
- 在被監控環境上安裝客戶端export
- 安裝grafana(可以不裝)
Open-falcon
- 安裝redis
- 安裝mysql
- 安裝go語言環境
- 安裝后端模塊
- 安裝客戶端模塊

三、資料采集
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都能夠滿足需求,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/21040.html
標籤:其他
上一篇:Docker 技術系列之安裝Redis單機版和集群版
下一篇:工程師的英語成長之路
