在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官方文檔或尋求社區支持。