📡 接入采集端(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

脚本会自动完成:

  1. 识别系统与架构
  2. 向监控端查询当前应下发的版本
  3. 下载二进制并校验 SHA256
  4. 拉取平台下发的运行配置(密钥、上报间隔、服务端地址等)
  5. 注册开机自启: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

前台跑起来看到「上报成功」即说明打通;确认无误后再交给上面的脚本注册成服务。

采集端参数

参数环境变量默认值说明
-serverOPSM_SERVERhttp://127.0.0.1:9999服务端地址
-tokenOPSM_TOKENopsmonitor与服务端一致的通信密钥
-token-hash—空通信密钥的 MD5,与 -token 二选一
-nameOPSM_HOSTNAME本机主机名平台显示名称
-intervalOPSM_INTERVAL60上报间隔(秒),平台下发时被覆盖
-updateOPSM_UPDATEautoauto 自动升级 / check 只检查 / off 关闭
-remote-configOPSM_REMOTE_CONFIGautoauto 接受平台下发 / 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)
采集端版本不自动升级远端已登记过同版本号的产物时,同号已部署主机不会触发升级 → 改内容必须改版本号