Apusic文档中心
首页
  • 应用服务器 AAS
  • 负载均衡器 ALB
  • 分布式消息队列 ADMQ
  • 分布式缓存 AMDC
  • 分布式配置中心 ADCC
  • Java开发工具包软件 AJDK
  • 搜索引擎 ASE
  • 中间件云平台 ACP
  • 统一管理平台 AUMP
  • 云原生中间件管理 ACMP
  • DevOps平台 ADOP
  • 许可授权中心 ACLS
  • Copilot智能问答系统 ACS
  • 监控平台 AMP
  • 智能日志 AILP
  • 应用性能管理 AAPM
  • 智能告警 AAlarm
  • 金蝶Apusic AI 极光
  • 主数据管理 AMDM
  • 数据交换平台 ADXP
  • 企业服务总线 AESB
  • 数据智脑 ADPR
  • 服务治理 ASGP
  • 统一身份管理 AIDM
  • 标准模板
  • Markdown教程 (opens new window)
  • VuePress官方社区 (opens new window)
  • 帮助
贡献文档 (opens new window)
首页
  • 应用服务器 AAS
  • 负载均衡器 ALB
  • 分布式消息队列 ADMQ
  • 分布式缓存 AMDC
  • 分布式配置中心 ADCC
  • Java开发工具包软件 AJDK
  • 搜索引擎 ASE
  • 中间件云平台 ACP
  • 统一管理平台 AUMP
  • 云原生中间件管理 ACMP
  • DevOps平台 ADOP
  • 许可授权中心 ACLS
  • Copilot智能问答系统 ACS
  • 监控平台 AMP
  • 智能日志 AILP
  • 应用性能管理 AAPM
  • 智能告警 AAlarm
  • 金蝶Apusic AI 极光
  • 主数据管理 AMDM
  • 数据交换平台 ADXP
  • 企业服务总线 AESB
  • 数据智脑 ADPR
  • 服务治理 ASGP
  • 统一身份管理 AIDM
  • 标准模板
  • Markdown教程 (opens new window)
  • VuePress官方社区 (opens new window)
  • 帮助
贡献文档 (opens new window)
文档中心
  • 金蝶Apusic应用服务器

  • 金蝶Apusic负载均衡器

  • 金蝶Apusic分布式消息队列

    • 产品白皮书
    • Product Whitepaper
    • 產品白皮書
    • 产品更新说明
    • 统一管控台

    • V2.0.6(最新)

    • V2.0.6_for_kafka

      • 产品简介
      • 功能与技术规格
      • 安装手册
      • 快速使用手册
      • 管控台用户手册
      • 引擎用户手册
      • 开发手册
      • 迁移手册
      • 运维手册
      • 性能优化手册
      • 极简运维手册
      • English

      • 繁體中文

        • 產品介紹
        • 技術規範
        • 安裝手冊
        • 快速入門
        • 管控台使用者手冊
        • 核心引擎使用者手冊
        • 開發手冊
        • 遷移手冊
        • 維運手冊
        • 效能調優
        • 快速操作指南
    • V2.0.6_for_rabbitmq

    • V2.0.6_for_rocketmq

    • V2.0.6_for_MQTT

    • V2.0.5

    • V2.0.4

    • V2.0.3

  • 金蝶Apusic分布式缓存

  • 金蝶Apusic分布式配置中心

  • 金蝶Apusic Java开发工具包软件

  • 金蝶Apusic全文检索

安裝手冊

# 前言

本文檔為金蝶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

您在取得技術支援時,請提供如下資訊:

  1. 您的姓名

  2. 公司資訊與聯絡方式

  3. 作業系統及其版本

  4. 產品版本號

  5. 出現異常及錯誤的日誌、截圖等詳細資訊

ADMQ for Kafka支援透過管控臺部署,請參考《金蝶Apusic分散式訊息佇列V2.0.6_統一管控臺使用者手冊.pdf》,【快速入門】章節。

# 概述

ADMQ for Kafka包含核心引擎、分散式協調、管控臺三個部分,其中核心引擎受license控制,需要在安裝時申請並匯入license。管控臺為可選部件,如需可視化管控時,可單獨安裝管控臺。

# 部署架構圖

# 單機部署架構

┌─────────────────────────────────────────────────────────────┐
│                      單機部署架構                             │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  ┌─────────────────┐        ┌──────────────────┐           │
│  │   用戶端應用     │        │    管控臺         │           │
│  │  (Producer/     │        │  (可選元件)       │           │
│  │   Consumer)     │        │                  │           │
│  └────────┬────────┘        └────────┬─────────┘           │
│           │                          │                     │
│           │ 9092                     │ 12305               │
│           ▼                          ▼                     │
│  ┌──────────────────────────────────────────────┐         │
│  │              單臺物理機/虛擬機                 │         │
│  │                                              │         │
│  │  ┌──────────────┐    ┌──────────────────┐   │         │
│  │  │  Broker      │    │   ADCC for zk    │   │         │
│  │  │ (Standalone) │    │   (內置)          │   │         │
│  │  │              │    │                  │   │         │
│  │  └──────────────┘    └──────────────────┘   │         │
│  │                                              │         │
│  │  ┌──────────────────────────────────────┐   │         │
│  │  │         License 檔案                 │   │         │
│  │  └──────────────────────────────────────┘   │         │
│  └──────────────────────────────────────────────┘         │
│                                                             │
│  適用場景:開發測試環境、小規模驗證                            │
│  特點:簡單快速,無需高可用配置                                │
└─────────────────────────────────────────────────────────────┘
1
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                        │       │
│    └──────────────────────────────────────────────────────────────┘       │
│                                                                              │
│  適用場景:生產環境、高可用業務場景                                            │
│  特點:多副本冗餘、故障自動轉移、水平擴展                                      │
└─────────────────────────────────────────────────────────────────────────────┘
1
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/記憶體/磁碟),避免資源競爭                       │
└─────────────────────────────────────────────────────────────────────────────┘
1
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
1
2
3
4
5
6

# 單機部署

# 1. 建立部署目錄

首先建立應用根目錄並進入:

mkdir -p /apusic
cd /apusic
1
2

# 2. 下載並解壓縮軟體包

可從產品光碟或聯絡銷售取得安裝包:

# 假設安裝包已複製到伺服器
tar zxvf ADMQ-V2.0.6.391-Kafka-20260319.tar.gz
1
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
1

修改 listeners 配置項:

listeners=PLAINTEXT://192.168.1.10:9092
1

# 5. 授權許可

ADMQ for Kafka 產品需要 License 檔案才能正常執行:

  1. 申請授權:聯絡管理員或透過授權平台申請對應版本的 license.xml 檔案
  2. 放置檔案:將取得的 license.xml 檔案上傳至部署目錄根路徑
# 確認檔案位置
ls -l /apusic/admq-kafka/license.xml
1
2

# 6. 啟動服務

ADMQ for Kafka 單機模式依賴 ADCC for zk,需按順序啟動。

# 6.1 啟動 ADCC for zk

bin/admq-daemon start kafka zk
1

# 6.2 啟動 Broker

待 ADCC for zk 啟動成功後(通常等待 3-5 秒),啟動 Kafka 主服務:

bin/admq-daemon start kafka standalone
1

# 7. 服務驗證

# 7.1 檢查行程狀態

ps -ef | grep admq-kafka
1

正常狀態下應能看到兩個主要 Java 行程(一個 ADCC for zk,一個 Broker)。

# 7.2 檢查連接埠監聽

netstat -nltup | grep 9092
1

確認 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
1
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

前置要求:

  1. 確保三台機器時間同步(NTP)
  2. 關閉防火牆或開放連接埠: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
1
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
1
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
1
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
1
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
1
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
1
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
1
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
1
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
1
2

# 6.2 第二步:啟動所有節點的 Broker

依次登入 Node 1, 2, 3 執行:

cd /apusic/admq-kafka
bin/admq-daemon start kafka broker
1
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
1
2
3

預期回傳 imok。

# 7.2 驗證 Broker 叢集中繼資料

kafka/bin/kafka-broker-api-versions.sh --bootstrap-server 192.168.1.10:9092
1

# 7.3 功能測試

  1. 建立 Topic(3 副本):
kafka/bin/kafka-topics.sh --create \
  --topic test-cluster \
  --bootstrap-server 192.168.1.10:9092 \
  --partitions 3 \
  --replication-factor 3
1
2
3
4
5
  1. 檢視 Topic 詳情:
kafka/bin/kafka-topics.sh --describe \
  --topic test-cluster \
  --bootstrap-server 192.168.1.10:9092
1
2
3
  1. 生產與消費測試:
# 生產者
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
1
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
1
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
1
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. 如需恢復,重新解壓縮安裝包並配置
1
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. 重新部署並恢復配置
1
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
1
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
1
2
3
4
5
6

# 1.2 停用不必要的協定

# 僅啟用安全協定
listeners=SASL_SSL://0.0.0.0:9092
security.inter.broker.protocol=SASL_SSL
1
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
1
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
1
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 '*'
1
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
1
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
1
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
1
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
1
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
1
2
3
4
5
6
7
8
9
10
11

# 技術支援

如遇到無法解決的問題,請聯絡技術支援:

  • 電話:400-855-5800
  • 信箱:support@apusic.com
编辑页面 (opens new window)
#安装手册

← 技術規範 快速入門→

  • 浅色模式