Kafka Linux配置故障排查指南
首先确认Kafka服务是否处于运行状态,使用systemctl命令查看服务状态:
systemctl status kafka
若服务未启动,执行systemctl start kafka启动服务;若启动失败,需进一步排查日志。
Kafka的日志文件(通常位于/var/log/kafka/server.log或/path/to/kafka/logs/server.log)是故障排查的核心依据。使用tail -f命令实时查看最新日志,重点关注ERROR或WARN级别的错误信息(如配置错误、连接失败、磁盘空间不足等)。
Kafka的主配置文件server.properties(通常位于/etc/kafka/或Kafka安装目录的config/下)需重点检查以下关键配置项:
broker.id:每个broker的唯一标识(集群中不可重复);listeners:broker监听的地址和端口(如PLAINTEXT://0.0.0.0:9092);advertised.listeners:客户端连接的地址和端口(需与客户端网络可达的地址一致,如PLAINTEXT://your.broker.ip:9092);zookeeper.connect:Zookeeper集群连接字符串(如localhost:2181或zk1:2181,zk2:2181,zk3:2181);log.dirs:Kafka日志数据存储目录(需确保目录存在且有写入权限)。Kafka依赖Zookeeper进行集群管理(如broker注册、分区Leader选举)。使用systemctl status zookeeper检查Zookeeper服务是否运行,若未启动则执行systemctl start zookeeper;若Zookeeper已运行,可通过bin/zkServer.sh status查看其状态,确保Kafka能正常连接到Zookeeper。
ping命令测试Kafka节点之间的网络连通性(如ping <broker_ip>);netstat -tuln | grep <port>(如netstat -tuln | grep 9092)检查Kafka监听的端口是否被其他进程占用;sudo firewall-cmd --list-all查看防火墙规则,确保Kafka所需端口(如9092、2181)已开放(可通过sudo firewall-cmd --add-port=9092/tcp --permanent添加规则并reload)。df -h /var/lib/kafka/data(或log.dirs指定的目录)检查磁盘空间使用情况,确保剩余空间充足(建议保留至少20%的空闲空间);kafka)对配置文件、日志目录、数据目录有读取和写入权限(可使用chown -R kafka:kafka /var/lib/kafka/data修改权限)。使用Kafka自带工具验证集群功能:
bin/kafka-topics.sh --list --bootstrap-server <broker_ip>:<port>(如--bootstrap-server localhost:9092);bin/kafka-topics.sh --create --topic test --bootstrap-server localhost:9092 --partitions 3 --replication-factor 1;bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test;bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginningserver.properties中的listeners和advertised.listeners配置是否正确(尤其是多网卡环境下advertised.listeners需指向客户端可访问的地址);zookeeper.connect配置正确,Zookeeper服务运行正常,且网络可达;server.properties中的listeners端口(如从9092改为9093),并更新防火墙规则。