安裝手冊
# 前言
本文檔為金蝶Apusic分散式訊息佇列for Kafka(Apusic Distributed Message Queue,簡稱:ADMQ for Kafka)的安裝手冊,提供產品各種部署模式(含單機、叢集)在各作業系統、容器環境的安裝部署過程指導以及相關配置說明。
# 適用對象
本文檔適用於IT資訊化業務負責人、研發經理、軟體專案經理、軟體架構師、運維工程師。
# 相關文檔
瞭解更多ADMQ for Kafka產品相關的資訊,請參閱以下ADMQ for Kafka產品手冊文檔集:
| 序號 | 手冊文檔 | 說明 |
|---|---|---|
| 1 | 金蝶Apusic分散式訊息佇列for Kafka 快速使用手冊 | 簡單介紹了如何快速上手使用ADMQ for Kafka。 |
| 2 | 金蝶Apusic分散式訊息佇列for Kafka 安裝手冊 | 詳細介紹如何在各作業系統上安裝ADMQ for Kafka,以及ADMQ for Kafka服務啟停等操作。 |
| 3 | 金蝶Apusic分散式訊息佇列for Kafka 訊息引擎使用者手冊 | 詳細介紹 ADMQ for Kafka 訊息引擎相關功能的使用、配置、管理及配套工具的使用方法。 |
| 4 | 金蝶Apusic分散式訊息佇列for Kafka 管控臺使用者手冊 | 詳細介紹ADMQ for Kafka管控臺相關功能的使用和操作說明。 |
| 5 | 金蝶Apusic分散式訊息佇列for Kafka 開發手冊 | 詳細介紹基於各開發語言進行ADMQ for Kafka用戶端應用開發的說明。 |
| 6 | 金蝶Apusic分散式訊息佇列for Kafka 遷移手冊 | 詳細介紹從Kafka遷移到ADMQ for Kafka的說明。 |
| 7 | 金蝶Apusic分散式訊息佇列for Kafka 運維手冊 | 詳細介紹ADMQ for Kafka的監控、運維、安全加固等運維說明。 |
| 8 | 金蝶Apusic分散式訊息佇列for Kafka 效能最佳化手冊 | 詳細介紹ADMQ for Kafka效能調優的說明。 |
# 技術支援
ADMQ for Kafka產品提供全面的技術支援服務,您可以透過以下方式獲得技術支援:
- 網址:www.apusic.com
- 電話:400-855-5800
- 信箱:support@apusic.com
- 金蝶雲社群:https://vip.kingdee.com/?productId=73&productLineId=14&lang=zh-CN
您在取得技術支援時,請提供如下資訊:
您的姓名
公司資訊與聯絡方式
作業系統及其版本
產品版本號
出現異常及錯誤的日誌、截圖等詳細資訊
ADMQ for Kafka支援透過管控臺部署,請參考《金蝶Apusic分散式訊息佇列V2.0.6_統一管控臺使用者手冊.pdf》,【快速入門】章節。
# 概述
ADMQ for Kafka包含核心引擎、分散式協調、管控臺三個部分,其中核心引擎受license控制,需要在安裝時申請並匯入license。管控臺為可選部件,如需可視化管控時,可單獨安裝管控臺。
# 部署架構圖
# 單機部署架構
┌─────────────────────────────────────────────────────────────┐
│ 單機部署架構 │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────┐ ┌──────────────────┐ │
│ │ 用戶端應用 │ │ 管控臺 │ │
│ │ (Producer/ │ │ (可選元件) │ │
│ │ Consumer) │ │ │ │
│ └────────┬────────┘ └────────┬─────────┘ │
│ │ │ │
│ │ 9092 │ 12305 │
│ ▼ ▼ │
│ ┌──────────────────────────────────────────────┐ │
│ │ 單臺物理機/虛擬機 │ │
│ │ │ │
│ │ ┌──────────────┐ ┌──────────────────┐ │ │
│ │ │ Broker │ │ ADCC for zk │ │ │
│ │ │ (Standalone) │ │ (內置) │ │ │
│ │ │ │ │ │ │ │
│ │ └──────────────┘ └──────────────────┘ │ │
│ │ │ │
│ │ ┌──────────────────────────────────────┐ │ │
│ │ │ License 檔案 │ │ │
│ │ └──────────────────────────────────────┘ │ │
│ └──────────────────────────────────────────────┘ │
│ │
│ 適用場景:開發測試環境、小規模驗證 │
│ 特點:簡單快速,無需高可用配置 │
└─────────────────────────────────────────────────────────────┘
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 叢集部署架構
┌─────────────────────────────────────────────────────────────────────────────┐
│ 叢集部署架構 │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 用戶端應用 │ │ 用戶端應用 │ │ 用戶端應用 │ │
│ │ (Producer) │ │ (Consumer) │ │ (Producer) │ │
│ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │
│ │ │ │ │
│ └────────────────┼────────────────┘ │
│ │ │
│ ▼ 9092 │
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ Broker 叢集 │ │
│ │ │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │
│ │ │ Broker 0 │◄──────►│ Broker 1 │◄──────►│ Broker 2 │ │ │
│ │ │ (Leader) │ │(Follower)│ │(Follower)│ │ │
│ │ └────┬─────┘ └────┬─────┘ └────┬─────┘ │ │
│ │ │ │ │ │ │
│ │ └───────────────────┼───────────────────┘ │ │
│ │ │ │ │
│ │ 資料同步/副本複製 │ │
│ └────────────────────────────┬─────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ ADCC for zk 叢集(3節點) │ │
│ │ │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │
│ │ │ ADCC for │◄──────►│ ADCC for │◄──────►│ ADCC for │ │ │
│ │ │ zk Node 1│ │ zk Node 2│ │ zk Node 3│ │ │
│ │ │ (Leader) │ │(Follower)│ │(Follower)│ │ │
│ │ └──────────┘ └──────────┘ └──────────┘ │ │
│ │ │ │
│ └──────────────────────────────────────────────────────────────┘ │
│ │
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ 管控臺(可選) │ │
│ │ 連接埠:12305 │ │
│ └──────────────────────────────────────────────────────────────┘ │
│ │
│ 適用場景:生產環境、高可用業務場景 │
│ 特點:多副本冗餘、故障自動轉移、水平擴展 │
└─────────────────────────────────────────────────────────────────────────────┘
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# 混合部署架構
┌─────────────────────────────────────────────────────────────────────────────┐
│ 混合部署架構 │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 用戶端應用 │ │ 用戶端應用 │ │ 用戶端應用 │ │
│ │ (Producer) │ │ (Consumer) │ │ (Producer) │ │
│ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │
│ │ │ │ │
│ └────────────────┼────────────────┘ │
│ │ │
│ ▼ 9092 │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ Broker 叢集 │ │
│ │ │ │
│ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │
│ │ │ Node 1 │ │ Node 2 │ │ Node 3 │ │ │
│ │ │ ┌──────────┐ │ │ ┌──────────┐ │ │ ┌──────────┐ │ │ │
│ │ │ │Broker 0 │ │ │ │Broker 1 │ │ │ │Broker 2 │ │ │ │
│ │ │ └──────────┘ │ │ └──────────┘ │ │ └──────────┘ │ │ │
│ │ │ ┌──────────┐ │ │ ┌──────────┐ │ │ ┌──────────┐ │ │ │
│ │ │ │ADCC for │ │ │ │ADCC for │ │ │ │ADCC for │ │ │ │
│ │ │ │zk Node 1 │ │ │ │zk Node 2 │ │ │ │zk Node 3 │ │ │ │
│ │ │ └──────────┘ │ │ └──────────┘ │ │ └──────────┘ │ │ │
│ │ └──────────────┘ └──────────────┘ └──────────────┘ │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ 管控臺(可選,獨立部署) │ │
│ │ 連接埠:12305 │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │
│ 適用場景:資源受限的生產環境、中小型叢集 │
│ 特點:節省伺服器資源,ZK與Broker共用節點,部署成本更低 │
│ 注意:需確保節點資源充足(CPU/記憶體/磁碟),避免資源競爭 │
└─────────────────────────────────────────────────────────────────────────────┘
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# 安裝前準備
# 系統要求
| 元件 | 最低要求 | 建議配置 |
|---|---|---|
| 作業系統 | Linux (CentOS 7+, Ubuntu 18.04+, 麒麟 V10, 統信 UOS) | - |
| CPU | 4 核 | 8 核及以上 |
| 記憶體 | 8 GB | 16 GB 及以上 |
| 磁碟空間 | 100 GB | 500 GB 及以上 SSD |
| JDK | JDK 1.8+ (內置 OpenJDK 11) | JDK 11/17 |
# 連接埠檢查
確保以下連接埠可用:
| 連接埠 | 服務 | 說明 |
|---|---|---|
| 9092 | Broker | 生產者和消費者連線 |
| 2181 | ADCC for zk | ADCC for zk用戶端連線 |
| 2888 | ADCC for zk | Leader 和 Follower 通訊 |
| 3888 | ADCC for zk | 選舉通訊 |
| 12305 | 管控臺 | Web 介面(HTTP) |
# 關閉防火牆(測試環境)
# CentOS/RHEL
systemctl stop firewalld
systemctl disable firewalld
# Ubuntu
ufw disable
2
3
4
5
6
# 單機部署
# 1. 建立部署目錄
首先建立應用根目錄並進入:
mkdir -p /apusic
cd /apusic
2
# 2. 下載並解壓縮軟體包
可從產品光碟或聯絡銷售取得安裝包:
# 假設安裝包已複製到伺服器
tar zxvf ADMQ-V2.0.6.391-Kafka-20260319.tar.gz
2
# 3. 目錄結構說明
解壓縮完成後,目前目錄下將產生 admq-kafka。標準目錄結構如下:
| 目錄名 | 說明 |
|---|---|
bin | 存放啟動、停止及管理指令稿 |
config | 存放設定檔 (如 kafka-standalone.conf) |
data | 存放訊息資料及ADCC for zk資料 |
jdk | 內置的 Java 執行環境,無需額外配置系統 JDK |
logs | 存放執行日誌 (Broker 日誌、ADCC for zk日誌等) |
service | 系統服務註冊相關檔案 (可選) |
# 4. 配置修改
編輯單機模式設定檔,綁定指定的 IP 位址和連接埠:
vi config/kafka-standalone.conf
修改 listeners 配置項:
listeners=PLAINTEXT://192.168.1.10:9092
# 5. 授權許可
ADMQ for Kafka 產品需要 License 檔案才能正常執行:
- 申請授權:聯絡管理員或透過授權平台申請對應版本的
license.xml檔案 - 放置檔案:將取得的
license.xml檔案上傳至部署目錄根路徑
# 確認檔案位置
ls -l /apusic/admq-kafka/license.xml
2
# 6. 啟動服務
ADMQ for Kafka 單機模式依賴 ADCC for zk,需按順序啟動。
# 6.1 啟動 ADCC for zk
bin/admq-daemon start kafka zk
# 6.2 啟動 Broker
待 ADCC for zk 啟動成功後(通常等待 3-5 秒),啟動 Kafka 主服務:
bin/admq-daemon start kafka standalone
# 7. 服務驗證
# 7.1 檢查行程狀態
ps -ef | grep admq-kafka
正常狀態下應能看到兩個主要 Java 行程(一個 ADCC for zk,一個 Broker)。
# 7.2 檢查連接埠監聽
netstat -nltup | grep 9092
確認 9092 連接埠處於 LISTEN 狀態。
# 7.3 功能測試
# 建立測試 Topic
kafka/bin/kafka-topics.sh --create \
--bootstrap-server 192.168.1.10:9092 \
--topic test-topic \
--partitions 3 \
--replication-factor 1
# 生產訊息
kafka/bin/kafka-console-producer.sh \
--bootstrap-server 192.168.1.10:9092 \
--topic test-topic
# 消費訊息
kafka/bin/kafka-console-consumer.sh \
--bootstrap-server 192.168.1.10:9092 \
--topic test-topic \
--from-beginning
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 8. 停止服務
| 操作 | 命令 |
|---|---|
| 停止 ADCC for zk | bin/admq-daemon stop kafka zk |
| 停止 Broker | bin/admq-daemon stop kafka standalone |
# 叢集部署
# 1. 部署規劃
假設部署 3 節點高可用叢集(ADCC for zk與 Broker 混合部署):
| 節點 | IP 位址 | ADCC for zk MyID | Broker ID | ADCC for zk 連接埠 | Broker 連接埠 |
|---|---|---|---|---|---|
| Node 1 | 192.168.1.10 | 1 | 0 | 2181,2888,3888 | 9092 |
| Node 2 | 192.168.1.11 | 2 | 1 | 2181,2888,3888 | 9092 |
| Node 3 | 192.168.1.12 | 3 | 2 | 2181,2888,3888 | 9092 |
前置要求:
- 確保三台機器時間同步(NTP)
- 關閉防火牆或開放連接埠:2181, 2888, 3888, 9092
# 2. 所有節點執行:基礎安裝
在 Node 1, Node 2, Node 3 上分別執行:
mkdir -p /apusic
cd /apusic
tar zxvf ADMQ-V2.0.6.391-Kafka-20260319.tar.gz
cd admq-kafka
2
3
4
# 3. 放置授權檔案
將 license.xml 上傳至 /apusic/admq-kafka/ 目錄(所有節點)。
# 4. 配置 ADCC for zk 叢集
# 4.1 修改 ADCC for zk 設定檔
編輯 config/kafka-zk.conf。在所有三個節點上,配置內容完全一致:
server.1=192.168.1.10:2888:3888:participant;2181
server.2=192.168.1.11:2888:3888:participant;2181
server.3=192.168.1.12:2888:3888:participant;2181
2
3
# 4.2 建立 MyID 檔案
Node 1 (192.168.1.10):
mkdir -p /apusic/admq-kafka/data/zk/data
mkdir -p /apusic/admq-kafka/data/zk/logs
echo "1" > /apusic/admq-kafka/data/zk/data/myid
2
3
Node 2 (192.168.1.11):
mkdir -p /apusic/admq-kafka/data/zk/data
mkdir -p /apusic/admq-kafka/data/zk/logs
echo "2" > /apusic/admq-kafka/data/zk/data/myid
2
3
Node 3 (192.168.1.12):
mkdir -p /apusic/admq-kafka/data/zk/data
mkdir -p /apusic/admq-kafka/data/zk/logs
echo "3" > /apusic/admq-kafka/data/zk/data/myid
2
3
# 5. 配置 Broker 叢集
編輯 config/kafka-broker.conf。
# 5.1 Node 1 配置 (192.168.1.10)
broker.id=0
listeners=PLAINTEXT://192.168.1.10:9092
zookeeper.connect=192.168.1.10:2181,192.168.1.11:2181,192.168.1.12:2181
zookeeper.connection.timeout.ms=18000
2
3
4
# 5.2 Node 2 配置 (192.168.1.11)
broker.id=1
listeners=PLAINTEXT://192.168.1.11:9092
zookeeper.connect=192.168.1.10:2181,192.168.1.11:2181,192.168.1.12:2181
2
3
# 5.3 Node 3 配置 (192.168.1.12)
broker.id=2
listeners=PLAINTEXT://192.168.1.12:9092
zookeeper.connect=192.168.1.10:2181,192.168.1.11:2181,192.168.1.12:2181
2
3
# 6. 啟動叢集
嚴格遵循啟動順序:先 ADCC for zk 叢集,後 Broker 叢集。
# 6.1 第一步:啟動所有節點的 ADCC for zk
依次登入 Node 1, 2, 3 執行:
cd /apusic/admq-kafka
bin/admq-daemon start kafka zk
2
# 6.2 第二步:啟動所有節點的 Broker
依次登入 Node 1, 2, 3 執行:
cd /apusic/admq-kafka
bin/admq-daemon start kafka broker
2
# 7. 驗證與測試
# 7.1 驗證 ADCC for zk 叢集狀態
echo ruok | nc 192.168.1.10 2181
echo ruok | nc 192.168.1.11 2181
echo ruok | nc 192.168.1.12 2181
2
3
預期回傳 imok。
# 7.2 驗證 Broker 叢集中繼資料
kafka/bin/kafka-broker-api-versions.sh --bootstrap-server 192.168.1.10:9092
# 7.3 功能測試
- 建立 Topic(3 副本):
kafka/bin/kafka-topics.sh --create \
--topic test-cluster \
--bootstrap-server 192.168.1.10:9092 \
--partitions 3 \
--replication-factor 3
2
3
4
5
- 檢視 Topic 詳情:
kafka/bin/kafka-topics.sh --describe \
--topic test-cluster \
--bootstrap-server 192.168.1.10:9092
2
3
- 生產與消費測試:
# 生產者
kafka/bin/kafka-console-producer.sh \
--topic test-cluster \
--bootstrap-server 192.168.1.10:9092
# 消費者
kafka/bin/kafka-console-consumer.sh \
--topic test-cluster \
--from-beginning \
--bootstrap-server 192.168.1.10:9092
2
3
4
5
6
7
8
9
10
# 8. 停止服務
# 先停 Kafka
bin/admq-daemon stop kafka broker
# 後停 ADCC for zk
bin/admq-daemon stop kafka zk
2
3
4
# 服務化部署(systemd)
# 註冊系統服務
# 複製服務檔案
cp service/admq-kafka.service /etc/systemd/system/
cp service/admq-zookeeper.service /etc/systemd/system/
# 重新載入
systemctl daemon-reload
# 啟動服務
systemctl start admq-zookeeper
systemctl start admq-kafka
# 檢視狀態
systemctl status admq-kafka
2
3
4
5
6
7
8
9
10
11
12
13
# 服務管理命令
| 操作 | 命令 |
|---|---|
| 啟動 ADCC for zk | systemctl start admq-zookeeper |
| 啟動 Broker | systemctl start admq-kafka |
| 停止 | systemctl stop admq-kafka |
| 重新啟動 | systemctl restart admq-kafka |
| 狀態 | systemctl status admq-kafka |
| 開機自啟 | systemctl enable admq-kafka |
# 常見問題
# 安裝問題
| 問題 | 原因 | 解決方法 |
|---|---|---|
| 連接埠被佔用 | 9092 或 2181 連接埠已被佔用 | 檢查連接埠並釋放或修改配置連接埠 |
| 記憶體不足 | 伺服器記憶體低於最低要求 | 增加伺服器記憶體 |
| 磁碟空間不足 | 磁碟空間不足 | 清理磁碟或增加儲存 |
| License 無效 | License 檔案不正確或過期 | 申請有效 License 並重新放置 |
# 啟動問題
| 問題 | 原因 | 解決方法 |
|---|---|---|
| ADCC for zk 啟動失敗 | myid 檔案配置錯誤 | 檢查 myid 檔案內容 |
| Broker 無法連線 ADCC for zk | ADCC for zk 位址配置錯誤 | 檢查 zookeeper.connect 配置 |
| Broker ID 衝突 | broker.id 重複 | 檢查並修改 broker.id |
# 回滾方案
# 單機回滾
如需回滾到安裝前狀態:
# 1. 停止服務
bin/admq-daemon stop kafka standalone
bin/admq-daemon stop kafka zk
# 2. 備份並刪除資料目錄(謹慎操作)
mv /apusic/admq-kafka /apusic/admq-kafka.bak.$(date +%Y%m%d)
# 3. 如需恢復,重新解壓縮安裝包並配置
2
3
4
5
6
7
8
# 叢集回滾
# 1. 按順序停止所有節點服務
bin/admq-daemon stop kafka broker
bin/admq-daemon stop kafka zk
# 2. 備份各節點資料
mv /apusic/admq-kafka /apusic/admq-kafka.bak.$(date +%Y%m%d)
# 3. 清理 ADCC for zk 資料
cd /apusic/admq-kafka.bak.*/data/zk
cp -r data /backup/zk-data-$(date +%Y%m%d)
# 4. 重新部署並恢復配置
2
3
4
5
6
7
8
9
10
11
12
# 配置回滾
# 備份目前配置
cp config/kafka-broker.conf config/kafka-broker.conf.bak
cp config/kafka-zk.conf config/kafka-zk.conf.bak
# 恢復配置
cp config/kafka-broker.conf.bak config/kafka-broker.conf
cp config/kafka-zk.conf.bak config/kafka-zk.conf
# 重新啟動服務生效
bin/admq-daemon restart kafka broker
2
3
4
5
6
7
8
9
10
# 安全加固
# 1. 存取控制
# 1.1 防火牆配置
# 僅開放必要連接埠
iptables -A INPUT -p tcp --dport 9092 -s 192.168.1.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 2181 -s 192.168.1.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 12305 -s 192.168.1.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 9092 -j DROP
iptables -A INPUT -p tcp --dport 2181 -j DROP
2
3
4
5
6
# 1.2 停用不必要的協定
# 僅啟用安全協定
listeners=SASL_SSL://0.0.0.0:9092
security.inter.broker.protocol=SASL_SSL
2
3
# 2. 認證配置
# 2.1 SASL/SCRAM 認證
# 啟用 SCRAM 認證
sasl.enabled.mechanisms=SCRAM-SHA-256,SCRAM-SHA-512
sasl.mechanism.inter.broker.protocol=SCRAM-SHA-512
2
3
# 2.2 建立安全使用者
# 建立管理員使用者
kafka-configs.sh --zookeeper localhost:2181 \
--alter --add-config 'SCRAM-SHA-256=[password=admin-password]' \
--entity-type users --entity-name admin
# 建立應用使用者
kafka-configs.sh --zookeeper localhost:2181 \
--alter --add-config 'SCRAM-SHA-256=[password=app-password]' \
--entity-type users --entity-name app-user
2
3
4
5
6
7
8
9
# 3. 授權配置
# 3.1 配置 ACL
# 授予生產者權限
kafka-acls.sh --authorizer-properties zookeeper.connect=localhost:2181 \
--add --allow-principal User:producer \
--operation Write --topic my-topic
# 授予消費者權限
kafka-acls.sh --authorizer-properties zookeeper.connect=localhost:2181 \
--add --allow-principal User:consumer \
--operation Read --topic my-topic \
--group my-consumer-group
# 拒絕非法存取
kafka-acls.sh --authorizer-properties zookeeper.connect=localhost:2181 \
--add --deny-principal User:Anonymous \
--operation All --topic '*'
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 4. SSL/TLS 加密
# 4.1 產生憑證
# 產生 CA 憑證
keytool -keystore kafka.server.keystore.jks \
-alias ca-cert -import -file ca-cert.crt
# 產生 Broker 憑證
keytool -keystore kafka.server.keystore.jks \
-alias broker-cert -validity 365 -genkey -keyalg RSA
# 匯入信任憑證
keytool -keystore kafka.server.truststore.jks \
-alias ca-cert -import -file ca-cert.crt
2
3
4
5
6
7
8
9
10
11
# 4.2 配置 SSL
# SSL 配置
listeners=SSL://0.0.0.0:9093
ssl.keystore.location=/path/to/kafka.server.keystore.jks
ssl.keystore.password=keystore-password
ssl.key.password=key-password
ssl.truststore.location=/path/to/kafka.server.truststore.jks
ssl.truststore.password=truststore-password
ssl.client.auth=required
ssl.enabled.protocols=TLSv1.2,TLSv1.3
2
3
4
5
6
7
8
9
# 5. 稽核日誌
# 啟用稽核日誌
log4j.logger.kafka.authorizer.logger=WARN, authorizerAppender
log4j.appender.authorizerAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.authorizerAppender.File=${log.dir}/kafka-authorizer.log
log4j.appender.authorizerAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.authorizerAppender.layout.ConversionPattern=[%d] %p %m (%c)%n
2
3
4
5
6
# 6. 作業系統安全
# 6.1 檔案權限
# 設定目錄權限
chmod 750 /apusic/admq-kafka
chmod 600 /apusic/admq-kafka/config/*.conf
chmod 600 /apusic/admq-kafka/license.xml
# 限制日誌存取
chmod 640 /apusic/admq-kafka/logs/*.log
2
3
4
5
6
7
# 6.2 停用 root 執行
# 建立專用使用者
useradd -r -s /bin/false admq-kafka
chown -R admq-kafka:admq-kafka /apusic/admq-kafka
# 使用 systemd 限制權限
# 在 admq-kafka.service 中新增:
User=admq-kafka
Group=admq-kafka
NoNewPrivileges=true
ProtectSystem=strict
ProtectHome=true
2
3
4
5
6
7
8
9
10
11
# 技術支援
如遇到無法解決的問題,請聯絡技術支援:
- 電話:400-855-5800
- 信箱:support@apusic.com