Uptime Kuma 对 JSON 的判断与网页内容监控工具推荐
摘要:本文介绍了 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" 时才认为是正常状态。
步骤如下
- 创建一个新的监控(Add a Monitor)
- 类型选择 HTTP(S)
- 填写 URL(例如:https://your-api.com/health)
- 展开 Advanced Options
- 在 Expected Status Code 输入期望的状态码,如 200
- 在 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 | ✅ | ✅ | ❌ | ⭐⭐⭐ |