温馨提示×

linux kafka怎么监控

小樊
56
2026-09-17 12:08:50
栏目: 智能运维

在 Linux 上监控 Kafka,通常从 系统层面、Kafka 自身指标、消息消费情况、日志与告警 几个维度来做。下面给你一套比较实用、由浅入深的方案。


一、最基础:进程 & 端口监控(先保证“活着”)

1. 查看 Kafka 进程

ps -ef | grep kafka

或

jps | grep Kafka

2. 查看端口(默认 9092)

netstat -tunlp | grep 9092
# 或
ss -tunlp | grep 9092

3. systemd 状态(如果用系统服务)

systemctl status kafka
journalctl -u kafka -f

二、Kafka 自带命令行监控(零依赖)

1. 查看 Topic 状态

kafka-topics.sh --bootstrap-server localhost:9092 \
  --describe

2. 消费滞后监控(最重要)

kafka-consumer-groups.sh \
  --bootstrap-server localhost:9092 \
  --describe --group your-consumer-group

关注:

  • LAG:消费滞后
  • CURRENT-OFFSET
  • LOG-END-OFFSET

3. 生产/消费测试

# 生产
kafka-console-producer.sh \
  --bootstrap-server localhost:9092 \
  --topic test

# 消费
kafka-console-consumer.sh \
  --bootstrap-server localhost:9092 \
  --topic test --from-beginning

三、JMX + 监控工具(生产环境推荐)

Kafka 通过 JMX 暴露大量指标。

1. 开启 JMX

在 kafka-server-start.sh 或 server.properties 中:

export JMX_PORT=9999

重启 Kafka 后可用:

netstat -tunlp | grep 9999

2. 常用监控组合

✅ Prometheus + JMX Exporter + Grafana(最主流)

架构:

Kafka → JMX Exporter → Prometheus → Grafana

JMX Exporter

  • 下载 jmx_prometheus_javaagent
  • Kafka 启动参数加:
-javaagent:/path/jmx_prometheus_javaagent.jar=7071:/path/kafka.yml

Prometheus 配置

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

Grafana

  • 导入 Kafka Dashboard(ID: 7589 / 10973)

✅ Kafka Manager / CMAK(图形化)

# 开源:Yahoo CMAK

功能:

  • Topic 管理
  • Consumer Group
  • Broker 状态
  • Lag 监控

四、broker 关键指标(重点看这些)

Broker 级

  • kafka.server:type=BrokerTopicMetrics
    • MessagesInPerSec
    • BytesInPerSec
    • BytesOutPerSec
  • kafka.network:type=RequestMetrics
    • RequestQueueTimeMs
    • ResponseQueueTimeMs

消费级

  • kafka.consumer:type=consumer-fetch-manager-metrics
    • records-lag-max
    • fetch-latency-avg

磁盘 & 系统

df -h
iostat -x 1

Kafka 对磁盘 IO 非常敏感。


五、日志监控(别忽视)

1. Kafka 日志位置

# server.properties
log.dirs=/data/kafka-logs

2. 关键日志

tail -f /data/kafka-logs/server.log

常见异常:

  • Under-replicated partitions
  • Leader not available
  • GC overhead
  • OutOfMemoryError

可接:

  • ELK
  • Loki
  • Filebeat

六、告警(必须做)

建议告警项:

  • Consumer Lag > 阈值
  • Under Replicated Partitions > 0
  • Broker 宕机
  • 磁盘使用率 > 80%
  • Full GC 频繁

七、简单场景推荐方案

场景 推荐
学习/测试 命令行 + consumer-groups
单机生产 JMX + Prometheus + Grafana
集群生产 CMAK + Prometheus + 告警
云环境 云厂商 Kafka 监控

如果你愿意,可以告诉我:

  • Kafka 版本
  • 是否集群
  • 是否已有 Prometheus / Grafana
  • 主要关心“消费延迟”还是“稳定性”

我可以直接给你 可复制的配置文件。

0 踩