温馨提示×

linux kafka如何监控

小樊
54
2026-09-05 09:53:06
栏目: 智能运维

在 Linux 环境下监控 Kafka,可以从系统层、Kafka 自身指标、日志、客户端与运维工具几个层面来做。下面给你一个比较实用、由浅入深的方案。


一、Kafka 自带指标(最重要)

1. JMX 监控(核心)

Kafka 通过 JMX 暴露大量指标。

开启 JMX

修改 kafka-server-start.sh 或 server.properties 所在启动脚本:

export JMX_PORT=9999

或启动参数:

KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=9999 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false"

⚠️ 生产环境建议开启认证和 SSL


2. 常用监控指标(重点)

通过 JMX 能看到:

Broker 指标

  • kafka.server:type=BrokerTopicMetrics
    • MessagesInPerSec
    • BytesInPerSec
    • BytesOutPerSec
  • kafka.server:type=ReplicaManager
    • UnderReplicatedPartitions
    • LeaderCount
  • kafka.network:type=RequestMetrics
    • RequestLatencyAvg

消费者

  • kafka.consumer:type=consumer-fetch-manager-metrics
    • RecordsLagMax
    • FetchRate

二、使用 Kafka 自带命令行工具

1. Topic / 消费情况

# 查看 topic 列表
kafka-topics.sh --bootstrap-server localhost:9092 --list

# 查看 topic 详情
kafka-topics.sh --bootstrap-server localhost:9092 --describe --topic test

# 消费滞后(非常重要)
kafka-consumer-groups.sh \
  --bootstrap-server localhost:9092 \
  --describe --group my-group

2. 生产者 / 消费者压测

kafka-producer-perf-test.sh \
  --topic test --num-records 100000 \
  --record-size 1024 --throughput -1 \
  --producer-props bootstrap.servers=localhost:9092

kafka-consumer-perf-test.sh \
  --bootstrap-server localhost:9092 \
  --topic test --messages 100000

三、系统层监控(Linux)

1. 基础资源

top / htop
iostat -x 1
free -h
df -h

Kafka 对:

  • 磁盘 IO
  • 内存
  • 网络带宽

非常敏感


2. 文件描述符

Kafka 会占用大量 fd:

ulimit -n
lsof -p <kafka_pid> | wc -l

建议:

ulimit -n 100000

四、可视化监控系统(推荐)

方案 1:Kafka + Prometheus + Grafana(最主流)

架构

Kafka → JMX Exporter → Prometheus → Grafana

JMX Exporter

java -javaagent:jmx_prometheus_javaagent.jar=7071:kafka.yml \
     -jar kafka.jar

Prometheus 抓取

scrape_configs:
  - job_name: kafka
    static_configs:
      - targets: ['kafka1:7071']

Grafana

  • 官方 Kafka Dashboard
  • 监控:吞吐、lag、副本状态、GC

✅ 生产最推荐


方案 2:Kafka Manager / CMAK

# 可视化 topic、partition、consumer

适合运维查看,不适合深度监控


方案 3:Burrow(消费滞后专用)

专门监控 consumer lag:

  • 不依赖 JMX
  • 报警友好

五、日志监控(不能忽略)

Kafka 日志

tail -f /var/log/kafka/server.log

重点看:

  • ERROR / FATAL
  • Under-replicated
  • ISR shrink
  • GC 日志

建议:

  • 接 ELK / Loki
  • 配置关键字告警

六、常见告警阈值建议

指标 建议告警
UnderReplicatedPartitions > 0
Consumer Lag 持续增长
Request Latency > 100ms
Disk Usage > 80%
GC Time > 5% CPU

七、总结(实用路线)

✅ 入门

  • kafka-consumer-groups.sh
  • server.log

✅ 进阶

  • JMX + Prometheus + Grafana

✅ 生产

  • JMX Exporter
  • Burrow
  • 日志告警
  • 系统资源监控

如果你愿意,我可以:

  • 给你一套 Prometheus + Grafana 完整配置
  • 或针对 单节点 / 集群 / 容器 Kafka 给监控方案

0 踩