Uptime Kuma 对 JSON 的判断与网页内容监控工具推荐

学习笔记作者:admin日期:2025-07-30点击:5

摘要:本文介绍了 Uptime Kuma 如何通过正则表达式验证返回的 JSON 内容,并推荐了多个支持 Docker 部署的网页内容变化监控工具,如 Web Watcher、Changedetection.io 和 Wachtr。

Uptime Kuma 对 JSON 的判断

      是的,Uptime Kuma 支持对返回的 JSON 数据进行判断,可以通过设置 HTTP(S) 监控项的高级选项来实现。

功能说明

      在 Uptime Kuma 中,当你创建或编辑一个 HTTP(S) 类型的监控时,可以配置以下选项:

  • 匹配 HTTP 响应状态码
  • 匹配响应头
  • 匹配响应正文内容(支持正则表达式)

示例:验证 JSON 返回内容

      假设你的 API 接口返回如下 JSON:


{
  "status": "ok",
  "data": {
    "value": 42
  }
}

      你希望监控这个接口,并且只在 "status": "ok" 时才认为是正常状态。

步骤如下

  1. 创建一个新的监控(Add a Monitor)
  2. 类型选择 HTTP(S)
  3. 填写 URL(例如:https://your-api.com/health)
  4. 展开 Advanced Options
  5. 在 Expected Status Code 输入期望的状态码,如 200
  6. 在 Expected Content (Optional) 输入你希望在响应中包含的内容:

"status":\s*"[^"]*ok[^"]*"

      这是一个简单的正则表达式,用于匹配 JSON 中的 "status": "ok" 字段。

注意事项

  • 匹配内容区分大小写(除非你在正则中加上 i 标志)
  • 使用正则时要勾选 Content should match regex 选项
  • 不建议匹配太复杂的 JSON 结构,容易出错。简单字段匹配即可
  • 如果需要更复杂的逻辑(比如解析 JSON 并判断字段值),目前 Uptime Kuma 原生不支持,但你可以用反向代理做预处理后再提供给 Uptime Kuma 检查

高级方案(可选)

      如果你需要更强大的 JSON 处理能力,可以考虑:

  • 使用 Nginx + Lua、Node.js 微服务等中间层先调用 API 并解析 JSON
  • 中间层返回一个简化版的健康检查页面(比如仅输出 OK 或 ERROR)
  • 让 Uptime Kuma 去监控这个中间页

监控网页内容变化的 Docker 工具推荐

      当然有!如果你想找一个监控网页内容变化的 Docker 容器工具,有很多开源项目可以实现这个功能。下面我为你推荐几个常用的、支持 Docker 部署、并且能监控网页内容变化并通知你的工具:

1. Web Watcher(webhooked/webwatcher)

      这是一个轻量级的网页监控工具,可以检测网页内容是否发生变化,并通过 Webhook 发送通知。

功能:

  • 监控网页内容变化
  • 支持设置 CSS 选择器提取特定内容
  • 支持 Webhook(如 Discord、Slack、Telegram)

Docker 命令:


docker run -d \
  --name webwatcher \
  -p 8080:8080 \
  -v $(pwd)/config.yaml:/app/config.yaml \
  webhooked/webwatcher

示例 config.yaml:


sites:
  - name: "Example Site"
    url: "https://example.com"
    interval: 300 # 每5分钟检查一次
    selector: "#content" # 只监控某个元素
    webhook: "https://your-webhook-url.com"

2. Changedetection.io

      这是目前最强大、最专业的网页内容变更监控工具之一,界面友好,支持登录、通知、过滤、CSS 选择器等高级功能。

功能:

  • 网页内容变更检测
  • 支持 CSS 选择器过滤
  • 多种通知方式(邮件、Telegram、Webhook、Discord 等)
  • 数据持久化
  • 支持反向代理认证

Docker 命令:


docker run -d \
  --name changedetection \
  -p 8080:5000 \
  -v "$(pwd)/datastore:/datastore" \
  -e USERNAME=admin \
  -e PASSWORD=admin \
  ghcr.io/dgtlmoon/changedetection.io

特点:

  • 提供可视化界面
  • 支持历史快照对比
  • 支持正则过滤内容

3. Wachtr(wachtr/wachtr)

      另一个简单的网页监控工具,适合不想复杂配置的人使用。

功能:

  • 检测网页变化
  • 支持通知(Email、Pushover、Webhook)

Docker 示例:


docker run -d \
  --name wachtr \
  -p 3000:3000 \
  -v $(pwd)/data:/app/data \
  wachtr/wachtr

自建方案(可选)

      你也可以自己用 Python + Flask + Requests + BeautifulSoup 写一个小服务,然后打包成 Docker 镜像运行。比如:


import requests
from bs4 import BeautifulSoup

url = "https://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
content = soup.select_one("#main-content").get_text()

      再配合定时任务或 CronJob 来做监控。

总结推荐

工具 是否 Docker 支持 是否图形界面 是否支持 CSS 选择器 推荐指数
changedetection.io ⭐⭐⭐⭐⭐
webwatcher ❌(仅配置文件) ⭐⭐⭐⭐
wachtr ⭐⭐⭐

上一篇      下一篇