運維手冊
# 前言
本文檔為金蝶Apusic分佈式緩存(AMDC)V2.0.6的運維手冊,旨在為中間件運維人員提供AMDC V2.0.6標準化運維指南,涵蓋安裝部署、配置優化、日常運維、故障排查、安全加固等核心場景,確保 AMDC 產品服務穩定、高效、安全運行。
# 適用對象
本文檔適用於 AMDC 產品運維工程師、IT系統運維工程師、開發工程師、軟件架構師及研發經理等人員。
# 相關文檔
了解更多AMDC V2.0.6產品相關的信息,請參閱以下AMDC V2.0.6產品手冊文檔集:
| 序號 | 手冊文檔 | 說明 |
|---|---|---|
| 1 | 金蝶Apusic分佈式緩存 V2.0.6 快速使用手冊 | 簡單介紹了如何快速上手使用 AMDC。 |
| 2 | 金蝶Apusic分佈式緩存 V2.0.6 安裝手冊 | 詳細介紹如何在各操作系統上安裝AMDC,以及AMDC服務啟停操作和產品註冊過程。 |
| 3 | 金蝶Apusic分佈式緩存 V2.0.6 緩存核心用戶手冊 | 詳細介紹 AMDC 相關功能的使用、配置、管理及配套工具的使用方法。 |
| 4 | 金蝶Apusic分佈式緩存 V2.0.6 管控台用戶手冊 | 詳細介紹AMDC管控台相關功能的使用和操作說明。 |
| 5 | 金蝶Apusic分佈式緩存 V2.0.6 開發手冊 | 詳細介紹基於各開發語言進行AMDC客戶端應用開發的說明。 |
| 6 | 金蝶Apusic分佈式緩存 V2.0.6 遷移手冊 | 詳細介紹AMDC歷史版本遷移升級到V2.0.6版本的說明,以及Redis遷移到AMDC的說明。 |
| 7 | 金蝶Apusic分佈式緩存 V2.0.6 運維手冊 | 詳細介紹AMDC的監控、運維、安全加固等運維說明。 |
| 8 | 金蝶Apusic分佈式緩存 V2.0.6 性能優化手冊 | 詳細介紹AMDC性能調優的說明。 |
# 技術支持
AMDC產品提供全面的技術支持服務,您可以通過以下方式獲得技術支持:
網址:https://www.apusic.com
電話:400-855-5800
郵箱:support@apusic.com
金蝶雲社區:https://vip.kingdee.com/?productId=73&productLineId=14&lang=zh-CN
您在取得技術支持時,請提供如下信息:
您的姓名
公司信息與聯繫方式
操作系統及其版本
產品版本號
出現異常及錯誤的日誌、截圖等詳細信息
# 日常運維操作
# 服務啟停管理
# 正常停機
# 命令行方式
./amdc-cli -h [IP] -p 6359 -a [password] shutdown
# 交互式客戶端
127.0.0.1:6359> shutdown
1
2
3
4
5
2
3
4
5
# 強制停機
ps -ef | grep amdc # 查找 PID
kill -9 [PID] # 強制終止(可能導致數據丟失)
1
2
2
# 授權管理
- 熱更新:直接替換
license.lic、license.xml或acls.properties,系統自動加載。 - 優先級順序:
acls.properties(統一授權中心)license.lic(KBC授權)license.xml(本地授權)
# 健康巡檢清單
定期執行以下檢查項,建議納入自動化腳本。
# 基礎連接檢查
| 模式 | 命令 | 預期結果 |
|---|---|---|
| 單機 | ./amdc-cli -h [IP] -p 6359 -a [password] info | 包含 amdc_version:2.0.6 |
| 哨兵 | ./amdc-cli -h [sentinel_ip] -p 26359 -a [password] info sentinel | sentinel_masters:1,主從狀態正常 |
| 集群 | ./amdc-cli -h [IP] -p 6359 -a [password] cluster info | cluster_state:ok,槽位完整分配 |
# 主從複製部署
./amdc-cli -h [master_ip] -p 6359 -a [password] info replication
1
- 關鍵指標:
role:masterconnected_slaves= 預期數量- 所有
slaveX.state=online lag ≤ 5s(>30s 觸發告警)
# 內存使用
./amdc-cli -h [IP] -p 6359 -a [password] info memory
1
- 關注:
used_memory_humanmem_fragmentation_ratio(理想值:1.0–1.5)
# 客戶端連接
./amdc-cli -h [IP] -p 6359 -a [password] info clients
1
- 關注:
connected_clients(>80% ofmaxclients告警)blocked_clients ≈ 0
# 持久化狀態
./amdc-cli -h [IP] -p 6359 -a [password] info persistence
1
- RDB:
rdb_last_bgsave_status=ok - AOF(若啟用):
aof_enabled=1且aof_last_bgrewrite_status=ok
# 性能監控與優化
# 基準測試
./amdc-benchmark -h [IP] -p 6359 -a [password] -c 50 -n 10000 --csv
1
# 慢查詢分析
./amdc-cli -h [IP] -p 6359 -a [password] slowlog get 10
1
- 建議配置:
slowlog-log-slower-than 10000 # 10ms slowlog-max-len 1281
2
# 大 Key 與熱點 Key 檢測
./amdc-cli -h [IP] -p 6359 -a [password] --bigkeys # 大 Value
./amdc-cli -h [IP] -p 6359 -a [password] --memkeys # 大內存 Key
./amdc-cli -h [IP] -p 6359 -a [password] --hotkeys # 熱點 Key(需 LFU 策略)
1
2
3
2
3
# 實時監控
./amdc-cli --stat # 動態指標,
./amdc-cli monitor > log # 命令審計(慎用,性能開銷大)
1
2
2
# 監控平台集成(推薦)
- Prometheus + Grafana:通過
redis_exporter採集指標 - ELK:Elasticsearch, Logstash, Kibana(ELK),日誌集中分析
# prometheus.yml 示例
scrape_configs:
- job_name: 'amdc'
static_configs:
- targets: ['redis-exporter:9121']
metrics_path: /scrape
params:
target: ['redis://amdc-host:6359']
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 故障排查與應急處理
# 常見問題診斷
| 問題 | 現象 | 排查步驟 |
|---|---|---|
| 主從同步延遲 | 從節點 lag 值持續增長 | 1. 檢查主從節點間網絡連通性與帶寬 2. 查看主節點 repl_backlog_size 是否過小3. 檢查從節點磁盤 I/O 性能是否瓶頸 4. 查看 AMDC 日誌中是否有複製相關錯誤(如 "MASTER timeout") |
| 集群狀態異常 | cluster_state:fail | 1. 檢查所有節點間網絡是否互通 2. 確認所有主節點是否在線 3. 檢查槽位分配是否完整( cluster_slots_ok == 16384)4. 查看 cluster info 和日誌中的集群消息統計 |
| 內存不足 | 響應變慢、大量 key 被淘汰 | 1. 檢查 maxmemory 配置是否合理2. 分析內存使用模式( info memory)3. 確認淘汰策略(如 allkeys-lru)是否合適4. 使用 --bigkeys 或 --memkeys 識別大 key |
# 關鍵錯誤日誌關鍵詞
"No valid license file found"→ 授權缺失"MASTER timeout"→ 主從斷連"Node timeout"→ 集群節點失聯
# 應急恢復流程
# 服務不可用
- 確認影響範圍(單點 or 集群)
- 檢查進程:
ps -ef | grep amdc - 查看資源:CPU/內存/磁盤
- 嘗試優雅重啟 → 必要時強制重啟
# 數據文件損壞
- RDB 修復:
./amdc-check-rdb file.rdb - AOF 修復:
./aof-check-aof --fix file.aof - 備份恢復:
- 停止服務
- 替換文件
- 啟動並驗證數據
# 自動化健康檢查
# 健康檢查腳本
可編寫shell腳本,用於檢查 AMDC 服務的健康狀態,如下樣例所示:amdc_health_check.sh
#!/bin/bash
HOST="127.0.0.1"; PORT="6359"; PWD="your_password" # 請替換為實際密碼
./amdc-cli -h $HOST -p $PORT -a $PWD ping >/dev/null || { echo "ERROR"; exit 1; }
echo "內存使用: $(./amdc-cli -h $HOST -p $PORT -a $PWD info memory | grep used_memory_human)"
echo "客戶端連接: $(./amdc-cli -h $HOST -p $PORT -a $PWD info clients | grep connected_clients)"
echo "慢查詢數量: $(./amdc-cli -h $HOST -p $PORT -a $PWD slowlog len)"
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 定時任務
可使用 crontab 實現針對 AMDC 服務的定時健康檢查、日誌輪轉、大 Key 掃描等任務。
# 每小時健康檢查
0 * * * * /opt/amdc/scripts/amdc_health_check.sh
# 每日凌晨大 Key 掃描
0 2 * * * /opt/amdc/bin/amdc-cli -h [IP] -p 6359 -a [password] --bigkeys > /logs/bigkeys_$(date +\%Y\%m\%d).log
1
2
3
4
5
2
3
4
5
# 監控告警閾值建議
| 指標 | 警告閾值 | 嚴重閾值 |
|---|---|---|
| 內存使用率 | 70% | 85% |
| 客戶端連接數 | 80% of maxclients | 90% |
| 複製延遲 (lag) | 5 秒 | 30 秒 |
| 慢查詢量 | 10 條/小時 | 50 條/小時 |
| CPU 使用率 | 70% | 90% |
# 定期維護計劃
- 每日:健康檢查、日誌輪轉
- 每周:壓測、大 Key 分析
- 每月:配置審查、安全審計
- 每季度:災備演練、容量規劃
# 軟件管理
# 配置系統服務實現開機自啟動
創建服務文件:
sudo vim /etc/systemd/system/amdc.service1寫入配置(根據實際路徑調整,包括客戶端連接IP、密碼):
[Unit] Description=AMDC Service After=network.target [Service] Type=simple User=amdc Group=amdc WorkingDirectory=/opt/amdc ExecStart=/opt/amdc/bin/amdc-server /opt/amdc/amdc.yaml ExecStop=/opt/amdc/bin/amdc-cli -h 127.0.0.1 -p 6359 -a your_password shutdown # 請替換為實際密碼 Restart=on-failure RestartSec=10 LimitNOFILE=65536 [Install] WantedBy=multi-user.target1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17啟用服務:
sudo systemctl daemon-reload sudo systemctl enable --now amdc.service1
2
# 構建 Docker 鏡像
- 準備安裝包:
AMDC-V2.0.6-xxxx-amd64.tar.gz - 編寫
Dockerfile:FROM ubuntu:20.04 ADD AMDC-V2.0.6-xxxx-amd64.tar.gz /opt/ WORKDIR /opt/amdc EXPOSE 6359 CMD ["/opt/amdc/bin/amdc-server", "/opt/amdc/amdc.yaml"]1
2
3
4
5 - 構建與運行:
docker build -t apusic/amdc:v2.0.6 . docker run -d \ --name amdc \ -p 6359:6359 \ -v ./license.lic:/opt/amdc/license.lic \ -v ./amdc.yaml:/opt/amdc/amdc.yaml \ -v ./data:/opt/amdc/data \ apusic/amdc:v2.0.61
2
3
4
5
6
7
8
注意:生產環境務必掛載授權、配置和持久化目錄為卷(volume)。
# 附錄:關鍵配置優化建議
| 配置項 | 建議值 | 說明 |
|---|---|---|
maxmemory | 物理內存的 70% | 避免 OOM |
maxmemory-policy | allkeys-lru 或 allkeys-lfu | 合理淘汰 |
timeout | 300 | 空閒連接超時(秒) |
tcp-keepalive | 60 | TCP 保活檢測(秒) |
slowlog-log-slower-than | 10000 | 慢查詢閾值(微秒) |
编辑页面 (opens new window)