Prometheus + Grafana(八)系統監控之Kafka


 

前言

第一種:JMX

https://help.aliyun.com/document_detail/141108.html?spm=a2c4g.11186623.6.621.12bb4dea7EyM9F

第二種:kafka_exporter

本文就是采用第二種方式實現,相比JMX,優勢在於不需要消耗 JVM資源,指標收集時間從分鍾級別降到秒級別,便於大規模集群的監控。

 

技術架構

 

圖片引用:https://zhuanlan.zhihu.com/p/57704357

 

安裝kafka_exporter

注:1個kafka集群只需要1個exporter,在集群上的任意1台服務器部署。

  • 上傳解壓

https://github.com/danielqsj/kafka_exporter 下載並傳kafka_exporter-1.2.0.linux-amd64.tar安裝包並解壓到/usr/local目錄

wget https://github.com/danielqsj/kafka_exporter/releases/download/v1.2.0/kafka_exporter-1.2.0.linux-amd64.tar.gz
tar -xvf kafka_exporter-1.2.0.linux-amd64.tar
cd kafka_exporter-1.2.0.linux-amd64/
  • 配置

使用默認配置

  • 啟動

進入根目錄下,輸入以下命令:

cd /usr/local/kafka_exporter-1.2.0.linux-amd64
nohup ./kafka_exporter --kafka.server=172.16.10.93:9092 &

啟動成功后,可以訪問 http://172.16.10.93:9308/metrics/ ,(IP和端口要改成相應環境的)

看抓取的信息如下:

 

 

Prometheus配置

  • 配置

修改prometheus組件的prometheus.yml加入kafka監控:

vi /usr/local/prometheus-2.15.1/prometheus.yml

 

  • 啟動驗證

先kill掉Prometheus進程,用以下命令重啟它,然后查看targets:

cd /usr/local/prometheus-2.15.1
nohup ./prometheus --config.file=prometheus.yml &

注:State=UP,說明成功

 

Grafana配置

  • 導入儀表盤模板

通過瀏覽器訪問:http://grafana服務器IP:3000

 添加數據源,選擇prometheus,填入prometheus服務器IP端口,點擊保存

 導入監控圖表

輸入7589,光標往下移,如下圖

圖表數據就出來了

 以上儀表盤導入后再結合自身業務修改過的最終儀表盤:

  • 預警指標

序號

預警名稱

預警規則

描述

1

Broker數量預警

當Broker數量達到閾值【<3】時進行預警

 

2

消費延遲預警

當積壓的消息數量達到閾值【>1000】時進行預警

 

3

失效副本分區預警

當失效副本分區數量達到閾值【>0】時進行預警

 

 

  • Grafana儀表盤參考:

  1. https://grafana.com/grafana/dashboards/7589 (推介)
  2. https://grafana.com/grafana/dashboards/9018 (參考-新的)
  3. https://grafana.com/grafana/dashboards/9947(參考-新的)
  4. https://grafana.com/grafana/dashboards/10973(JMX-阿里雲)
  5. https://www.menina.cn/article/88
  6. https://cloud.tencent.com/developer/news/377416
 

其它

  • 注冊系統服務開機自動啟動
## 准備配置文件
cat <<\EOF >/etc/systemd/system/kafka_exporter.service
[Unit]
Description=Elasticsearch stats exporter for Prometheus
Documentation=Prometheus exporter for various metrics about ElasticSearch, written in Go.

[Service]
ExecStart=/usr/local/kafka_exporter/kafka_exporter --kafka.server=192.168.50.16:9092

[Install]
WantedBy=multi-user.target
EOF


## 啟動並設置為開機自動啟動
systemctl daemon-reload
systemctl enable kafka_exporter.service
systemctl stop kafka_exporter.service
systemctl start kafka_exporter.service
systemctl status kafka_exporter.service

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM