Gatus 介绍:Go 语言编写的主动式健康监控状态页
核心定位
Gatus 是一款用 Go 开发的主动式健康状态监控面板(GitHub 10k+ Star),用于填补传统监控工具的盲区:
- 传统监控(如 Prometheus Alertmanager)依赖流量触发告警,若服务无访问则无法发现故障。
- Gatus 采用主动探测逻辑,按预设间隔主动检查端点,在用户感知问题前发出预警。
- 核心公式:
主动健康检查 + 可视化状态页 + 多通道告警 - 支持 HTTP、ICMP、TCP、DNS、gRPC、WebSocket 等十余种协议,单 Docker 命令即可启动。
核心特性
| 特性 | 说明 |
|---|---|
| 灵活条件语法 | 不止校验状态码,可基于响应体(支持 JSONPath)、响应耗时、SSL 证书/域名过期时间等配置规则,支持数组长度、多值匹配、正则等函数,也可用于简易 UAT 测试。 |
| Suite 端到端监控 | 支持串联多步请求,前序请求的返回结果可作为后续请求参数,实现「创建-更新-校验-删除」等完整业务流的可用性监控。 |
| 外部端点推送 | 内网服务无需暴露端口,可通过 Agent 主动推送健康状态,支持心跳检测,超时未上报即触发告警。 |
| 40+ 告警通道 | 覆盖协作工具(Slack/Discord/企业微信)、PagerDuty、短信、邮件、主流云厂商平台,支持自定义 Webhook;可配置「连续失败 N 次才告警」「恢复自动通知」。 |
| SSH 隧道 | 可通过跳板机监控 Kubernetes 集群内或私有云内网服务。 |
| 生态兼容 | 暴露 Prometheus 指标,可对接现有监控体系;生成 SVG 状态徽章,可直接嵌入 GitHub README、文档站点。 |
| 低资源与安全 | Go 实现,生产环境内存占用仅几十 MB,支持配置热加载、断网防误报,支持 Basic Auth/OIDC/mTLS 等安全特性。 |
部署与存储
部署方式
支持 Docker、Kubernetes Helm、Terraform、单二进制直接运行;配置文件支持多 YAML 文件拆分合并,便于多团队协作管理。
存储方案
| 存储类型 | 适用场景 |
|---|---|
| Memory | 快速体验,重启后数据丢失 |
| SQLite | 轻量单机部署、小团队/个人项目 |
| PostgreSQL | 生产环境、高可用需求 |
生产环境推荐 PostgreSQL + 写穿缓存,提升仪表盘加载速度。
同类工具对比
| 特性 | Gatus | Uptime Kuma | Healthchecks.io |
|---|---|---|---|
| 开发语言 | Go | Node.js | Python |
| 协议支持 | 极广(含 gRPC/SSH 等) | 中等 | 较少 |
| 条件规则 | 灵活(支持 JSONPath/函数) | 简单 | 简单 |
| 工作流监控 | 支持 | 不支持 | 不支持 |
| SSH 隧道 | 支持 | 不支持 | 不支持 |
| 资源占用 | 极低 | 中等 | 中等 |
Gatus 更适合需要深度定制、监控复杂业务场景的技术团队。
适用场景
- 个人/小团队:快速搭建轻量监控,SQLite + 常用告警即可满足需求。
- 中大型团队:统一管理数百个微服务的健康状态,对接现有 Prometheus 监控体系。
- SaaS 产品:对外提供用户可见的服务状态页,搭配徽章展示历史可用性。
- DevOps 运维:补位传统监控盲区,实现无流量场景下的故障前置发现。
项目地址
GitHub:https://github.com/TwiN/gatus
版权属于:区块链中文技术社区 / 转载原创者
本文链接:https://www.bcskill.com/index.php/archives/2499.html
相关技术文章仅限于相关区块链底层技术研究,禁止用于非法用途,后果自负!本站严格遵守一切相关法律政策!