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

    • V2.0.6_for_rabbitmq

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

      • 繁體中文

        • 產品介紹
        • 技術規範
        • 安裝手冊
        • 快速入門
        • 管控台使用者手冊
        • 核心引擎使用者手冊
        • 開發手冊
        • 遷移手冊
        • 維運手冊
        • 效能調優
        • 快速操作指南
    • 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 RabbitMQ(Apusic Distributed Message Queue,簡稱:ADMQ for RabbitMQ)的運維手冊,旨在為中間件運維人員提供ADMQ for RabbitMQ標準化運維指南,涵蓋安裝部署、配置優化、日常運維、故障排除、安全加固等核心場景,確保ADMQ for RabbitMQ產品服務穩定、高效、安全運行。

# 適用對象

本文檔適用於IT資訊化業務負責人、研發經理、軟體專案經理、軟體架構師、運維工程師。

# 相關文檔

了解更多ADMQ for RabbitMQ產品相關的資訊,請參閱以下ADMQ for RabbitMQ產品手冊文件集:

序號 手冊文檔 說明
1 金蝶Apusic分散式訊息佇列for RabbitMQ 快速使用手冊 簡單介紹了如何快速上手使用ADMQ for RabbitMQ。
2 金蝶Apusic分散式訊息佇列for RabbitMQ 安裝手冊 詳細介紹如何在各作業系統上安裝ADMQ for RabbitMQ,以及ADMQ for RabbitMQ服務啟停等操作。
3 金蝶Apusic分散式訊息佇列for RabbitMQ 訊息引擎使用者手冊 詳細介紹 ADMQ for RabbitMQ 訊息引擎相關功能的使用、配置、管理及配套工具的使用方法。
4 金蝶Apusic分散式訊息佇列for RabbitMQ 管控台使用者手冊 詳細介紹ADMQ for RabbitMQ管控台相關功能的使用和操作說明。
5 金蝶Apusic分散式訊息佇列for RabbitMQ 開發手冊 詳細介紹基於各開發語言進行ADMQ for RabbitMQ用戶端應用開發的說明。
6 金蝶Apusic分散式訊息佇列for RabbitMQ 遷移手冊 詳細介紹從RabbitMQ遷移到ADMQ for RabbitMQ的說明。
7 金蝶Apusic分散式訊息佇列for RabbitMQ 運維手冊 詳細介紹ADMQ for RabbitMQ的監控、運維、安全加固等運維說明。
8 金蝶Apusic分散式訊息佇列for RabbitMQ 效能優化手冊 詳細介紹ADMQ for RabbitMQ效能調優的說明。

# 技術支援

ADMQ for RabbitMQ產品提供全面的技術支援服務,您可以透過以下方式獲得技術支援:

  • 網址: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. 出現異常及錯誤的日誌、截圖等詳細資訊

# 日常運維

# 服務管理

# 啟動服務

# 啟動 RabbitMQ 服務
bin/admq-daemon start rabbitmq server

# 啟動應用(bin/admq rabbitmq admin ctl)
bin/admq rabbitmq admin ctl start_app
1
2
3
4
5

# 停止服務

# 停止應用
bin/admq rabbitmq admin ctl stop_app

# 停止 RabbitMQ 服務
bin/admq-daemon stop rabbitmq server
1
2
3
4
5

# 查看服務狀態

# 查看服務狀態
bin/admq rabbitmq admin status

# 查看節點狀態
bin/admq rabbitmq admin ctl status

# 查看叢集狀態
bin/admq rabbitmq admin ctl cluster_status
1
2
3
4
5
6
7
8

# 重新啟動服務

# 重新啟動服務
bin/admq-daemon restart rabbitmq server
1
2

# 日誌管理

# 日誌位置

日誌類型 路徑 說明
服務日誌 ./log/rabbitmq/rabbit@hostname.log RabbitMQ 主日誌
啟動日誌 ./log/rabbitmq/rabbit@hostname-sasl.log SASL 日誌
管控台日誌 ./logs/ 管控台運行日誌

# 監控檢查

# 日常檢查清單

檢查項 檢查命令 正常標準
節點狀態 bin/admq rabbitmq admin ctl status 節點運行正常
叢集狀態 bin/admq rabbitmq admin ctl cluster_status 所有節點在線
記憶體使用 bin/admq rabbitmq admin ctl status 低於 vm_memory_high_watermark
磁碟空間 df -h 高於 disk_free_limit
連線數 bin/admq rabbitmq admin ctl list_connections 正常範圍內
佇列堆積 bin/admq rabbitmq admin ctl list_queues messages 無異常堆積
消費者數 bin/admq rabbitmq admin ctl list_queues consumers 消費者正常在線

# 健康檢查腳本

#!/bin/bash

# 節點健康檢查
bin/admq rabbitmq admin diagnostics health_check

# 記憶體檢查
bin/admq rabbitmq admin diagnostics memory_breakdown

# 告警佇列檢查
bin/admq rabbitmq admin ctl list_queues name messages consumers | awk '$2 > 10000 {print "WARNING: Queue "$1" has "$2" messages"}'

# 連線數檢查
CONN_COUNT=$(bin/admq rabbitmq admin ctl list_connections | wc -l)
if [ $CONN_COUNT -gt 1000 ]; then
    echo "WARNING: Connection count $CONN_COUNT exceeds threshold"
fi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 配置管理

# 配置文件

# rabbitmq.conf

主配置文件,位於 ./config/rabbitmq.conf。

# 網路配置
listeners.tcp.default = 5672
listeners.ssl.default = 5671

# 記憶體配置
vm_memory_high_watermark.relative = 0.4
vm_memory_high_watermark_paging_ratio = 0.5

# 磁碟配置
disk_free_limit.relative = 2.0

# 心跳配置
heartbeat = 60

# 通道配置
channel_max = 2047

# 佇列配置
queue_master_locator = min-masters
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

# 動態配置

# 查看執行時參數
bin/admq rabbitmq admin ctl list_parameters

# 設置執行時參數
bin/admq rabbitmq admin ctl set_parameter federation-upstream my-upstream '{"uri":"amqp://remote-host"}'

# 清除執行時參數
bin/admq rabbitmq admin ctl clear_parameter federation-upstream my-upstream

# 查看策略
bin/admq rabbitmq admin ctl list_policies

# 設置策略
bin/admq rabbitmq admin ctl set_policy ha-all "^" '{"ha-mode":"all"}' --priority 0 --apply-to queues

# 清除策略
bin/admq rabbitmq admin ctl clear_policy ha-all
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# 故障排除

# 常見問題及解決方案

# 服務無法啟動

現象 可能原因 解決方案
連接埠被佔用 5672/15672 連接埠被其他程序佔用 查找並停止佔用程序,或修改監聽連接埠
Erlang Cookie 不一致 叢集節點 Cookie 不匹配 同步 .erlang.cookie 檔案
記憶體不足 系統記憶體不足 增加記憶體或降低 vm_memory_high_watermark
磁碟空間不足 磁碟空間低於 disk_free_limit 清理磁碟空間或調整 disk_free_limit
配置錯誤 rabbitmq.conf 格式錯誤 檢查配置文件語法

# 訊息消費異常

現象 可能原因 解決方案
訊息堆積 消費者處理速度過慢或消費者離線 增加消費者數量或優化消費邏輯
訊息遺失 未啟用持久化或手動確認 啟用訊息持久化和手動確認
重複消費 消費者確認逾時後重新投遞 優化消費者處理邏輯,確保及時確認
消費延遲 網路延遲或消費者效能問題 檢查網路狀況,優化消費者程式碼

# 叢集異常

現象 可能原因 解決方案
節點離線 網路故障或服務異常 檢查網路連通性,重新啟動服務
腦裂 網路分割導致叢集分裂 使用 bin/admq rabbitmq admin ctl forget_cluster_node 清理
鏡像佇列不同步 網路延遲或節點故障 檢查網路狀況,等待自動同步
佇列不可用 佇列所在節點離線 使用鏡像佇列或 Quorum Queue

# 故障排除命令

# 查看節點詳細資訊
bin/admq rabbitmq admin ctl status

# 查看叢集狀態
bin/admq rabbitmq admin ctl cluster_status

# 查看連線詳情
bin/admq rabbitmq admin ctl list_connections peer_host peer_port state channels

# 查看通道詳情
bin/admq rabbitmq admin ctl list_channels connection pid consumer_count messages_unacknowledged

# 查看佇列詳情
bin/admq rabbitmq admin ctl list_queues name pid slave_pids synchronised_slave_pids messages consumers memory

