AI Agent自动巡检网站,页面异常自动截图告警
网站页面出现白屏、报错或元素错位时,人工往往要等用户反馈才发现。
本文用 Uptime Kuma 配合无头浏览器,搭一套能自动巡检、页面异常自动截图并推送告警的方案,零基础按步骤也能完成。
这套方案适合什么场景
它适合个人博客、企业官网和小型业务系统的日常巡检。
核心思路是:定时访问目标页面,判断状态码和页面关键内容,一旦异常就调用无头浏览器截图,再通过告警渠道把截图和链接发出来。
需要准备一台能跑 Docker 的 Linux 服务器,建议 1 核 2G 起步;
目标站点可公网访问;
一个告警接收渠道,比如企业微信机器人或 Telegram。
部署巡检与告警底座
先在服务器安装 Docker,然后用以下命令启动 Uptime Kuma:
docker run -d --restart=always \
-p 3001:3001 \
-v /opt/uptime-kuma:/app/data \
--name uptime-kuma \
louislam/uptime-kuma:1
启动后浏览器访问 http://服务器IP:3001,首次进入设置管理员账号。
接着点右上角头像进入“设置”,在“通知”里添加企业微信或 Telegram,填好 Webhook 后点“测试”,收到消息说明通道正常。
配置页面巡检与异常截图
在 Uptime Kuma 里点“添加监控项”。
监控类型选 HTTP(s),填写目标 URL,心跳间隔建议 60 秒。
关键一步是在“高级”里开启关键词监控:把页面正常时必然出现的文字填进去,比如站点标题。
这样即使返回 200 但页面白屏,也能判定异常。
截图告警需要无头浏览器配合。
安装 Chromium 和截图工具:
apt update && apt install -y chromium chromium-driver
写一个截图脚本 /opt/shot.sh:
#!/bin/bash
URL="$1"
OUT="/opt/shots/$(date +%s).png"
chromium --headless --no-sandbox --disable-gpu \
--window-size=1440,900 --screenshot="$OUT" "$URL"
echo "$OUT"
给脚本执行权限:chmod +x /opt/shot.sh。
在 Uptime Kuma 监控项的“通知”里,把这套脚本接入告警流程,或先用系统计划任务定时截图验证脚本本身可用。
常见问题与避坑
关键词选得太宽泛:如果填“首页”这类到处都有的词,页面局部出错也测不出来,建议选唯一性强的标题或订单号区域文字。
无头浏览器内存不足:Chromium 较吃内存,1G 内存机器容易崩溃,建议升到 2G 以上,或在启动参数加 --single-process 缓解。
告警风暴:网络抖动会触发误报,可在监控项里设置“重试次数”为 2 到 3 次,连续失败才告警。
截图目录不清理:长期运行会占满磁盘,建议加一条清理任务,只保留最近 7 天:
find /opt/shots -name "*.png" -mtime +7 -delete
验证巡检是否真正生效
手动把目标页面改成一个会返回 500 的地址,观察 Uptime Kuma 是否在设定时间内变红并推送告警。
同时检查 /opt/shots 目录是否生成了对应截图,打开截图确认能看到异常页面内容。
恢复页面后,监控状态应自动变绿,说明整条“巡检—判定—截图—告警”链路正常。
几个容易追问的细节
一定要用 AI Agent 吗? 这里的 Agent 指自动化巡检流程,核心是定时判断加截图告警,不必依赖大模型,稳定优先。
能监控登录后的页面吗? 可以,但需要无头浏览器带 Cookie 或登录态,配置复杂度会上升,建议先跑通公开页面。
告警能带截图链接吗? 可以把截图放到可访问的静态目录,在告警内容里拼接图片 URL,方便直接点开查看。
按以上步骤落地后,网站页面异常自动截图告警这套流程就能稳定运行。
建议先在测试站点验证,再接入正式业务,遇到异常时优先回看避坑部分排查。