温馨提示×

怎样监控debian kafka状态

小樊
44
2026-09-12 19:11:54
栏目: 智能运维

在 Debian 上监控 Kafka 状态,通常可以从系统层、Kafka 进程层、Kafka 内部指标、日志几个维度来做。下面按“从简单到专业”的方式给你一套实用方案。


一、最基础:看 Kafka 是否在运行

1. 查看进程

ps -ef | grep kafka

或

jps | grep Kafka

2. 看端口是否监听

Kafka 默认端口是 9092:

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

3. systemd(如果用服务方式安装)

systemctl status kafka
journalctl -u kafka -f

二、Kafka 自带命令行工具(最常用)

1. 查看 Broker 状态

kafka-broker-api-versions.sh --bootstrap-server localhost:9092

2. 查看 Topic 状态

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

3. 查看 Consumer Group 状态

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

4. 测试生产 / 消费是否正常

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

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

三、开启并查看 Kafka 内部指标(强烈推荐)

Kafka 使用 JMX 暴露指标。

1. 启用 JMX

编辑 kafka-server-start.sh 或 server.properties 所在启动脚本,加入:

export JMX_PORT=9999

重启 Kafka 后:

ss -lntp | grep 9999

2. 使用 jconsole(图形化)

jconsole localhost:9999

可看:

  • 消息吞吐
  • 请求延迟
  • 分区状态
  • GC 情况

四、用 Prometheus + Grafana(生产级监控)

架构

Kafka → JMX Exporter → Prometheus → Grafana

1. 安装 JMX Exporter

wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.20.0/jmx_prometheus_javaagent-0.20.0.jar

2. Kafka 启动参数

export KAFKA_OPTS="-javaagent:/path/jmx_prometheus_javaagent.jar=7071:/path/kafka.yml"

3. Prometheus 抓取

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

4. Grafana

  • 导入官方 Kafka Dashboard(ID:7589 或 10973)

五、日志监控(非常重要)

Kafka 日志位置

/var/log/kafka/
# 或
$KAFKA_HOME/logs/server.log

实时查看

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

常见异常

  • OutOfMemoryError
  • Under-replicated partitions
  • Leader not available
  • Request timed out

六、第三方工具(可选)

  • Kafka Manager(CMAK)
  • Confluent Control Center(商业)
  • Burrow(消费者延迟监控)
  • Kafka Eagle

七、简单监控脚本示例(Debian)

#!/bin/bash
if ! systemctl is-active --quiet kafka; then
  echo "Kafka is down!" | mail -s "Kafka Alert" admin@xxx.com
fi

可用 cron 定时执行。


总结建议

场景 推荐方式
临时排查 命令行工具 + 日志
单机测试 JMX + jconsole
生产环境 Prometheus + Grafana
消费者延迟 Burrow

如果你愿意,我可以:

  • 给你一份 Debian Kafka systemd 配置
  • 或帮你 写一套 Prometheus + Kafka 监控配置
  • 或针对 你当前 Kafka 版本给具体命令

你现在是测试环境还是生产环境?

0 踩