UptimeRobot 高级监控策略配置

网站和服务的可用性直接影响用户体验和业务收入。UptimeRobot 是全球最受欢迎的网站监控服务之一,免费版即可监控 50 个站点,每 5 分钟检查一次。本文将介绍如何利用 UptimeRobot 的高级功能为搬瓦工 VPS 上的服务构建完整的监控体系。

一、监控类型配置

UptimeRobot 支持多种监控类型,针对不同的服务选择合适的监控方式:

  • HTTP(S) 监控:检查网站是否返回 200 状态码,适合网页和 API 端点。
  • 关键词监控:检查页面中是否包含或不包含特定关键词,可以检测页面被篡改。
  • Ping 监控:通过 ICMP Ping 检查服务器是否在线。
  • 端口监控:检查特定端口(如 SSH 22、MySQL 3306)是否开放。
  • 心跳监控:服务主动向 UptimeRobot 发送心跳信号,适合监控 Cron 任务和后台进程。

二、配置 HTTP 监控

2.1 基础 HTTP 监控

在 UptimeRobot 面板中创建监控时的推荐设置:

  • URL 填写完整的 HTTPS 地址。
  • 监控间隔选择 5 分钟(免费版最短间隔)。
  • 超时时间设为 30 秒。
  • 启用 SSL 证书过期提醒。

2.2 API 端点健康检查

对于 API 服务,建议创建专用的健康检查端点:

# 在你的应用中创建健康检查端点
# 例如 Node.js Express:
# app.get('/health', (req, res) => {
#   res.json({ status: 'ok', timestamp: Date.now() });
# });

# 或在 Nginx 中直接返回 200
location = /health {
    access_log off;
    return 200 'OK';
    add_header Content-Type text/plain;
}

三、心跳监控(Heartbeat Monitoring)

心跳监控适合监控定时任务和后台进程。创建心跳监控后,UptimeRobot 会提供一个 URL,你的服务定期向该 URL 发送请求即可:

# 在 Cron 任务末尾添加心跳请求
0 * * * * /root/scripts/backup.sh && curl -s https://heartbeat.uptimerobot.com/YOUR_HEARTBEAT_ID > /dev/null

# 监控 Docker 容器是否运行
*/5 * * * * docker ps --filter "name=myapp" --filter "status=running" -q | grep -q . && curl -s https://heartbeat.uptimerobot.com/YOUR_ID > /dev/null

四、告警通知配置

UptimeRobot 支持多种通知渠道:

  • 邮件通知:最基础的方式,建议配置多个接收邮箱。
  • Webhook:向指定 URL 发送 POST 请求,可以对接自定义通知系统。
  • Slack/Telegram:即时通讯工具集成,响应更快。

4.1 Webhook 集成示例

# 创建一个简单的 Webhook 接收脚本
# /var/www/webhook/uptimerobot.php
# 接收 UptimeRobot 的告警并转发到企业微信/钉钉等

# 或使用 Nginx + Lua 处理
location /webhook/uptimerobot {
    proxy_pass http://127.0.0.1:9000;
    proxy_set_header Content-Type application/json;
}

五、UptimeRobot API 集成

UptimeRobot 提供了完整的 REST API,可以编程管理监控:

# 获取所有监控的状态
curl -X POST https://api.uptimerobot.com/v2/getMonitors \
  -H "Content-Type: application/json" \
  -d '{"api_key": "YOUR_API_KEY", "format": "json"}'

# 创建新的监控
curl -X POST https://api.uptimerobot.com/v2/newMonitor \
  -H "Content-Type: application/json" \
  -d '{
    "api_key": "YOUR_API_KEY",
    "friendly_name": "My Website",
    "url": "https://example.com",
    "type": 1,
    "interval": 300
  }'

# 获取监控日志
curl -X POST https://api.uptimerobot.com/v2/getMonitors \
  -H "Content-Type: application/json" \
  -d '{"api_key": "YOUR_API_KEY", "logs": 1, "log_types": "1-2"}'

六、自定义状态页面

UptimeRobot 支持创建公开的状态页面,展示所有监控项目的实时状态。在面板中进入"Status Pages"创建页面,选择要展示的监控项并自定义域名。

如果需要更灵活的状态页面,可以搭配 StatpingCachet 使用。

七、自建监控脚本补充

UptimeRobot 的外部监控可以与本地监控脚本配合,实现更全面的监控覆盖:

#!/bin/bash
# /root/scripts/local-monitor.sh
# 本地服务健康检查脚本

check_service() {
    local name=$1 cmd=$2
    if eval $cmd > /dev/null 2>&1; then
        echo "[OK] $name"
    else
        echo "[FAIL] $name"
        # 发送告警
        curl -s "https://api.telegram.org/botTOKEN/sendMessage" \
          -d "chat_id=CHAT_ID&text=告警: $name 服务异常"
    fi
}

check_service "Nginx" "systemctl is-active nginx"
check_service "PHP-FPM" "systemctl is-active php8.3-fpm"
check_service "MySQL" "mysqladmin ping -u root"
check_service "Redis" "redis-cli ping"
check_service "磁盘空间" "test $(df / --output=pcent | tail -1 | tr -dc '0-9') -lt 90"
chmod +x /root/scripts/local-monitor.sh
# 每 5 分钟执行一次
echo "*/5 * * * * /root/scripts/local-monitor.sh >> /var/log/monitor.log 2>&1" | crontab -

总结

UptimeRobot 是免费且强大的外部监控工具,结合本地监控脚本可以构建完整的服务监控体系。HTTP 监控确保网站可达,心跳监控确保后台任务运行,API 集成实现自动化管理。如果需要自托管的监控方案,可以参考 Gatus 健康检查仪表板

选购搬瓦工 VPS 请查看 全部方案,购买时使用优惠码 NODESEEK2026 可享受 6.77% 的折扣,通过 bwh81.net 进入官网购买。

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。