1
背景介绍
大数据组件中,Kafka使用非常广泛。而提及Kafka的监控,历来都是个头疼的事情,Kafka的开源社区在监控框架上并没有投入太多的精力。(Cloudera倒是有一个关于Kafka独立的产品Cloudera Streams Management)
下面是几种常见的Kafka监控方案:
以上开源监控方案,各有千秋,Kafka Manager,Kafka Eagle,适合基本的Kafka监控。如果企业已经使用上Prometheus,也非常方便将Kafka的监控集成到Prometheus上。即采用kafka_exporter采集Kafka的metrics,发送到Prometheus,使用Grafana进行展示。
2
kafka_exporter安装
下载地址:https://github.com/danielqsj/kafka_exporter/releases
上传服务器并进行解压
tar -zxvf kafka_exporter-1.2.0.linux-amd64.tar.gz -C /opt/
创建日志目录,编写启动脚本
vi /var/log/kafka_exporter.log
# 启动脚本
/opt/kafka_exporter-1.2.0.linux-amd64/kafka_exporter \
--kafka.server=10.64.49.5:9092 >> /var/log/kafka_exporter.log
编写kafka_exporter启动服务
vi /usr/lib/systemd/system/kafka_exporter.service
[Unit]
Description=kafka_exporter
Documentation=https://github.com/danielqsj/kafka_exporter/
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
Group=prometheus
# 启动脚本
ExecStart=/opt/kafka_exporter-1.2.0.linux-amd64/start_kafka_exporter.sh
[Install]
WantedBy=multi-user.target
启动kafka_exporter服务,注意修改下/var/log/kafka_exporter.log文件的所属用户和权限
# 配置开机启动
systemctl enable kafka_exporter
systemctl start kafka_exporter
systemctl status kafka_exporter
访问kafka_exporter机器的9308端口
kafka_exporter部署完成
3
Prometheus配置采集kafka_exporter
修改prometheus的yml配置文件,添加kafka_exporter配置
# 采集kafka指标
- job_name: 'prod_kafka'
static_configs:
- targets:
- 'utility2.xxxxxx.com:9308'
更新prometheus配置
curl -X POST http://127.0.0.1:9091/-/reload
访问Prometheus查看kafka_exporter是否生效
4
配置Grafana
搜索kafka的grafana仪表板,下载json配置
地址:https://grafana.com/grafana/dashboards/7589
导入Grafana dashborad
模板导入效果,后续可以根据自身业务进行修改,Prometheus上可以配置Kafka的报警策略。在dashboard上,可以跟Kafka主机的监控结合起来放到一个页面。