Service Watchdog 综合评估
核心用法
Service Watchdog 是一款面向自托管基础设施的轻量级监控工具,采用纯 Bash 脚本实现,通过 JSON 配置文件定义监控目标。支持四种核心检查类型:HTTP/HTTPS 端点健康检查(含状态码验证、响应时间追踪、内容匹配)、TCP 端口连通性检测、SSL 证书有效期监控(支持自定义预警阈值)、以及 DNS 解析验证(可检测 DNS 劫持)。执行后输出 Emoji 化的可视化状态报告,支持 --report 查看趋势数据、--alerts-only 仅输出异常、--ssl-only 证书专项检测、--json 结构化输出等多种模式,便于集成到 Cron 定时任务实现自动化监控。
显著优点
1. 零依赖成本:仅需系统预装的 curl/openssl/nc/dig/jq 等标准工具,无需注册外部服务或 API 密钥,完全离线可用
2. 配置简洁直观:单一 JSON 文件管理全部监控项,字段语义清晰,支持全局默认值与单服务覆盖
3. 输出友好:Emoji 状态标识 + 响应时间量化,一眼掌握全局健康度;历史数据保留支持趋势分析
4. 告警抑制机制:内置冷却期(cooldown)和严重级别配置,有效避免告警疲劳
5. 场景覆盖全面:从家庭智能家居(Home Assistant)到虚拟化平台(Proxmox)、数据库(PostgreSQL)到域名解析,覆盖典型自托管场景
潜在缺点与局限性
1. 协议深度有限:仅支持基础 TCP 握手检测,无法验证数据库认证或应用层协议完整性(如 PostgreSQL 实际可登录)
2. 无分布式探针:单机执行,无法检测区域性网络故障或服务在特定地区的可用性
3. 存储本地依赖:历史数据以 CSV 形式存储在本地,无内置数据备份或远程同步机制
4. 无内置通知通道:告警需依赖外部 Cron 集成或脚本二次开发,原生不支持邮件/短信/Webhook
5. Bash 性能边界:大规模监控(数百端点)时串行执行效率受限,无原生并发检查能力
适合人群
- 家庭实验室(Homelab)爱好者,需监控 NAS/路由器/智能家居等本地服务
- 中小团队自托管基础设施的兼职运维人员
- 对 SaaS 监控方案有数据隐私顾虑、偏好完全自主可控的用户
- 已有 OpenClaw 或类似 Agent 框架、希望快速扩展监控能力的开发者
常规风险
- 误报风险:本地网络波动可能导致瞬时检测失败,需合理设置超时阈值和重试逻辑
- 配置泄露:watchdog.json 可能包含内部域名/IP/端口信息,需确保文件权限控制
- SSL 证书链验证:部分自签名或内部 CA 证书可能触发误报,需确认 openssl 验证策略
- 日志膨胀:高频 Cron 执行(如每分钟)配合历史保留策略,可能产生意外磁盘占用
总结
Service Watchdog 是「够用且干净」的自托管监控方案,在功能完整性与维护成本间取得良好平衡,尤其适合 10-50 个端点规模的轻量场景。对于需要多地域探针、复杂告警路由、或 SLA 报告的企业级需求,建议作为补充层而非替代方案。