运维手册
# 前言
本文档为金蝶Apusic分布式缓存(AMDC)V2.0.4的运维手册,旨在为中间件运维人员提供AMDC v2.0.4标准化运维指南,涵盖安装部署、配置优化、日常运维、故障排查、安全加固等核心场景,确保 AMDC产品服务稳定、高效、安全运行。
# 适用对象
本文档适用于AMDC产品运维工程师、IT系统运维工程师、开发工程师、软件架构师及研发经理等人员。
# 相关文档
了解更多AMDC V2.0.4产品相关的信息,请参阅以下AMDC V2.0.4产品手册文档集:
| 序号 | 手册文档 | 说明 |
|---|---|---|
| 1 | 金蝶Apusic分布式缓存 V2.0.4 快速使用手册 | 简单介绍了如何快速上手使用AMDC 。 |
| 2 | 金蝶Apusic分布式缓存 V2.0.4 安装手册 | 详细介绍如何在各操作系统上安装AMDC,以及AMDC服务启停操作,产品的注册过程。 |
| 3 | 金蝶Apusic分布式缓存 V2.0.4 缓存核心用户手册 | 详细介绍 AMDC 相关功能的使用、配置、管理及配套工具的使用方法。 |
| 4 | 金蝶Apusic分布式缓存 V2.0.4 管控台用户手册 | 详细介绍AMDC管控台相关功能的使用和操作说明。 |
| 5 | 金蝶Apusic分布式缓存 V2.0.4 开发手册 | 详细介绍基于各开发语言进行AMDC客户端应用开发的说明。 |
| 6 | 金蝶Apusic分布式缓存 V2.0.4 迁移手册 | 详细介绍AMDC历史版本迁移升级到V2.0.4版本的说明,以及Redis迁移到AMDC的说明。 |
| 7 | 金蝶Apusic分布式缓存 V2.0.4 运维手册 | 详细介绍AMDC的监控、运维、安全加固等运维说明。 |
| 8 | 金蝶Apusic分布式缓存 V2.0.4 性能优化手册 | 详细介绍AMDC性能调优的说明。 |
# 技术支持
AMDC产品提供全面的技术支持服务,您可以通过以下方式获得技术支持:
网址: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 [端口] -a [密码] 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 [pwd] info | 包含 amdc_version:2.0.4 |
| 哨兵 | ./amdc-cli -h [sentinel_ip] -p 26359 -a [pwd] info sentinel | sentinel_masters:1,主从状态正常 |
| 集群 | ./amdc-cli -h [ip] -p 6359 -a [pwd] cluster info | cluster_state:ok,槽位完整分配 |
# 主从复制部署
./amdc-cli -h [master_ip] -p 6359 -a [pwd] info replication
1
- 关键指标:
role:masterconnected_slaves= 预期数量- 所有
slaveX.state=online lag ≤ 5s(>30s 触发告警)
# 内存使用
./amdc-cli -h [IP] -p 6359 -a [密码] info memory
1
- 关注:
used_memory_humanmem_fragmentation_ratio(理想值:1.0–1.5)
# 客户端连接
./amdc-cli -h [IP] -p 6359 -a [密码] info clients
1
- 关注:
connected_clients(>80% ofmaxclients告警)blocked_clients ≈ 0
# 持久化状态
./amdc-cli -h [IP] -p 6359 -a [密码] 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 [pwd] -c 50 -n 10000 --csv
1
显示输出如下:
# 慢查询分析
./amdc-cli -h [IP] -p 6359 -a [密码] slowlog get 10
1
- 建议配置:
slowlog-log-slower-than 10000 # 10ms slowlog-max-len 1281
2
# 大 Key 与热点 Key 检测
./amdc-cli -h [IP] -p 6359 -a [密码] --bigkeys # 大 Value
./amdc-cli -h [IP] -p 6359 -a [密码] --memkeys # 大内存 Key
./amdc-cli -h [IP] -p 6359 -a [密码] --hotkeys # 热点 Key(需 LFU 策略)
1
2
3
2
3
# 实时监控
./amdc-cli --stat # 动态指标,
./amdc-cli monitor > log # 命令审计(慎用,性能开销大)
1
2
2
# 监控平台集成(推荐)
Prometheus + Grafana:通过
redis_exporter采集指标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
# 故障排查与应急处理
# 常见问题诊断
| 问题 | 现象 | 排查步骤 |
|---|---|---|
| 主从同步延迟 | 从节点 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 [密码] --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.4-xxxx-amd64.tar.gz - 编写
Dockerfile:FROM ubuntu:20.04 ADD AMDC-V2.0.4-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.4 . 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.41
2
3
4
5
6
7
8
注意:生产环境务必挂载授权、配置和持久化目录。
# 附录:关键配置优化建议
| 配置项 | 建议值 | 说明 |
|---|---|---|
maxmemory | 物理内存的 70% | 避免 OOM |
maxmemory-policy | allkeys-lru 或 allkeys-lfu | 合理淘汰 |
timeout | 300 | 空闲连接超时(秒) |
tcp-keepalive | 60 | TCP 保活检测(秒) |
slowlog-log-slower-than | 10000 | 慢查询阈值(微秒) |
编辑页面 (opens new window)