1.
目标与准备工作
说明目标:监控新加坡IP的连通性、丢包、延迟与异常并实现告警。准备:一台监控服务器(推荐Ubuntu/Debian/CentOS)、VPS的IP(记为TARGET_IP)、可以发送告警的渠道(邮件、钉钉机器人、阿里云短信)。确保监控服务器可访问TARGET_IP并能对外发出告警(开放SMTP或外网HTTP)。
2.
方案选择概览
两种实用方案:1) 使用阿里云CloudMonitor/站点监控(SiteMonitor),快速可视化并支持阿里云短信/邮件告警;2) 自建Prometheus + blackbox_exporter + Grafana + Alertmanager,灵活可扩展。下面分别给出详细步骤。
3.
方案A:阿里云SiteMonitor快速配置(适合想省时的用户)
登录阿里云控制台 → 运维与管理 → 云监控(CloudMonitor)→ 站点监控/SiteMonitor → 创建监控任务。选择监控类型:Ping/ICMP 或 TCP/HTTP,根据需要填入TARGET_IP与端口、监控频率(1/5分钟)。在告警配置里选择通知策略:新建通知组,填入接收人手机号/邮箱/阿里云短信。保存后云端会开始探测并在控制台和短信/邮件中告警。
4.
SiteMonitor 注意项与验证
验证:创建后等待首次探测(通常1次到几次周期),在“监控结果”查看延迟与丢包。如果SiteMonitor在外网探测节点无法访问TARGET_IP,会显示全部失败,需检查VPS防火墙是否允许ICMP或相关TCP端口。
5.
方案B 环境准备:监控服务器基础安装
在监控服务器执行:apt update && apt install -y wget tar git curl(或yum)。为Prometheus/blackbox/Grafana创建用户和目录:/etc/prometheus /var/lib/prometheus /opt/blackbox /etc/alertmanager。确保防火墙开放Prometheus(9090)、Grafana(3000)、blackbox(9115)端口仅允许管理IP访问。
6.
安装 blackbox_exporter(用于ICMP/TCP/HTTP探测)
下载并解压官方二进制,移动到/usr/local/bin。授权ICMP能力:sudo setcap cap_net_raw+ep /usr/local/bin/blackbox_exporter(否则ICMP探测会失败)。创建systemd服务文件 /etc/systemd/system/blackbox_exporter.service 并启动:sudo systemctl daemon-reload && sudo systemctl enable --now blackbox_exporter。
7.
配置 blackbox_exporter 模块
编辑 /etc/blackbox_exporter/config.yml,配置模块如icmp和tcp:modules: icmp: prober: icmp timeout: 5s; tcp: prober: tcp timeout: 5s。重启blackbox_exporter确认 /metrics 可访问。
8.
安装 Prometheus 并添加黑盒任务
下载Prometheus,解压并配置 /etc/prometheus/prometheus.yml。在 scrape_configs 添加:job_name: 'blackbox' metrics_path: /probe params: module: [icmp] static_configs: - targets: ['TARGET_IP'] relabel_configs 将 __address__ 指向 blackbox_exporter:9115 并保留 __param_target 为目标IP。启动并访问 Prometheus:9090,使用 Targets 页面检查探测是否被抓取。
9.
告警规则(Prometheus)示例
在 /etc/prometheus/rules.yml 写入示例规则:- alert: TargetDown expr: probe_success == 0 for 3m labels: severity: critical annotations: summary: "目标不可达 {{ $labels.instance }}";- alert: HighLatency expr: probe_duration_seconds > 1 for 5m labels: severity: warning annotations: "延迟过高"。把 rules 加入 prometheus.yml 中并重载。
10.
Alertmanager 与告警渠道配置
安装Alertmanager并配置 receivers:email(smtp),webhook(用于钉钉/企业微信机器人)或自定义脚本。示例:receivers: - name: 'dingtalk' webhook_configs: - url: 'https://oapi.dingtalk.com/robot/send?access_token=YOUR_TOKEN' 注意钉钉机器人可能需要签名,需在Alertmanager中实现签名脚本或使用中间转发服务。
11.
Grafana 可视化与仪表盘
安装Grafana并添加Prometheus数据源,导入或自建仪表盘显示 probe_success(1/0)、probe_duration_seconds、历史失败率(increase(probe_success[15m]) 之类)。设置 Grafana 报警或保留Alertmanager为主告警渠道。
12.
检测丢包与抖动(可选进阶)
黑盒探测通过连续失败率判断丢包。若需更精确丢包/抖动,部署smokeping或fping脚本定时探测并把结果以Prometheus textfile格式暴露给node_exporter。实现:写脚本每分钟跑5次ping统计丢包率,生成 /var/lib/node_exporter/textfile_collector/target_ping.prom,然后Prometheus采集。
13.
常见问题与排查步骤
若探测失败:1) 本机能否ping通TARGET_IP?2) VPS是否启用防火墙/安全组阻止ICMP/TCP?3) blackbox_exporter是否有cap_net_raw权限?4) Prometheus scrape是否显示http错误码?按顺序排查并查看日志(systemctl status 和 journalctl -u 服务名)。
14.
最佳实践与运维建议
建议:多节点探测(在不同地区布置探针)以区分是目标机网络问题还是路径问题;告警分级(短期波动不触发严重告警,持续才告警);结合路由追踪(mtr/traceroute)定位跨境链路问题;定期演练告警通道。
15.
问:如果我只想要最简单的告警(不自建监控),应如何操作?
答:使用阿里云SiteMonitor(站点监控)或第三方在线服务(如UptimeRobot)。在SiteMonitor中创建Ping或HTTP任务,填写TARGET_IP与频率,配置通知策略(短信/邮件/控制台),几分钟就能生效,无需自建Prometheus。
16.
问:如何判定是我的VPS网络问题还是公网链路问题?
答:先在本地或其他云节点做mtr/TRACEROUTE到TARGET_IP,比较不同出发点的延迟与丢包。如果只有单一来源异常,可能是源端或中间节点问题;若多个地域都出现高丢包/高延迟,问题更可能在目标VPS或其上行链路,联系阿里云支持并提供mtr/traceroute结果。
17.
问:告警频率与阈值如何设置更合理?
答:推荐策略:Ping/Probe失败持续3次(或3分钟)触发警告,持续15分钟触发严重;延迟阈值根据业务决定(如>200ms为警告,>500ms为严重);对高频短暂抖动使用抑制或抖动窗口避免噪声告警。
来源:如何监控与告警阿里云24香港vps新加坡IP的网络健康状态