監控系統選型,這篇不可不讀!

2022-06-14 09:39:12 字數 3527 閱讀 9245

目前我所經歷的幾家公司,監控系統都是自研的。其實業界有很多優秀的開源產品可供選擇,能滿足絕大部分的監控需求,如果能從中選擇一款滿足企業當下的訴求,顯然最省時省力。

監控系統俗稱「第三隻眼」,幾乎是我們每天都會打交道的系統,下面 4 項基礎知識我認為是必須要了解的。

正所謂「無監控,不運維」,監控系統的地位不言而喻。不管你是監控系統的開發者還是使用者,首先肯定要清楚:監控系統的目標是什麼?它能發揮什麼作用?

出任何線上事故,先不說其他地方有問題,監控部分一定是有問題的。

聽著很甩鍋的一句話,仔細思考好像有一定道理。我們在事故覆盤時,通常會思考這3個和監控有關的問題:有沒有做監控?監控是否及時?監控資訊是否有助於快速定位問題?

可見光有一套好的監控系統還不夠,還必須知道「如何用好它」。乙個成熟的研發團隊通常會定乙個監控規範,用來統一監控系統的使用方法

監控已然成為了整個產品生命週期非常重要的一環,運維關注硬體和基礎監控,研發關注各類中介軟體和應用層的監控,產品關注核心業務指標的監控。 可見,監控的物件已經越來越立體化。

3.1 硬體監控

包括:電源狀態、cpu狀態、機器溫度、風扇狀態、物理磁碟、raid狀態、記憶體狀態、網絡卡狀態

3.2 伺服器基礎監控

3.3 資料庫監控

包括:資料庫連線數、qps、tps、並行處理的會話數、快取命中率、主從延時、鎖狀態、慢查詢

3.4 中介軟體監控

3.5 應用監控

無論是開源的監控系統還是自研的監控系統,監控的整個流程大同小異,一般都包括以下模組:

下面再來認識下主流的開源監控系統,由於篇幅有限,我挑選了3款使用最廣泛的監控系統:zabbix、open-falcon、prometheus,會對它們的架構進行介紹,同時總結下各自的優劣勢。

zabbix 2023年誕生,核心元件採用c語言開發,web端採用php開發。它屬於老牌監控系統中的優秀代表,監控功能很全面,使用也很廣泛,差不多有70%左右的網際網路公司都曾使用過 zabbix 作為監控解決方案。

先來了解下zabbix的架構設計:

下面是 zabbix 的優勢:

下面是 zabbix 的劣勢:

open-falcon 是小公尺2023年開源的企業級監控工具,採用go和python語言開發,這是一款靈活、高效能且易擴充套件的新一代監控方案,目前小公尺、美團、滴滴等超過200家公司在使用它。

小公尺初期也使用的zabbix進行監控,但是機器量和業務量上來後,zabbix就有些力不從心了。因此,後來自主研發了open-falcon,在架構設計上吸取了zabbix的經驗,同時很好地解決了zabbix的諸多痛點。

先來了解下open-falcon的架構設計:

下面是open-falcon的優勢:

下面是open-falcon的劣勢:

prometheus(普羅公尺修斯)是由前google員工2023年正式發布的開源監控系統,採用go語言開發。它不僅有乙個很酷的名字,同時它有google與k8s的強力支援,開源社群異常火爆。

prometheus 2023年加入雲原生**會,是繼k8s後託管的第二個專案,未來前景被相當看好。它和open-falcon最大不同在於:資料採集是基於pull模式的,而不是push模式,並且架構非常簡單。

先來了解下prometheus的架構設計:

下面是prometheus的優勢:

下面是prometheus的劣勢:

1、先明確清楚你的監控需求:要監控的物件有哪些?機器數量和監控指標有多少?需要具備什麼樣的告警功能?

2、監控是一項長期建設的事情,一開始就想做乙個 all in one 的監控解決方案,我覺得沒有必要。從成本角度考慮,在初期直接使用開源的監控方案即可,先解決有無問題。

3、從系統成熟度上看,zabbix屬於老牌的監控系統,資料多,功能全面且穩定,如果機器數量在幾百台以內,不用太擔心效能問題,另外,採用資料庫分割槽、ssd硬碟、proxy架構、push採集模式都可以提高監控效能。

4、zabbix在伺服器監控方面佔絕對優勢,可以滿足90%以上的監控場景,但是應用層的監控似乎並不擅長,比如要監控執行緒池的狀態、某個內部介面的執行時間等,這種通常都要做侵入式埋點。相反,新一代的監控系統open-falcon和prometheus在這一點做得很好。

5、從整體表現上來看,新一代監控系統也有明顯的優勢,比如:靈活的資料模型、更成熟的時序資料庫、強大的告警功能,如果之前對zabbix這種傳統監控沒有技術積累,建議使用open-falcon或者prometheus.

6、open-falcon的核心優勢在於資料分片功能,能支撐更多的機器和監控項;prometheus則是容器監控方面的標配,有google和k8s加持。

7、zabbix、open-falcon和prometheus都支援和grafana做快速整合,想要美觀且強大的視覺化體驗,可以和grafana進行組合。

8、用合適的監控系統解決相應的問題即可,可以多套監控同時使用,這種在企業初期很常見。

9、到中後期,隨著機器資料增加和個性化需求增多(比如希望統一監控平台、打通公司的cmdb和組織架構關係),往往需要二次開發或者通過監控系統提供的api做整合,從這點來看,open-falcon或者prometheus更合適。

10、如果非要自研,可以多研究下主流監控系統的架構方案,借鑑它們的優勢。

由於篇幅問題,本文的內容並未涉及到全鏈路監控、日誌監控、以及web前端和客戶端的監控,可見監控真的是乙個龐大且複雜的體系,如果想理解透徹,必須理論結合實踐再做深入。

- end -

作者簡介:985碩士,前亞馬遜工程師,現58轉轉技術總監

整理 監控系統選型

目錄4.監控系統的基本流程 主流監控系統介紹 監控系統的選型建議 最後的話 很多公司的監控系統都是自研的。其實業界有很多優秀的開源產品可供選擇,能滿足絕大部分的監控需求,如果能從中選擇一款滿足企業當下的訴求,顯然最省時省力。監控系統俗稱 第三隻眼 幾乎是我們每天都會打交道的系統,下面 4 項基礎知識...

OA系統選型為何要審慎?

oa系統的選型必須要審慎。很多使用者因為自身經驗不足,所以常在選型時受到 和產品表面功能的影響,進而選擇了一款較差的oa系統,以致於使所購買的oa系統成了花架子。故而,oa系統的選型要考慮核心層面。其中,oa系統的敏捷性就是極為重要的乙個核心層面。為什麼這樣說呢?1 不同使用者的管理需求不同 使用者...

監控系統技術選型

對比專案 prometheus open falcon zabbix 響應時間快快 快圖表tt t趨勢tt t趨勢 ff f自動發現tt tagenttt tagentlessff tsnmptt t外部指令碼ft t外掛程式tt t外掛程式建立 一般簡單 簡單告警tt tweb應用 部分控制 全部...