9k star 監控系統,100% 國產,推薦瞭解

SRETalk發表於2024-08-20

前言

監控系統的重要性不言而喻,國內用的最多的應該是 Zabbix 和 Prometheus,其優缺點:

  • Zabbix 是資產管理式,監控資料存在資料庫中,擅長裝置監控,不擅長微服務和雲原生環境的監控;推出時間較早,社群活躍度較高
  • Prometheus 是雲原生環境的監控利器,支援多維度的指標資料,自研儲存引擎,但是告警引擎是單點,使用配置檔案管理規則,缺少許可權化管理的 WebUI,如果把監控能力開放給公司所有團隊,讓各個團隊自服務,就比較困難

隨著雲的發展,Zabbix 感覺是依託於存量市場,而 Prometheus 是未來的大勢所趨。那 Prometheus 的缺點應該如何解決呢?推薦大家瞭解一下夜鶯(Nightingale)開源專案。

夜鶯介紹

夜鶯專案 github 地址是 https://github.com/ccfos/nightingale 。其中 ccfos 是哪家公司?其實,ccfos 不是家公司,ccf 是中國計算機學會的縮寫,os 是 open source 的縮寫,ccfos 是中國計算機學會開源專案的統一地址。夜鶯專案最初由滴滴開源,後來捐贈給中國計算機學會進行託管了。

目前,夜鶯專案的 github star 數量在 9300 多,fork 數量在 1300 多,相當於每 7 個 star,就有一次 fork,docker pull 的數量 178000,增長曲線非常健康。

Nightingale github star

夜鶯產品架構

夜鶯核心是做一個高可用的告警引擎,支援多資料來源接入,很多公司都有多個 Prometheus、VictoriaMetrics、Thanos,希望統一管理告警規則,於是,夜鶯的產品架構圖如下:

夜鶯產品架構圖

使用者配置的告警規則,可以同時生效到多個時序庫,不需要為每個時序庫分別配置告警規則。另外,對於有些公司有多個機房,網路鏈路不太好,時序庫可能分散在多個機房,夜鶯支援把告警引擎下沉部署到各個機房,即便和中心機房的網路鏈路中斷,也不影響邊緣機房的告警。架構圖如下:

夜鶯多機房架構

下面我們介紹一下夜鶯的優勢和劣勢。

夜鶯優勢1:靈活的告警規則

夜鶯主要是告警引擎這塊做得最方便,告警規則的配置也較為靈活,告警規則支援級別抑制、生效時間配置、事件 relabel、告警遮蔽、告警訂閱、告警自愈等等。告警規則的配置介面如下:

夜鶯告警規則配置

  • 資料來源支援配置多個,也可以選擇全部,即:一條告警規則生效到多個資料來源
  • 告警規則支援多條,可以啟用級別抑制,編寫 promql 時可以調出內建指標,方便編寫
  • 事件 relabel 是對告警事件的二次處理,比如 drop 掉一些不想要的標籤
  • 生效時間用於配置告警規則的生效時間,比如只在工作日生效,週末不生效,或者只在白天生效,晚上不生效,或者不同時段不同閾值
  • 告警自愈是告警觸發之後,自動執行一些指令碼,串聯一些固定止損操作
  • 回撥地址是告警觸發之後,呼叫第三方介面,比如釘釘、飛書等,進行告警通知,也可以對接各個公司自定義的介面

夜鶯優勢2:內建很多最佳實踐

夜鶯除了對接時序庫,還可以對接各類採集器 agent,比如 telegraf、categraf、datadog-agent、各類 exporter 等,不同的資料庫、中介軟體都有提供一些現成的儀表盤、告警規則,這樣可以快速上手,省心不少。下面是夜鶯內建的模板中心:

夜鶯模板中心

很多朋友不會寫 promql,但是 promql 在 Prometheus 生態裡又極為重要,那能否讓一些資深工程師提前寫好,沉澱下來,普通工程師直接用呢?夜鶯支援的指標檢視就是幹這個事的,目前已經內建沉澱了幾百個 promql,開箱即用。

夜鶯指標檢視

夜鶯的劣勢1:儀表盤不如 grafana

雖然已經內建了不少儀表盤了,但是還是不如 grafana 那麼豐富,grafana 在看圖這塊確實無出其右,夜鶯內建的那些儀表盤,如果你覺得夠用了,就用,如果覺得不夠用,建議還是上 grafana,下圖是夜鶯內建的一個儀表盤樣例:

夜鶯儀表盤

夜鶯的劣勢2:告警降噪能力不夠

夜鶯側重在多資料來源告警、告警規則統一管理,支援郵件、企微、飛書、釘釘等通知媒介,透過自定義通知指令碼,也可以實現電話、簡訊通知,即常用的通知媒介都是支援的,不支援的寫個指令碼也可以支援。但是告警收斂降噪、排班、認領、升級、和 IM 深度打通等功能,還是不夠(可能我想要的太多😂)。

夜鶯核心研發團隊搞了一個 FlashDuty 的 SaaS 產品,專門做這塊,但是 FlashDuty 是收費的,不是開源的。FlashDuty 有免費套餐,對於小公司可以白嫖。當然,FlashDuty 就不止是針對夜鶯了,也可以對接其他監控系統,比如 Prometheus、Zabbix、各類雲監控、藍鯨、SkyWalking 等。核心邏輯就是:這些監控系統負責產生告警事件,統一發給 FlashDuty,FlashDuty 負責事件後續處理,比如告警降噪、排班、認領、升級、和 IM 深度打通等功能。

總結

夜鶯沒有 Prometheus 的使用者廣,不過夜鶯和 Prometheus 是協同關係,不是非此即彼,夜鶯的企業使用者有上千家,比如移動、聯通、電信、米哈遊、莉莉絲、途遊、悠星、高濟、益豐、大參林、方正證券、國泰君安、海底撈、海康、搜狐、新浪等,分佈在各行各業。夜鶯開源專案的背後有商業公司(flashcat.cloud)在持續運作支援,而且託管在基金會,發展具有可持續性,推薦大家在日常工作中嘗試。

相關文章