📡 接入采集端(Agent)
监控端(server)只负责展示与探测;真正的指标来自装在被监控主机上的采集端(agent)。 没有采集端,控制台就是空的。
最快的方式:控制台一键下发
在控制台 监控 → 添加主机 页面选好系统、架构、主机名后,直接复制页面生成的命令到目标主机执行即可。 命令里已自动带上通信密钥与平台地址。
方式一:一键安装(推荐)
Linux / macOS,用 root 或 sudo 执行:
curl -fsSL "http://<服务器IP>:9999/install.sh?wgToken=<通信密钥MD5>&name=web-01" | sudo bash
Windows,用管理员 PowerShell:
Invoke-Expression (Invoke-WebRequest -UseBasicParsing "http://<服务器IP>:9999/install.ps1?wgToken=<通信密钥MD5>&name=win-01").Content
脚本会自动完成:
- 识别系统与架构
- 向监控端查询当前应下发的版本
- 下载二进制并校验 SHA256
- 拉取平台下发的运行配置(密钥、上报间隔、服务端地址等)
- 注册开机自启:Linux 用 systemd、macOS 用 launchd、Windows 用计划任务
方式二:手工运行采集端
用于调试,或不想注册服务时:
# Linux / macOS
./opsmonitor-agent -server http://10.0.0.5:9999 -token 你的通信密钥 -name web-01
# Windows(管理员 PowerShell)
.\opsmonitor-agent-windows-amd64.exe -server http://10.0.0.5:9999 -token 你的通信密钥 -name win-01
前台跑起来看到「上报成功」即说明打通;确认无误后再交给上面的脚本注册成服务。
采集端参数
| 参数 | 环境变量 | 默认值 | 说明 |
|---|---|---|---|
-server | OPSM_SERVER | http://127.0.0.1:9999 | 服务端地址 |
-token | OPSM_TOKEN | opsmonitor | 与服务端一致的通信密钥 |
-token-hash | — | 空 | 通信密钥的 MD5,与 -token 二选一 |
-name | OPSM_HOSTNAME | 本机主机名 | 平台显示名称 |
-interval | OPSM_INTERVAL | 60 | 上报间隔(秒),平台下发时被覆盖 |
-update | OPSM_UPDATE | auto | auto 自动升级 / check 只检查 / off 关闭 |
-remote-config | OPSM_REMOTE_CONFIG | auto | auto 接受平台下发 / off 只用本地参数 |
关于「平台下发时被覆盖」
带此标记的参数只是本地兜底值。用 -remote-config off 可完全以本地参数为准。
采集端能采集什么
核心指标
CPU 使用率 / 温度、内存、磁盘容量与 IO、SMART、系统负载、MAC、TCP 连接数、网卡流量、硬件信息。
资源监控
进程存活、文件防篡改(SHA256 基线)、端口监听、日志关键字/正则、Nginx 日志统计、Docker 容器、数据库与接口探测。
CPU 温度与 SMART 依赖物理硬件
虚拟机与云主机通常没有温度传感器,云盘也不暴露 SMART,此时这两项显示「未采集」,不会被判定为异常。
常见排障
| 现象 | 处理 |
|---|---|
| 控制台看不到主机 | 检查采集端 -token 与监控端 OPSM_TOKEN 是否一致;-server 地址是否可达;查看采集端日志有无「上报成功」 |
| 主机显示「离线」 | 默认超过 180 秒(OPSM_OFFLINE_SEC)未上报即判离线;确认采集端进程在跑、网络通畅 |
| 一键安装命令里的地址是内网 IP | 监控端 OPSM_PUBLIC_URL 没设对外地址(反代场景必设) |
| 一键安装失败 | 目标主机能否访问监控端 9999;/install.sh 的 wgToken 是否正确(它就是通信密钥的 MD5) |
| 采集端版本不自动升级 | 远端已登记过同版本号的产物时,同号已部署主机不会触发升级 → 改内容必须改版本号 |