在CentOS上监控Kafka的方法可分为基础工具、自研脚本、专业监控方案三类,以下是具体实现步骤:
Kafka自带的脚本可快速查看集群状态、主题信息及消费者偏移量,无需额外安装:
bin/kafka-topics.sh --bootstrap-server <broker_host>:9092 --list(列出所有主题);bin/kafka-broker-api-versions.sh --bootstrap-server <broker_host>:9092(查看broker API版本)。bin/kafka-topics.sh --describe --topic <topic_name> --bootstrap-server <broker_host>:9092(查看分区、副本分布)。bin/kafka-consumer-groups.sh --bootstrap-server <broker_host>:9092 --describe --group <group_id>(查看消费滞后量LAG);bin/kafka-consumer-groups.sh --bootstrap-server <broker_host>:9092 --group <group_id> --reset-offsets --to-latest --execute --topic <topic_name>(重置消费偏移量,调试用)。tail -f logs/server.log(实时监控broker运行日志,定位错误)。Kafka通过JMX暴露性能指标(如吞吐量、请求延迟),可使用kafka-run-class.sh工具实时查询:
bin/kafka-run-class.sh kafka.tools.JmxTool \
--object-name kafka.server:type=BrokerTopicMetrics,name=BytesInPerSec \
--jmx-url service:jmx:rmi:///jndi/rmi://localhost:9999/jmxrmi \
--attributes OneMinuteRate \
--reporting-interval 5000
--object-name指定监控的JMX对象(如BytesInPerSec表示每秒入站字节数);--jmx-url指定JMX端口(需提前开启);--attributes指定要查询的指标(如OneMinuteRate表示1分钟平均值);--reporting-interval设置刷新间隔(毫秒)。步骤:
wget https://github.com/danielqsj/kafka_exporter/releases/download/v1.4.2/kafka_exporter-1.4.2.linux-amd64.tar.gz
tar -xzf kafka_exporter-1.4.2.linux-amd64.tar.gz
cd kafka_exporter-1.4.2.linux-amd64
./kafka_exporter --kafka.server=<broker_host>:9092 --web.listen-address=:9308
/etc/prometheus/prometheus.yml,添加以下内容:scrape_configs:
- job_name: 'kafka'
static_configs:
- targets: ['<kafka_exporter_host>:9308']
重启Prometheus:systemctl restart prometheus。Configuration > Data Sources);7587,覆盖吞吐量、延迟、分区状态等指标);BytesInPerSec、MessagesInPerSec图表)。Kafka Manager是Yahoo开源的Web工具,支持多集群监控、主题管理、消费者组跟踪:
wget https://github.com/yahoo/CMAK/releases/download/0.11.0/kafka-manager-0.11.0.tgz
tar -xzf kafka-manager-0.11.0.tgz
cd kafka-manager-0.11.0
./bin/kafka-manager -Dconfig.file=conf/application.conf -Dhttp.port=9000 &
http://<broker_host>:9000,默认账号admin/admin;Kafka Eagle是国产开源工具,支持消费者Lag告警、多集群管理、ZooKeeper监控:
wget https://github.com/xiaoxian8023/kafka-eagle/releases/download/v1.2.5/kafka-eagle-1.2.5.zip
unzip kafka-eagle-1.2.5.zip
cd kafka-eagle-1.2.5
export KE_HOME=/opt/kafka-eagle
export PATH=$KE_HOME/bin:$PATH
echo "KE_HOME=/opt/kafka-eagle" >> /etc/profile
echo "PATH=\$KE_HOME/bin:\$PATH" >> /etc/profile
source /etc/profile
conf/system-config.properties,添加Zookeeper地址:kafka.eagle.zk.cluster.alias=cluster1
cluster1.zk.list=localhost:2181
启动Kafka Eagle:bin/ke.sh start。http://<broker_host>:8048,默认账号admin/admin;yum install netdata -y),通过http://<broker_host>:19999访问仪表盘。以上方案可根据需求选择:基础监控用自带工具即可;企业级可视化选Prometheus+Grafana;集群管理选Kafka Manager/Kafka Eagle;系统级监控补充Netdata。