温馨提示×

怎么在debian管kafka

小樊
37
2026-09-22 02:45:20
栏目: 智能运维

在 Debian 上“管 Kafka”一般分几块:安装/启动日常运维命令配置与系统服务化监控与排错。下面按实用角度给你一个清晰清单。


一、安装 Kafka(Debian)

Kafka 依赖 Java,先装 JDK:

sudo apt update
sudo apt install -y default-jdk
java -version

方式 1:官方二进制(推荐)

wget https://downloads.apache.org/kafka/3.7.0/kafka_2.13-3.7.0.tgz
tar -xzf kafka_2.13-3.7.0.tgz
sudo mv kafka_2.13-3.7.0 /opt/kafka

方式 2:用 apt(不推荐,版本老)

Debian 官方源里一般没有新 Kafka,不建议。


二、启动 Kafka(本地测试)

Kafka 自带 Zookeeper(老版本)或 KRaft(新版本)。

1️⃣ 使用 Zookeeper(常见)

/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties

另开终端:

/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties

2️⃣ 使用 KRaft(Kafka 3.x+,无 Zookeeper)

/opt/kafka/bin/kafka-storage.sh random-uuid
/opt/kafka/bin/kafka-storage.sh format \
  -t <uuid> -c /opt/kafka/config/kraft/server.properties

/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/kraft/server.properties

三、常用管理命令(必须会)

Topic 管理

# 创建
kafka-topics.sh --create \
  --topic test --partitions 3 --replication-factor 1 \
  --bootstrap-server localhost:9092

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

# 删除
kafka-topics.sh --delete --topic test --bootstrap-server localhost:9092

生产与消费

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

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

消费者组

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

四、做成 systemd 服务(生产必做)

Zookeeper

/etc/systemd/system/zookeeper.service

[Unit]
Description=Zookeeper
After=network.target

[Service]
ExecStart=/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties
User=kafka
Restart=on-failure

[Install]
WantedBy=multi-user.target

Kafka

/etc/systemd/system/kafka.service

[Unit]
Description=Apache Kafka
After=zookeeper.service

[Service]
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
User=kafka
Restart=on-failure

[Install]
WantedBy=multi-user.target
sudo useradd kafka
sudo systemctl daemon-reload
sudo systemctl enable --now zookeeper kafka

五、配置重点(Debian 上常踩坑)

server.properties 关键项:

listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://<服务器IP>:9092
log.dirs=/var/lib/kafka-logs
num.partitions=3

目录权限:

sudo mkdir -p /var/lib/kafka-logs
sudo chown -R kafka:kafka /var/lib/kafka-logs

六、监控与排错

看日志

journalctl -u kafka -f
/opt/kafka/logs/server.log

基础监控

  • kafka-topics.sh --describe
  • kafka-consumer-groups.sh
  • JMX + Prometheus + Grafana(生产推荐)

常见错误

  • Connection refused → advertised.listeners 配错
  • broker not available → Kafka 没起来 / Zookeeper 异常
  • 磁盘满 → log.retention.hours

七、如果你愿意,我可以继续帮你

你可以告诉我:

  • ✅ 是 开发测试 还是 生产环境
  • ✅ 用 Zookeeper 还是 KRaft
  • ✅ 单节点还是集群
  • ✅ 是否要 Docker / Ansible / 监控方案

我可以直接给你一套 可复制的 Debian 实操方案

0