夜鶯(Nightingale)和 Prometheus 的關係,是一個經常被討論的話題,實際這二者是一個協同互補的關係,本文會詳細介紹二者的區別和聯繫。

夜鶯監控(Nightingale)類似 Grafana,可以對接多種資料來源,最常用的資料來源就是 Prometheus(其他相容 Prometheus 介面的資料來源,比如 VictoriaMetrics、Thanos、M3DB,都可以看做是 Prometheus 類型),所以二者關係密切。

如果您有如下訴求,可以考慮夜鶯:

  • 有多套時序庫,比如 Prometheus、VictoriaMetrics 等,想要使用一套統一的平台來管理各類告警規則,並有權限管控
  • Prometheus 的告警引擎是單點的,擔心單機掛掉導致告警引擎無法工作
  • 除了 Prometheus 的告警,還需要 ElasticSearch、Loki、ClickHouse 等其他資料來源的告警
  • 需要更靈活的告警規則設定,比如控制生效時間、事件 Relabel、事件聯動 CMDB、支援告警聯動自愈指令碼

夜鶯監控也具備類似 Grafana 的視覺化能力,不過沒有 Grafana 道行深,以筆者觀察來看,很多公司是一套組合方案(成年人的世界,沒有非黑即白,都要):

  • 資料採集:組合使用了各種 agent 和 exporter,比如主要使用 Categraf(尤其是機器監控,和夜鶯絲滑對接),輔以各類 Exporter
  • 儲存:時序庫主要使用 VictoriaMetrics,因為 VictoriaMetrics 相容 Prometheus,而且效能更好且有叢集版本,對大部分公司,單機版就足夠用了
  • 告警引擎:使用夜鶯,方便不同的團隊管理協作,內建了一些規則開箱即用,告警規則的設定非常靈活,事件 Pipeline 機制方便和自己的 CMDB 等打通
  • 看圖視覺化:使用 Grafana,圖表更為炫酷,社群非常龐大,從 Grafana 站點可以找到很多別人做好的儀表板,較為省心
  • 告警事件 On-call 分發:使用 Flashduty,支援對接 Zabbix、Prometheus、夜鶯、各雲監控、Elastalert 等各類監控系統,收攏告警事件到一個平台,統一收斂降噪、排班、認領升級、回應、派發等。

常見問題

Q1:用了夜鶯還需要部署 Prometheus 嗎?

A:看場景:

  • 小規模 + 示範:用夜鶯自帶的 VictoriaMetrics 時序庫即可,無需 Prometheus;
  • 已有 Prometheus:直接把它作為夜鶯的資料來源;
  • 大規模:推薦 VictoriaMetrics / Thanos / Mimir 等可水平擴充的時序庫替代單機 Prometheus。

Q2:能直接遷移 Prometheus 的告警規則到夜鶯嗎?

A:可以。夜鶯支援把 Prometheus alerting rules 檔案解析後匯入。或者用 告警規則範本 批次匯入。

參考資料

快猫星云 联系方式 快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云