在Linux上配置Kafka集群涉及多个步骤,包括安装、配置、启动以及安全设置。以下是一个详细的指南:
sudo apt-get update
sudo apt-get install openjdk-11-jdk maven
访问Apache Kafka官方网站并下载最新版本的Kafka。例如,要下载Kafka 3.0.0,请运行以下命令:
wget https://downloads.apache.org/kafka/3.0.0/kafka_2.13-3.0.0.tgz
tar -xzf kafka_2.13-3.0.0.tgz
cd kafka_2.13-3.0.0
mkdir config
cp bin/kafka-server-start.sh bin/zookeeper-server-start.sh /usr/local/bin/
cp config/server.properties /usr/local/kafka/config/
编辑Kafka的配置文件config/zookeeper.properties
,设置数据目录和其他必要参数。例如:
dataDir = /tmp/zookeeper
clientPort = 2181
maxClientCnxns = 0
编辑Kafka的配置文件config/server.properties
,设置broker ID、日志目录等参数。例如:
broker.id = 0
listeners = PLAINTEXT://localhost:9092
log.dirs = /tmp/kafka-logs
num.partitions = 1
使用scp
命令将配置文件分发到集群中的其他节点,并修改每个节点的broker.id
以匹配其在集群中的位置。
sudo /usr/local/kafka/bin/zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.properties
sudo /usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties
使用jps
命令检查Kafka服务是否正常运行。
确保只开放Kafka使用的端口,如9092(Broker间通信)、2181(ZooKeeper)、9094(TLS/SSL加密通信)等。
sudo ufw allow 9092/tcp
sudo ufw allow 2181/tcp
sudo ufw allow 9094/tcp
生成SSL证书,并在Kafka的配置文件server.properties
中配置listeners和security.inter.broker.protocol以启用SSL。
listeners=SSL://:9093
security.inter.broker.protocol=SSL
ssl.trustStore=/path/to/truststore.jks
ssl.trustStore.password=password
ssl.keyStore=/path/to/keystore.jks
ssl.keyStore.password=password
安装并配置Kafka SASL插件,创建JAAS配置文件,并修改Kafka配置文件以启用SASL认证。
# 在server.properties中启用SASL
listeners=SASL_PLAINTEXT://:9092
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.mechanism.inter.broker.protocol=PLAINTEXT
sasl.enabled.mechanisms=SCRAM-SHA-256
使用ACL(访问控制列表)功能定义用户和角色,为用户分配适当的权限。
kafka-topics.sh --zookeeper localhost:2181 --alter --topic test --add-partition 1 --partitions 2 --replication-factor 2
修改/etc/ssh/sshd_config
文件,将PermitRootLogin
设置为no
。
PermitRootLogin no
定期更新Kafka和JDK,保持其最新版本,以获取最新的安全补丁。同时,配置监控和日志记录,以便及时发现和响应安全事件。
以上步骤应该能帮助您在Linux上成功配置Kafka集群。如果在配置过程中遇到任何问题,建议查阅Kafka官方文档或寻求社区支持。