1.
概览与监控选型
- 目标:监控位于
香港机房的VPS(通用Linux),关注CPU、内存、磁盘、负载、网络延迟与丢包、进程与端口、磁盘I/O、SMART/INODE。
- 工具建议:Prometheus + node_exporter + blackbox_exporter + Alertmanager + Grafana,必要时加上Cloudflare/外部探针或Zabbix/Nagios替代方案。
2.
在VPS上部署node_exporter(步骤)
- 步骤1:下载并安装:sudo useradd -rs /bin/false nodeusr;sudo mkdir /opt/node_exporter && cd /opt && wget https://github.com/prometheus/node_exporter/releases/...tar.gz && tar zxvf ...;
- 步骤2:创建systemd服务/etc/systemd/system/node_exporter.service,内容指向/bin/node_exporter并启动:sudo systemctl daemon-reload && sudo systemctl enable --now node_exporter。
3.
部署Prometheus(集中收集)
- 在监控服务器上安装Prometheus:下载prometheus二进制并解压;编辑prometheus.yml,添加scrape_configs:
- 示例:scrape_configs: - job_name: "hk-vps" static_configs: - targets: ['hk-vps-ip:9100']。重启Prometheus使配置生效。
4.
使用blackbox_exporter做外部可达性检测
- 用途:从监控端对VPS做ICMP/HTTP/TCP探测,监测延迟、丢包和端口可达性。
- 部署:同样使用systemd启动blackbox_exporter,prometheus.yml增加黑盒任务并配置模块(icmp/http/simple)。
5.
关键指标与阈值建议
- CPU:1min load或CPU使用率 > 85% 持续5分钟报警。
- 内存:可用内存率 < 15% 或 swap 使用率 > 10% 报警。
- 磁盘:磁盘使用率 > 85%,inode使用率 > 90%。
- 网络:丢包率 > 2% 或 RTT 增加超过baseline的200%。
6.
Prometheus报警规则示例(yaml)
- 报警文件 alerts.yml 示例:
- alert: HighCPU
expr: 100 - (avg by(instance)(irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 85
for: 5m
labels: {severity: "critical"}
annotations: {summary: "CPU 使用过高", runbook: "检查进程 top/ps, 考虑重启服务或扩容"}。
7.
配置Alertmanager并设置路由
- 在Alertmanager配置中设置接收器(email、Webhook、Slack、Telegram、企业微信、SMS)和路由策略(按severity或instance分组)。
- 示例route:matchers: severity = "critical" -> receiver: "oncall-pager";并配置抑制(inhibit_rules)。
8.
Grafana 可视化与仪表盘建设
- 在Grafana中新建数据源Prometheus,导入node_exporter与blackbox_exporter社区仪表盘。
- 创建面板显示:CPU、内存、磁盘、load、网络吞吐、ICMP RTT、HTTP状态码分布和最近报警列表。
9.
自动化报警与自愈脚本
- 思路:Alertmanager通过Webhook触发自愈API或执行脚本(需认证)。常见动作:重启服务(systemctl restart nginx)、清理缓存、扩容磁盘(如使用云盘API)。
- 实例:编写接收Webhook的Flask/Node服务,验证签名后执行受控脚本并记录日志与回滚策略。
10.
在香港机房需注意的特殊项
- 网络路径:监控到公网的RTT和丢包,使用多点探针(香港、内地、海外)比较。
- 时区与法定规则:确保监控时间同步(ntp/chrony),日志和告警时间以UTC或业务时区一致。
11.
告警策略与抑制规则
- 报警分级:warning -> operator -> oncall。低级别合并或以邮件通知,高级别短信/电话并触发自愈。
- 抑制:当主机被标记为维护时自动抑制报警;配置Alertmanager silence或静态标签维护_mode。
12.
运维检查清单与日常流程
- 每日:检查Prometheus采集率、node_exporter up、报警告警队列。
- 每周:验证黑盒探测 RTT 基线、更新Grafana仪表盘、演练Webhook自愈脚本。
13.
问:在香港机房监控最常见的网络告警是什么?
- 答:常见为网络丢包、跨境链路高延迟和突发带宽峰值。建议通过blackbox_exporter做ICMP/TCP/HTTP探测并结合if_errors和if_octets指标定位接口问题或上游运营商问题。
14.
问:如何避免误报(比如短时波动触发告警)?
- 答:使用for字段延迟触发(如for:5m)、使用rolling average或percentile(如95p),并在Alertmanager配置聚合与抑制规则,结合维护窗口减少误报。
15.
问:报警触达与自动化修复有哪些推荐实践?
- 答:多通道并行触达(Telegram/短信/电话),高优先级用电话并触发自愈Webhook。自愈脚本必须幂等、限速并记录审计,修复失败回滚并升级为人工介入。
来源:运维视角监控有香港机房的vps 关键指标与自动化报警设置