一文搞定K8S監控告警平臺選型

2023-12-20 15:00:50

公眾號「架構成長指南」,專注於生產實踐、雲原生、分散式系統、巨量資料技術分享

前言

最近在搞K8S的監控告警平臺選型,對比了目前比較流行兩款開源平臺kube-prometheus夜鶯,也踩了一些坑分享一下

kube-prometheus

專案地址:https://github.com/prometheus-operator/kube-prometheus

目前使用最廣泛的k8s 的開源監控告警平臺,在prometheus基礎上,增加了對 k8s 的各種指標的監控,使用了Kubernetes Operator進行了封裝,幾乎可以一鍵部署,部署起來以後登入Grafana,就可以看到各種指標,如下圖

優點

  1. 生態好,基於 prometheus,相關開源元件較多,比如mysql-exporter、redis-exporter
  2. 對 k8s相關元件監控比較完善
  3. 使用者基數大

缺點

  1. 部署包部分映象地址要修改,否則在國內下載不下來

  2. prometheus資料要通過PVC掛載,否則重啟資料會丟失

  3. Grafana的時間要進行修改,預設是 UTC 時間

  4. 監控指標很方便,但是告警設定比較弱,模板這些都要自己實現,同時告警通知沒有與飛書、釘釘、微信這些打通,不過好在有第三方實現:PrometheusAlert

  5. 監控第三方中介軟體,比較繁瑣,沒有一個大一統的方案,比如要監控MySQL,需要找 Mysql Helm 包下載在部署,Redis 同理,每個中介軟體設定部署都得走一遍,有點耗時

夜鶯

專案地址:https://github.com/ccfos/nightingale

夜鶯監控是一款開源雲原生觀測分析平臺,採用 All-in-One 的設計理念,集資料採集、視覺化、監控告警、資料分析於一體,與雲原生生態緊密整合,提供開箱即用的企業級監控分析和告警能力。夜鶯於 2020 年 3 月 20 日,在 github 上釋出 v1 版本,目前最新版本是 V6 版本。

夜鶯是Open-Falcon的團隊基於雲原生新開發的觀測分析平臺,可以說是總結之前的一些經驗,搞的很不錯,官方提供的基於Helm 的安裝包,可以進行快速部署,地址:https://github.com/flashcatcloud/n9e-helm

優點

  1. 開箱即用,支援 Docker、Helm Chart、雲服務等多種部署方式;集資料採集、監控告警、視覺化為一體;

  2. 大一統的監控資料採集,夜鶯的採集端為Categraf,覆蓋支援上百種採集物件,比如K8s、中介軟體、伺服器、交換機等,只需要設定下地址即可採集


  3. 完善的告警機制,這是夜鶯相比其他平臺最大的優勢,它提供了簡易圖形化的設定、內建了常用元件的告警規則、支援國內各種通知媒介,比如:飛書、釘釘、企微、電話、郵箱、telegram等

  4. 支援多資料來源,支援Prometheus、Es、Loki、TDengine,也就是說可以與kube-prometheus專案進行整合使用。

缺點

  1. 對 k8s 監控相對弱一點,沒有kube-prometheus完善,需要自己去設定相應的採集指標,不過好在官方檔案有指引,檔案地址:k8s 監控專欄
  2. 對 Grafana 支援性差點,雖然官方說,可以支援匯入 Grafana 報表,但是在使用過程中,還是發現有些元件不相容,目前還在逐步完善
  3. 夜鶯的報表匯出無法直接匯入到Grafana中,這可能也是夜鶯商業化的考慮一個點,要對使用者有粘性
  4. 生態沒有Prometheus+Grafana好,Prometheus有CNCF作為背書,Grafana已經是資料視覺化預設選擇,所以很多開源系統都是基於這套方案來實現

總結

以上我們對比了兩種監控告警平臺,都有優缺點,可以根據自身需求選擇其一進行使用,如果既想要完善的告警管理,有想要Grafana和完善 K8S指標監控,可以把兩者結合起來使用,目前有不少公司是這樣做的。