Prometheus和Grafana部署可以参考:https://blog.youkuaiyun.com/skh2015java/article/details/102572363,本文不再累述Prometheus的安装部署。
简述
默认情况下, Kafka metrics 所有的 metric 都可以通过 JMX 获取,暴露kafka metrics 支持两种方式
1. 在 Kafka Broker 进程内部读取 JMX 数据, 这样解析数据的逻辑就在 Kafka Broker 进程内部, 如果有任何调整, 需要重启 Broker。
2. 在 Kafka Broker 外部, 作为一个独立进程, 通过 JMX 的 RMI 接口读取数据. 这种方式的好处是有任何调整不需要重启 Kafka Broker 进程, 缺点是多维护了一个独立的进程。

第一种方法:
通过进程内部读取JMX数据,需要先下载jmx_agent的jar包,
jar包下载地址:https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent
我们这里选择最新版本(2019.10)
wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.9/jmx_prometheus_javaagent-0.9.jar
下载对应的配置文件
wget https://raw.githubusercontent.com/prometheus/jmx_exporter/master/example_configs/kafka-0-8-2.yml
将该jar包移动到kafka的libs目录下
mv jmx_prometheus_javaagent-0.9.jar kafka/libs
配置kafka的启动脚本 kafka-server-start.sh
在最后一行exec前加上
export JMX_PORT="9999"
export KAFKA_OPTS="-javaagent:yourKafkaPath/libs/jmx_prometheus_javaagent-0.9.jar=7072:yourKafkaPath/config/kafka-0-8-2.yml"
重启kafka服务
curl http://localhost:7072/metrics 如果有输出需要kafka的指标则说明配置成功。
使用Grafana监控
Grafana dashboard 地址 https://grafana.com/grafana/dashboards/721
将kafka对应的Dashboard导入
最终效果图如下:

第二种方式:通过安装kafka_exporter
源码地址:https://github.com/danielqsj/kafka_exporter
下载地址:https://github.com/danielqsj/kafka_exporter/releases
启动:
kafka_exporter --kafka.server=kafka:9092 [--kafka.server=another-server ...]
grafana dashboard地址为 https://grafana.com/grafana/dashboards/7589
感谢
https://blog.youkuaiyun.com/qq_25934401/article/details/84840740
1383





