核心监控指标应覆盖资源、性能与可用性三大类,至少包含:CPU 使用率与负载、内存与 swap 使用、磁盘空间与 I/O、网络吞吐与丢包、服务端口/进程健康、系统错误(如磁盘错误、内核日志)以及连接数/会话数。
CPU:百分比使用率与 load average(与核心数对比)。内存:真实使用(扣除 cache)与 swap 使用。磁盘:容量使用率与 inode 使用。
磁盘 I/O 延迟(await、iops),网络延时(RTT)、丢包率与带宽利用率,进程响应时间(如 PHP-FPM、数据库查询延时)。
服务端口探测(80/443/22/数据库端口)、HTTP 响应码、主机可达性(ping)、容器或虚拟化层状态。
阈值应兼顾敏感性与误报率,采用分级告警(Warning 与 Critical)并结合持续时间判定。
CPU 使用率:Warning:>=80% 且持续 5 分钟;Critical:>=95% 且持续 1 分钟。Load average:以核心数 n 为基准,Warning:load > n × 0.7 持续 5 分钟,Critical:load > n × 1.5 持续 1 分钟。
内存(剔除 cache):Warning:>=80%;Critical:>=95%。Swap 使用:Warning:>10% 持续 5 分钟;Critical:>30% 立即告警(可能发生内存耗尽)。
磁盘容量:Warning:>=85%;Critical:>=95%。inode:Warning:>=80%;Critical:>=95%。I/O 延迟(avg await):Warning:>50ms;Critical:>200ms。持续 1-5 分钟视业务敏感度而定。
丢包率:Warning:>1% 持续 2 分钟;Critical:>5% 持续 1 分钟。带宽利用:当接近链路容量(例如 >=85%)触发 Warning,>=95% 触发 Critical。RTT 延迟:对台湾 VPS 测试,RTT>150ms 可 Warning,>300ms Critical(跨境或 CDN 场景需放宽)。
台湾 VPS 常涉及国际链路、多个 ISP 与数据中心互联,应采用以下策略以减少误报并提高定位效率。
在多个监测点(大陆/香港/台湾/海外)同时检测同一 VPS,只有当多个点出现异常时提升告警级别,以区分本地链路问题与目标主机问题。
跨境 RTT 与丢包容忍度应放宽,例如 RTT 基线高的地区设置更高的 Warning 阈值。针对 ISP 峰值时段(如夜间批量备份)可使用时间窗规则抑制告警。
云主机常见 CPU steal(被宿主机抢占),若 steal >10% Warning、>25% Critical,需联系提供商调配宿主机或迁移。
为了减少抖动与重复告警,应使用“阈值+持续时间+抑制规则+抖动策略”。
对瞬时波动敏感的指标(如 CPU surge、短瞬 I/O)设置较短持久判断(1 分钟);对容量类指标(磁盘、inode)无需持续时间,立即告警。
在触发一次 Critical 后进入抑制期(例如 30 分钟)避免同类重复告警导致告警疲劳;同时保留恢复通知(resolve)。
对频繁上下波动的指标使用指数回退或阈值平滑(moving average),例如用 3 分钟滑动平均代替瞬时值判断。
推荐使用成熟的监控 + 报警与可视化栈,并搭配多渠道通知。
Prometheus + node_exporter(采集主机指标)+ Grafana(可视化)是常见组合;也可用 Zabbix、Netdata、Datadog 等按需选择。
Prometheus Alertmanager 可实现分组、抑制、路由与重试;Zabbix 内置动作策略也可满足告警分发需求。
建议同时配置:企业微信/钉钉(运维组即时通知)、邮件(记录与审批)、短信(高优先级通知)、Webhook(自动化工单或 PagerDuty)。按告警等级设置不同通道:Warning -> 企业微信/邮件;Critical -> 短信+电话/自动工单。
将报警与自动化修复脚本(如自动重启服务、清理临时文件、扩容告警)结合,并定期演练(故障演练)以验证告警有效性与响应流程。