一文搞定K8S監(jiān)控告警平臺(tái)選型
前言
最近在搞K8S的監(jiān)控告警平臺(tái)選型,對(duì)比了目前比較流行兩款開(kāi)源平臺(tái)kube-prometheus、夜鶯,也踩了一些坑分享一下
kube-prometheus
項(xiàng)目地址:https://github.com/prometheus-operator/kube-prometheus
圖片
目前使用最廣泛的k8s 的開(kāi)源監(jiān)控告警平臺(tái),在Prometheus基礎(chǔ)上,增加了對(duì) k8s 的各種指標(biāo)的監(jiān)控,使用了Kubernetes Operator進(jìn)行了封裝,幾乎可以一鍵部署,部署起來(lái)以后登錄Grafana,就可以看到各種指標(biāo),如下圖
圖片
圖片
優(yōu)點(diǎn)
1. 生態(tài)好,基于Prometheus,相關(guān)開(kāi)源組件較多,比如mysql-exporter、redis-exporter
2. 對(duì) k8s相關(guān)組件監(jiān)控比較完善
3. 用戶基數(shù)大
缺點(diǎn)
1. 部署包部分鏡像地址要修改,否則在國(guó)內(nèi)下載不下來(lái)
2. Prometheus數(shù)據(jù)要通過(guò)PVC掛載,否則重啟數(shù)據(jù)會(huì)丟失
3. Grafana的時(shí)間要進(jìn)行修改,默認(rèn)是 UTC 時(shí)間
4. 監(jiān)控指標(biāo)很方便,但是告警配置比較弱,模板這些都要自己實(shí)現(xiàn),同時(shí)告警通知沒(méi)有與飛書(shū)、釘釘、微信這些打通,不過(guò)好在有第三方實(shí)現(xiàn):PrometheusAlert
5. 監(jiān)控第三方中間件,比較繁瑣,沒(méi)有一個(gè)大一統(tǒng)的方案,比如要監(jiān)控MySQL,需要找 Mysql Helm 包下載在部署,Redis 同理,每個(gè)中間件配置部署都得走一遍,有點(diǎn)耗時(shí)
夜鶯
項(xiàng)目地址:https://github.com/ccfos/nightingale
圖片
夜鶯監(jiān)控是一款開(kāi)源云原生觀測(cè)分析平臺(tái),采用 All-in-One 的設(shè)計(jì)理念,集數(shù)據(jù)采集、可視化、監(jiān)控告警、數(shù)據(jù)分析于一體,與云原生生態(tài)緊密集成,提供開(kāi)箱即用的企業(yè)級(jí)監(jiān)控分析和告警能力。夜鶯于 2020 年 3 月 20 日,在 github 上發(fā)布 v1 版本,目前最新版本是 V6 版本。
夜鶯是Open-Falcon的團(tuán)隊(duì)基于云原生新開(kāi)發(fā)的觀測(cè)分析平臺(tái),可以說(shuō)是總結(jié)之前的一些經(jīng)驗(yàn),搞的很不錯(cuò),官方提供的基于Helm 的安裝包,可以進(jìn)行快速部署,地址:https://github.com/flashcatcloud/n9e-helm
圖片
圖片
優(yōu)點(diǎn)
1. 開(kāi)箱即用,支持 Docker、Helm Chart、云服務(wù)等多種部署方式;集數(shù)據(jù)采集、監(jiān)控告警、可視化為一體;
2. 大一統(tǒng)的監(jiān)控?cái)?shù)據(jù)采集,夜鶯的采集端為Categraf,覆蓋支持上百種采集對(duì)象,比如K8s、中間件、服務(wù)器、交換機(jī)等,只需要配置下地址即可采集
圖片
3. 完善的告警機(jī)制,這是夜鶯相比其他平臺(tái)最大的優(yōu)勢(shì),它提供了簡(jiǎn)易圖形化的配置、內(nèi)置了常用組件的告警規(guī)則、支持國(guó)內(nèi)各種通知媒介,比如:飛書(shū)、釘釘、企微、電話、郵箱、telegram等
圖片
圖片
4. 支持多數(shù)據(jù)源,支持Prometheus、Es、Loki、TDengine,也就是說(shuō)可以與kube-prometheus項(xiàng)目進(jìn)行整合使用。
圖片
缺點(diǎn)
1. 對(duì) k8s 監(jiān)控相對(duì)弱一點(diǎn),沒(méi)有kube-prometheus完善,需要自己去配置相應(yīng)的采集指標(biāo),不過(guò)好在官方文檔有指引
2. 對(duì) Grafana 支持性差點(diǎn),雖然官方說(shuō),可以支持導(dǎo)入 Grafana 報(bào)表,但是在使用過(guò)程中,還是發(fā)現(xiàn)有些組件不兼容,目前還在逐步完善
3. 夜鶯的報(bào)表導(dǎo)出無(wú)法直接導(dǎo)入到Grafana中,這可能也是夜鶯商業(yè)化的考慮一個(gè)點(diǎn),要對(duì)用戶有粘性
4. 生態(tài)沒(méi)有Prometheus+Grafana好,Prometheus有CNCF作為背書(shū),Grafana已經(jīng)是數(shù)據(jù)可視化默認(rèn)選擇,所以很多開(kāi)源系統(tǒng)都是基于這套方案來(lái)實(shí)現(xiàn)
總結(jié)
以上我們對(duì)比了兩種監(jiān)控告警平臺(tái),都有優(yōu)缺點(diǎn),可以根據(jù)自身需求選擇其一進(jìn)行使用,如果既想要完善的告警管理,又想要Grafana和完善 K8S指標(biāo)監(jiān)控,可以把兩者結(jié)合起來(lái)使用,目前有不少公司是這樣做的