# 查看消費者詳情
bin/admq rabbitmq admin ctl list_consumers queue_name channel_pid ack_required prefetch_count

# 查看記憶體使用詳情
bin/admq rabbitmq admin diagnostics memory_breakdown

# 查看程序資訊
bin/admq rabbitmq admin diagnostics processes

# 查看網路連線
bin/admq rabbitmq admin diagnostics connections

# 收集診斷資訊
bin/admq rabbitmq admin diagnostics gather_auth_context
bin/admq rabbitmq admin diagnostics quorum_status "queue_name"
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

# 備份與還原

# 配置備份

# 匯出配置定義
bin/admq rabbitmq admin ctl export_definitions /backup/definitions.json

# 匯入配置定義
bin/admq rabbitmq admin ctl import_definitions /backup/definitions.json
1
2
3
4
5

# 資料備份

# Mnesia 資料庫備份

# 備份 Mnesia 資料庫
bin/admq rabbitmq admin ctl eval 'rabbit_mnesia:backup("/backup/mnesia.backup").'

# 還原 Mnesia 資料庫
bin/admq rabbitmq admin ctl eval 'rabbit_mnesia:restore("/backup/mnesia.backup").'
1
2
3
4
5

# 安全加固

# 網路安全

# 防火牆配置

# 開放必要連接埠
firewall-cmd --permanent --add-port=5672/tcp    # AMQP
firewall-cmd --permanent --add-port=5671/tcp    # AMQP over SSL
firewall-cmd --permanent --add-port=15672/tcp   # Management HTTP
firewall-cmd --permanent --add-port=15671/tcp   # Management HTTPS
firewall-cmd --permanent --add-port=25672/tcp   # Erlang Distribution
firewall-cmd --reload
1
2
3
4
5
6
7

# SSL/TLS 配置

# rabbitmq.conf
listeners.ssl.default = 5671
ssl_options.cacertfile = /path/to/ca_certificate.pem
ssl_options.certfile = /path/to/server_certificate.pem
ssl_options.keyfile = /path/to/server_key.pem
ssl_options.verify = verify_peer
ssl_options.fail_if_no_peer_cert = false
ssl_options.versions.1 = tlsv1.2
ssl_options.versions.2 = tlsv1.3
1
2
3
4
5
6
7
8
9

# 存取控制

# 修改預設使用者

# 修改 guest 使用者密碼
bin/admq rabbitmq admin ctl change_password guest newpassword

# 刪除預設 guest 使用者(推薦)
bin/admq rabbitmq admin ctl delete_user guest

# 建立新管理員使用者
bin/admq rabbitmq admin ctl add_user admin strongpassword
bin/admq rabbitmq admin ctl set_user_tags admin administrator
bin/admq rabbitmq admin ctl set_permissions -p / admin ".*" ".*" ".*"
1
2
3
4
5
6
7
8
9
10

# 最小權限原則

# 為業務使用者分配最小權限
bin/admq rabbitmq admin ctl add_user app_user apppassword
bin/admq rabbitmq admin ctl set_user_tags app_user none
bin/admq rabbitmq admin ctl set_permissions -p /app_vhost app_user "^app-.*" "^app-.*" "^app-.*"
1
2
3
4

# 效能監控

# 監控指標

指標 說明
rabbitmq_connections 連線數
rabbitmq_channels 通道數
rabbitmq_queues 佇列數
rabbitmq_queue_messages_ready 可消費訊息數
rabbitmq_queue_messages_unacked 未確認訊息數
rabbitmq_queue_messages 總訊息數
rabbitmq_node_mem_used 記憶體使用量
rabbitmq_node_disk_free 磁碟剩餘空間
rabbitmq_node_cpu_user CPU 使用者態使用率

# 運維最佳實踐

  1. 定期檢查:建立日常檢查機制,及時發現潛在問題
  2. 監控告警:配置完善的監控和告警體系
  3. 備份策略:制定定期備份策略,確保資料安全
  4. 文檔記錄:記錄所有運維操作和變更
  5. 容量規劃:定期評估叢集容量,提前擴容
  6. 安全更新:及時更新安全修補程式
  7. 災難演練:定期進行故障還原演練
编辑页面 (opens new window)
#运维手册

← 遷移手冊 效能調優→

  • 浅色模式