前言
服务器运维中,实时监控多台主机的 CPU、内存、磁盘、网络状态,是保障业务稳定运行的核心需求。传统监控程序部署复杂、宕机恢复慢、环境依赖繁琐。本文基于Docker 容器化技术 ,搭建ss-server + ss-agent 分布式监控探针,实现服务端容器化部署、客户端一键接入、秒级故障恢复、数据不丢失,适配 CentOS、银河麒麟等 Linux 系统,可直接复刻实操。
一、监控探针整体架构
本监控系统采用C/S(服务端 - 客户端)架构:
- ss‑server 服务端:部署在中心服务器,提供 Web 可视化界面,接收所有客户端上报的监控数据;
- ss‑agent 客户端:部署在每台被监控服务器,采集本机硬件、系统指标,主动 push 上报至服务端;
- 数据流向:所有 agent 节点主动推送监控数据至 ss‑server,服务端统一汇总展示。
架构图如下:
二、环境准备
1. 环境信息
- 操作系统:CentOS 7.9(银河麒麟 V10 SP3 可兼容部署)
- 探针服务端(ss‑server)IP:
192.168.38.151 - 探针客户端(ss‑agent)IP:192.168.38.146(多台节点可批量部署)
docker监控探针链接: https://pan.baidu.com/s/1UCMIB2TOJKMdqcASUJ-Oig?pwd=2025
2. 前置依赖
服务端需提前安装 Docker,客户端需安装 Python3 运行环境。
三、Docker 部署探针服务端(ss‑server)
1. 解压服务端程序
创建部署目录,解压服务端配置文件:
# 创建数据目录
mkdir /data/ss -p
# 解压程序包
cd /data/day2
tar zxvf ss-server.tar.gz -C /data/ss
2. 启动 Docker 容器部署服务端
使用华为云国内镜像,后台启动容器,挂载配置文件、数据目录,映射端口:
cd /data/ss/ss-server
docker run -itd --name sss --restart unless-stopped \
-v /data/ss/ss-server/config.json:/ServerStatus/server/config.json \
-v /data/ss/ss-server/json:/usr/share/nginx/html/json \
-p 35601:35601 -p 8081:80 \
swr.cn-north-1.myhuaweicloud.com/iivey/ss-server:v1.0
--restart unless‑stopped:容器异常自动重启,保障服务持续运行;- 端口映射:
8081为 Web 可视化端口,35601为数据上报端口; - 数据持久化:挂载配置与数据目录,容器删除重建后监控数据不丢失。
3. Web 可视化界面访问
浏览器访问:
http://服务端IP:8081

默认无监控节点,需通过脚本添加被监控主机。
4. 添加被监控主机节点
通过ss‑server.py脚本实现节点查看、添加、删除、更新:
# 安装Python3依赖
yum install curl wget python3-pip python3 -y
pip3 install requests
# 执行节点管理脚本
cd /data/ss/ss-server
python3 ss-server.py
脚本操作菜单:
=== 监控节点管理工具 ===
>>>请输入操作标号:1.查看, 2.添加, 3.删除, 4.更新, 0.退出
- 选择
2.添加,输入被监控主机 IP; - 脚本自动生成客户端安装命令(包含服务端 IP、随机用户名、密钥);
- 复制生成的一键安装命令,在被监控服务器执行。
示例生成命令:
chmod +x setup-agent.sh && sudo ./setup-agent.sh 192.168.38.151 068390f0bd56428c97633644a7c8c9c8 7Zw3tFRbcnwBNqr
四、部署探针客户端(ss‑agent)
1. 解压客户端程序
将ss‑agent.tar.gz上传至被监控服务器,解压:
tar zxvf ss-agent.tar.gz
cd ss-agent
ls
# 包含:client-linux.py、setup-agent.sh、sss-agent.service
2. 一键部署客户端
执行服务端生成的一键安装脚本,三个参数依次为:服务端 IP、用户名、密钥,需与服务端严格一致:
./setup-agent.sh 192.168.38.151 068390f0bd56428c97633644a7c8c9c8 7Zw3tFRbcnwBNqr
脚本自动:
- 配置客户端上报地址;
- 注册系统守护进程,开机自启;
- 实时采集系统指标,主动推送至服务端。

3. 多节点批量部署
多台服务器监控,仅需重复上传解压→执行一键脚本即可,统一接入服务端 Web 面板。
五、Docker 实现监控探针「永不宕机」核心实战
Docker 的容器隔离、数据持久化、秒级重建特性,可实现监控系统故障后秒级恢复,数据不丢失。
1. 模拟监控系统彻底宕机
进入容器,恶意删除系统核心目录,模拟软件故障:
# 进入容器
docker exec -it 6848260c153a bash
# 删除系统核心目录,模拟彻底故障
rm -rf /usr
# 执行命令报错,容器系统完全损坏
ls: error while loading shared libraries: libpcre2-8.so.0: cannot open shared object file: No such file or directory
此时 Web 监控页面无法访问,服务完全失效。

2. 秒级恢复监控服务
仅需删除损坏容器,重新执行部署命令,几秒即可恢复,历史监控数据完整保留:
# 删除故障容器
docker rm -f 6848260c153a
# 重新创建容器,挂载原有配置与数据
docker run -itd --name sss --restart unless-stopped \
-v /data/ss/ss-server/config.json:/ServerStatus/server/config.json \
-v /data/ss/ss-server/json:/usr/share/nginx/html/json \
-p 35601:35601 -p 8081:80 \
swr.cn-north-1.myhuaweicloud.com/iivey/ss-server:v1.0
访问http://IP:8081,监控页面正常打开,历史监控数据、节点配置全部保留。

六、核心优势总结
- 容器化部署:一键启动,环境隔离,无依赖冲突;
- 永不宕机:异常自动重启,故障秒级重建,数据持久化不丢失;
- 分布式架构:多台服务器批量接入,统一可视化管理;
- 适配国产系统:CentOS、银河麒麟 V10 全兼容,企业运维场景通用;
- 轻量化:客户端资源占用极低,不影响业务服务器性能。