requests、beautifulsoup4、urllib3、python-dateutil 库config/shops.conf)FEISHU_WEBHOOK,或脚本内配置)config/shops.conf[DEFAULT]
# 默认阈值(可被店铺级别覆盖)
response_timeout = 3 # 响应时间阈值(秒)
ssl_warning_days = 14 # SSL 剩余天数警告阈值
check_sample_size = 5 # 分类页抽检商品数量
[shop1]
name = 店铺1
domain = www.example.com
base_url = https://www.example.com
# 站点可用性检查的页面路径(逗号分隔,留空则用默认)
check_paths = /, /c/best-sellers, /cart, /checkout
# 要检查的分类页路径(用于抽检商品页)
category_paths = /c/best-sellers, /c/new-arrivals, /c/sale
# 可选:覆盖全局阈值
response_timeout = 5
ssl_warning_days = 30
[shop2]
name = 店铺2
domain = shop2.example.com
base_url = https://shop2.example.com
check_paths = /, /products, /collections/all
category_paths = /collections/all
> 使用提醒:首次使用前,请先配置 config/shops.conf,填入真实的店铺域名和路径。
脚本按以下顺序执行:
check_sites.py — 检查站点可用性和响应时间check_ssl.py — 检查 SSL 证书过期和状态check_404.py — 爬取分类页 → 抽检商品页 → 检测404和错误内容report.py — 汇总所有结果,判定告警,推送到飞书cd ~/.openclaw/skills/shop-health-check
python3 scripts/report.py
python3 scripts/report.py --shop shop1
python3 scripts/report.py --help
✅ 店铺健康巡检报告 | 2026-03-30 11:00
📦 shop1 (www.example.com)
✅ 站点可用性:全部正常(2/2 检查点)
- / : 200 (1.2s)
- /c/best-sellers : 200 (0.9s)
✅ SSL证书:正常(剩余 89 天)
🔍 商品页抽检:全部正常(5 个商品)
📦 shop2 (shop2.example.com)
✅ 站点可用性:全部正常(3/3 检查点)
✅ SSL证书:正常(剩余 45 天)
🔍 商品页抽检:全部正常(5 个商品)
🎉 所有店铺健康,无异常。
🚨 店铺健康巡检告警 | 2026-03-30 11:00
📦 shop1 (www.example.com)
❌ 站点可用性:
- /checkout : 超时(>3s)
⚠️ SSL证书:剩余 12 天,请尽快续期
❌ 商品页抽检:
- /products/12345 : 404
📦 shop2 (shop2.example.com)
✅ 无异常
⚡ 共 3 个问题需要处理
| 检查项 | 告警条件 |
|---|---|
| -------- | --------- |
| 站点可用性 | HTTP状态码非200,或响应时间超过阈值 |
| SSL证书 | 剩余有效期 < 警告天数(默认14天),或证书无效/自签名 |
| 商品页404 | 被抽检的商品页返回404 |
| 商品页内容 | 页面包含"此商品已下架"、"Page Not Found"、"404"等错误文本 |
openclaw cron add \
--name "shop-health-check-hourly" \
--cron "0 * * * *" \
--session isolated \
--message "运行店铺健康巡检:cd ~/.openclaw/skills/shop-health-check && python3 scripts/report.py" \
--announce \
--channel feishu
pip3 install requests beautifulsoup4 urllib3 python-dateutil
共 1 个版本