温馨提示×

kafka监控centos上怎么做

小樊
41
2025-11-01 16:32:57
栏目: 智能运维

在CentOS上监控Kafka的方法可分为基础工具、自研脚本、专业监控方案三类,以下是具体实现步骤:

一、基础工具监控(快速上手)

1. 使用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>(重置消费偏移量,调试用)。
  • 查看broker日志tail -f logs/server.log(实时监控broker运行日志,定位错误)。

二、自研脚本监控(定制化需求)

1. 使用JMXTool实时查看JMX指标

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设置刷新间隔(毫秒)。

三、专业监控方案(企业级推荐)

1. Prometheus + Grafana(可视化+告警)

步骤

  • 安装Kafka Exporter(采集Kafka JMX指标):
    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
    
  • 配置Prometheus(添加Kafka Exporter为抓取目标): 编辑/etc/prometheus/prometheus.yml,添加以下内容:
    scrape_configs:
      - job_name: 'kafka'
        static_configs:
          - targets: ['<kafka_exporter_host>:9308']
    
    重启Prometheus:systemctl restart prometheus
  • 配置Grafana(可视化指标):
    • 添加Prometheus为数据源(Configuration > Data Sources);
    • 导入Kafka仪表盘(如ID 7587,覆盖吞吐量、延迟、分区状态等指标);
    • 自定义面板(如添加BytesInPerSecMessagesInPerSec图表)。

2. Kafka Manager(开源集群管理)

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集群(填写Zookeeper地址)、查看Broker/Topic列表、监控消费滞后、修改Topic配置。

3. Kafka Eagle(轻量级监控告警)

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
  • 核心功能:查看Topic/Consumer列表、监控消费Lag(支持邮件/钉钉告警)、分析Topic流量趋势。

四、其他可选工具

  • Netdata(系统级监控):实时监控Kafka broker的CPU、内存、磁盘、网络等系统指标,安装简单(yum install netdata -y),通过http://<broker_host>:19999访问仪表盘。
  • Burrow(消费者监控):专门监控Kafka消费者偏移量,及时发现消费延迟,需部署Go环境并编译安装,支持邮件/Slack告警。

以上方案可根据需求选择:基础监控用自带工具即可;企业级可视化选Prometheus+Grafana;集群管理选Kafka Manager/Kafka Eagle;系统级监控补充Netdata。

0