Service Watchdog

通过检查 HTTP 端点、TCP 端口、SSL 有效期和 DNS 解析来监控自托管服务,并以简洁、适合聊天的方式报告状态及发送警报。

安装

概览

Service Watchdog 是一款专为自托管基础设施设计的轻量级服务监控工具,旨在帮助用户快速掌握各类服务的运行状态。它通过定期检查 HTTP 端点、TCP 端口连接、SSL 证书有效期以及 DNS 解析情况,生成清晰直观的状态报告。与传统复杂监控系统不同,Service Watchdog 特别注重输出格式的简洁性和可读性,尤其适合集成到聊天环境或消息通知中,让运维信息一目了然。无论是家庭服务器、小型企业部署还是开发测试环境,该工具都能以极低的资源开销提供持续的健康检查能力。 该工具的核心优势在于其灵活的服务定义方式和多样化的输出模式。用户只需通过一个简单的 JSON 配置文件(watchdog.json)即可添加需要监控的目标,支持 HTTP(S)、TCP 和 DNS 三种检测类型,并可自定义超时时间、期望响应码、内容匹配规则等参数。同时,系统内置智能汇总功能,能在一行内展示所有服务的总体健康状态、平均响应时间以及最近检查时间。对于 SSL 证书管理,它还支持设置预警阈值,在证书即将过期前主动提醒,避免因证书失效导致的服务中断。 Service Watchdog 不仅适用于手动查询场景,更可通过 cron 定时任务实现自动化监控。它提供了多种命令行选项以满足不同使用需求:普通模式输出友好格式的状态摘要;–report 参数可查看详细的历史趋势数据与故障记录;–alerts-only 则仅返回存在问题的服务项,便于快速定位异常;而 –ssl-only 专注于检查 SSL 证书状况。此外,–json 输出模式可将结果转为结构化数据,方便与其他系统对接或进一步分析。整个工具完全基于 Shell 脚本编写,依赖常见 Linux 命令如 curl、openssl、nc 等,无需注册账号或接入第三方 API,部署门槛极低。

核心功能特点

  1. 支持 HTTP(S)、TCP 端口和 DNS 解析三种服务检测方式
  2. 可配置期望响应码、超时时间及内容匹配规则
  3. 自动监控 SSL 证书剩余有效期并提前发出警告
  4. 提供简洁的聊天友好格式输出及详细历史趋势报告
  5. 支持仅输出异常服务、仅检查 SSL 或生成 JSON 结构化数据
  6. 可通过 cron 定时执行实现无人值守的持续监控

适用场景

Service Watchdog 特别适合那些拥有自建服务器但缺乏专业运维团队的用户群体。例如,在家中搭建 Home Assistant 智能家居中枢或 Proxmox 虚拟化平台时,用户往往希望随时确认这些关键服务是否正常运行。通过将 Service Watchdog 加入每日定时任务,可以在每次检查后收到一条简明扼要的状态汇总,如“4/4 正常 | 平均响应 81ms”,极大提升了日常维护效率。对于远程工作者或经常出差的技术人员而言,这种轻量级的本地监控方案比依赖云端告警系统更加可靠且隐私友好。 在企业级应用场景中,Service Watchdog 同样表现出色。它可以被集成进内部消息机器人(如企业微信、钉钉或 Slack),当数据库连接失败、邮件服务器宕机或域名解析异常时立即推送告警信息至指定频道。由于具备防骚扰机制(alert_cooldown_min),即使遇到短暂网络波动也不会造成信息轰炸。结合 –alerts-only 参数,管理员只需关注真正需要处理的问题,而非淹没于大量正常状态的重复通知之中。此外,通过定期运行 –ssl-only 脚本,IT 部门可以轻松跟踪所有对外服务所使用的 HTTPS 证书生命周期,确保符合安全合规要求。 对于 DevOps 工程师和 SRE 团队来说,Service Watchdog 提供了一个无需额外基础设施即可开始监控的起点。它不强制使用特定云平台或商业产品,完全适配混合云或多地域部署架构。借助 –json 输出功能,还可以轻松将其与其他日志收集系统(如 ELK Stack)或自动化编排工具(如 Ansible)联动,构建起完整的自托管服务健康保障体系。无论是在 Kubernetes 集群边缘节点、裸金属服务器还是容器化微服务环境中,只要具备基础 Linux 环境,就能无缝部署并开始享受持续监控带来的安心体验。