1.
准备与环境确认
1.1 登录与权限:使用SSH key登录:ssh -i ~/.ssh/id_rsa root@x.x.x.x,确认有sudo权限;
1.2 系统与时间同步:apt update && apt install -y chrony;chronyc sources 检查NTP;
1.3 资源与快照权限:在VPS控制面板确认API Key或控制台可做快照、重装与重启。
2.
基础安全与监控代理安装
2.1 基本防火墙:ufw allow 22/tcp && ufw allow 9100/tcp(Prometheus node_exporter端口); ufw enable;
2.2 安装node_exporter:wget https://.../node_exporter.tar.gz && tar xzf && ./node_exporter --web.listen-address=":9100" &,设置systemd单元文件 /etc/systemd/system/node_exporter.service 并 systemctl enable --now node_exporter;
2.3 指定监控目标:在Prometheus服务器 prometheus.yml 添加 - targets: ['ip:9100'] 并 reload。
3.
Prometheus + Alertmanager 报警链路搭建
3.1 Prometheus 安装:下载二进制或使用docker运行,配置scrape_interval: 15s,加入node_exporter目标;
3.2 告警规则:在rules文件里写规则,如 node_disk_full: expr: (node_filesystem_avail_bytes{mountpoint="/"} / node_filesystem_size_bytes{mountpoint="/"}) < 0.15 for: 5m;
3.3 Alertmanager配置:alertmanager.yml 配置接收器(email/slack/webhook/Telegram),并在Prometheus中配置alerting.alertmanagers[] 地址。
4.
可视化与日志采集(Grafana + 日志)
4.1 Grafana面板:datasource 添加 Prometheus URL,导入Node Exporter Dashboard ID,配置告警面板;
4.2 日志收集:轻量方案用Filebeat发送到ELK或Loki:apt install filebeat,配置filebeat.inputs 指定 /var/log/*.log,并输出到Elasticsearch或Loki地址;
4.3 日志告警:在Grafana Alert 中创建基于日志量或错误关键字的报警,如5分钟内error count > 10。
5.
自动化恢复与故障演练步骤
5.1 服务自愈:为关键进程写systemd Restart=on-failure,或使用Monit安装monitrc监控并自动重启进程(举例:check process nginx with pidfile /run/nginx.pid start program "/usr/sbin/service nginx start")。
5.2 快照与备份流程:通过云主机API或控制台创建快照脚本(示例:curl -X POST https://api.provider/instances/{id}/snapshots -H "Authorization: Bearer $API"),并设置cron每日执行并保留7份;
5.3 演练步骤:1) 在非生产实例执行服务停止;2) 验证Prometheus触发报警并到达Alertmanager;3) 使用快照恢复新实例并更新DNS记录;4) 验证业务可达。
6.
报警策略与通知链路细化
6.1 分级报警:区分P0(主机宕机、磁盘满)、P1(服务异常)、P2(性能下降),每级定义响应人和SLA;
6.2 告警去抖动:Prometheus规则加 for: 3m,避免抖动误告警;Alertmanager配置group_interval、repeat_interval控制通知频率;
6.3 通知集成:优先Slack/Telegram即时通知并同时发邮件给值班;在Alertmanager receivers中使用webhook调用自动化脚本触发自恢复或创建工单。
7.
常见故障恢复示例演练(问答)
问:如果台湾VPS出现无法SSH连接,我如何快速定位并恢复?
答:先在云控制台查看实例状态与控制台日志,若可访问串口控制台登录检查网络与sshd,查看 /var/log/auth.log 与 iptables -L;若实例系统异常,使用控制台快照恢复到新实例并切换浮动IP或DNS,在恢复过程中通知团队并触发回滚计划。
8.
监控误报与报警优化(问答)
问:如何减少误报并提高报警准确性?
答:结合历史数据设置阈值并使用for延时,增加多维度条件(CPU+I/O同时高),使用rate()等函数判断趋势,设置抑制规则(Alertmanager silence)并定期回顾告警有效性。
9.
故障后复盘与改进(问答)
问:故障恢复后应做哪些复盘与改进措施?
答:写复盘报告包含故障时间线、根因、恢复步骤与耗时、影响范围、自动化缺失点;基于复盘增加监控覆盖、调整报警策略、完善快照与备份频率,并做一次完整的恢复演练验证改进效果。
来源:运维工程师分享台湾vps云服务器管理监控报警与故障恢复的实施细节