1.1 确定监控目标:列出要监控的指标(CPU、内存、磁盘、IO、网络、进程、应用响应);
1.2 确定报警策略:区分警告与严重两级,定义负责人与通知渠道(邮件、Slack、Webhook、短信);
1.3 准备访问:确保能通过 SSH 管理台湾 VPS 并有 sudo 权限,开放 /metrics 端口或安装采集 Agent。
2.1 在每台 VPS 安装 node_exporter:下载二进制或 apt/yum 安装,示例 sudo systemctl enable --now node_exporter;
2.2 配置 Prometheus 服务端:在监控服务器 prometheus.yml 中加入 scrape_configs,设置 targets 为各 VPS IP:9100;
2.3 验证数据:访问 http://prometheus:9090/targets 与 http://vps_ip:9100/metrics,确认指标可被抓取。
3.1 部署 Grafana:安装并登录,添加 Prometheus 数据源;
3.2 建立仪表盘:创建 CPU、Memory、Disk、Network、IOPS 视图,使用 5m/1m 聚合视图及 95 百分位;
3.3 部署 Alertmanager:配置接收器(邮件/Slack)并在 Prometheus 中配置 alerting -> alertmanagers。
4.1 CPU 报警(严重):avg by (instance) (rate(node_cpu_seconds_total{mode!="idle"}[5m])) > 0.85 持续 5m;
4.2 磁盘报警:node_filesystem_avail_bytes / node_filesystem_size_bytes < 0.15 并且 inode 使用率 > 90%;
4.3 服务可用性:probe_success == 0 或 HTTP 5xx 百分比异常时触发,附上恢复步骤的 runbook 链接。
5.1 抑制噪音:使用 Alertmanager 的 inhibit_rules 抑制低优先级告警在高优先级发生时发送;
5.2 去重与分组:按 instance、服务类型分组通知,避免相同问题重复打扰;
5.3 升级策略:定义告警未处理时的升级时间线(例如 5 分 -> 15 分 -> 电话)。
6.1 数据保留:Prometheus 保留至少 30 天原始数据(长期指标可 downsample 至远端存储);
6.2 计算基线:使用 95th 百分位、峰值与平均值计算日/周/月基线,区分业务高峰时段;
6.3 记录事件:把扩容、流量活动与版本发布标注到 Grafana 面板以便关联分析。
7.1 统计增长率:按历史数据计算月增长率(例如过去 3 个月平均增长 8%);
7.2 预测模型:按最差情景(增长率*1.5)预测 3、6、12 个月后资源需求并留出 20-30% headroom;
7.3 决策矩阵:确定垂直扩容(升级 VPS 规格)或水平扩容(增加副本/负载均衡)并估算成本与停机影响。
8.1 自动化脚本:准备 Terraform/Ansible 模板用于快速新增节点并自动加入监控;
8.2 预演扩容:在低峰做演练,验证流量切换、状态同步与监控告警行为;
8.3 回滚策略:每次扩容附带回滚步骤与检查点(回退 DNS、移除实例、恢复旧告警阈值)。
9.1 定期审查告警:每月清理不再适用的规则并调整阈值;
9.2 磁盘与日志管理:启用 logrotate、监控 inode 与告警磁盘满;
9.3 成本监控:把 VPS 花费纳入容量规划,避免过度预留造成浪费。
答:在每台 VPS 安装 node_exporter 或 telegraf 采集 if_bytes_rate,Prometheus 抓取后用 rate() 计算 5m 峰值;在 Grafana 上用 95th 百分位统计并设置阈值;若接近带宽上限,按流量峰值预测增购带宽或做流量分流。
答:先通过指标判断瓶颈类型:单核 CPU 饱和倾向垂直扩容,IO/磁盘瓶颈考虑换盘或分片,网络负载或状态无共享时优先水平扩容;结合成本与停机复杂度做决策并演练后实施。
答:以历史 95th 百分位为参考,设置警告阈值在该值之上 10%-20%,严重阈值在该值之上 30%;同时增加持续时间(例如持续 5-10 分钟)与复核表达式,配合报警抑制规则减少窗口抖动导致的误报。