Gatus 极致简约的健康状态监控面板,让服务状态一目了然

如果你厌倦了 Uptime Kuma 那种需要点点点的繁琐后台,或者觉得 Prometheus+Grafana 太过笨重,那么 Gatus 绝对会让你眼前一亮。它是一款用 Go 语言编写的健康监测工具,以其极致轻量的资源占用和精美的状态墙界面,成为了当下开发者监控服务的首选。

图片[1]-Gatus 极致简约的健康状态监控面板,让服务状态一目了然-奇蛙小屋

🔍 Gatus 到底是什么?

Gatus(意为 "Gatekeeper")不仅能监测你的网站是否在线,它还能深入业务逻辑:

  1. 断言式监测:你可以定义“状态码必须为 200”且“响应体必须包含 success 字段”才算健康。
  2. 多维度支持:支持 HTTP、ICMP (Ping)、TCP、UDP 甚至是 DNS 查询监测。
  3. 配置即代码 (IaC):所有的监控项都写在一个 config.yaml 文件里,这意味着你可以轻松备份、迁移或通过 Git 进行版本管理。

✨ Gatus 的四大杀手锏

  • 可视化状态墙:采用类似 GitHub 贡献图的方格设计,直观展示历史在线率。
  • 极致轻量:仅需几十 MB 内存即可监控成百上千个服务。
  • 强大的告警生态:原生支持 Discord, Slack, Telegram, Teams, PagerDuty, 邮件等几十种通知渠道。
  • 无依赖运行:单二进制文件,不需要复杂的数据库环境(默认使用 SQLite,也支持 PostgreSQL/MySQL)。

🏗️ 部署指南:两种主流安装方式

方式一:Docker (推荐)

步骤 1:安装 Docker 环境(未安装的话)

# 一键安装 Docker(通用 Linux 脚本)
curl -fsSL https://get.docker.com | sh

# 安装 Docker Compose 插件(新版 Docker)
apt update && apt install -y docker-compose-plugin

# 验证安装(出现版本号即成功)
docker compose version

步骤 2:创建 Gatus 工作目录 + 配置文件

# 1. 创建目录并进入(统一管理配置和数据)
mkdir -p /root/gatus && cd /root/gatus

# 2. 创建 docker-compose.yml 核心配置文件
cat > docker-compose.yml << EOF
version: '3'
services:
  gatus:
    image: twinproduction/gatus:latest  # 官方镜像
    container_name: gatus              # 容器名,方便管理
    restart: always                    # 开机自启/异常重启
    ports:
      - "8080:8080"          # 端口为8080
    volumes:
      - ./config:/config               # 监控规则配置持久化(关键)
      - ./data:/data                   # 监控数据/日志持久化
    environment:
      - TZ=Asia/Shanghai               # 时区配置(避免时间错乱)
EOF

# 3. 创建监控规则配置文件(自定义监控目标)
mkdir -p config && cat > config/config.yaml << EOF
# API 服务配置(固定)
api:
  enabled: true
  port: 8080
  host: 0.0.0.0

# 监控规则(核心,可自定义多个监控目标)
endpoints:
  # 示例1:监控百度可用性
  - name: 百度-可用性监控
    url: https://www.baidu.com
    interval: 30s                      # 每30秒检测一次
    conditions:
      - "[STATUS] == 200"              # 状态码200则正常
    alerts: []                         # 告警配置(后续可加邮箱/钉钉)

  # 示例2:监控自己的网站(替换成你的域名)
  - name: 我的网站-监控
    url: https://你的域名.com
    interval: 60s
    conditions:
      - "[STATUS] == 200"              # 状态码正常
      - "[RESPONSE_TIME] < 1000"       # 响应时间<1秒则正常

  # 示例3:监控API接口(可选)
  - name: 测试API-监控
    url: https://api.example.com/test
    method: GET                        # 请求方式
    interval: 1m                       # 每1分钟检测一次
    conditions:
      - "[STATUS] == 200"
EOF

步骤 3:启动 Gatus 容器

# 后台启动容器(第一次启动会自动拉取镜像)
docker compose up -d

# 查看容器状态(显示 Up 即成功)
docker compose ps

# 查看日志(排错/验证)
docker compose logs -f gatus

步骤4:修改 Gatus 配置文件

# 1. 编辑配置文件 config.yaml
#键盘i进入编辑
vi /root/gatus/config/config.yaml

# 改完按 Esc → :wq 保存退出

# 2. 重启容器生效
docker restart gatus

宝塔用户:商店直接安装

在左侧Docker商店搜索Gatus 项目名称即可安装。如果使用上方命令安装的在这里也能看到找到容器。

修改监控地址打开容器目录找到config-config.yaml 打开并修改 随后容器容器即可

图片[2]-Gatus 极致简约的健康状态监控面板,让服务状态一目了然-奇蛙小屋

方式二:二进制直接运行

适合追求原汁原味 Go 运行效率的用户。

  1. GitHub Releases 下载对应架构的压缩包。
  2. 解压并赋予执行权限。
  3. 确保同目录下存在 config.yaml
  4. 执行命令:./gatus

⚙️ 进阶:配置详解与告警设置

Gatus 的强大之处在于其 config.yaml 的灵活性。

功能配置示例摘要
状态码监测conditions: [STATUS] == 200
延迟监测conditions: [RESPONSE_TIME] < 500 (要求延迟小于 500ms)
告警配置alerting: telegram: token: "xxx" chat-id: "xxx"
数据库持久化storage: type: postgres, path: "postgres://..."

⚖️ 优缺点评价

  • ✅ 优点
    • 颜值极高:方块状的状态历史图非常符合现代审美。
    • 部署极简:一个文件、一个配置,干干净净。
    • 通知全面:几乎市面上所有的推送工具它都支持。
  • ⚠️ 缺点
    • 无后台管理界面:新增监控项必须修改 yaml 文件并重启(或平滑加载),对非技术用户不太友好。

🎯 总结:谁最适合 Gatus?

  • 极简主义博主:想要一个大方、美观的公开状态页挂在博客导航栏。
  • 运维开发者:习惯使用配置文件管理资产,希望监控系统能随 Git 走。
  • 服务器收集癖:手中有多台机器,需要一个极其省内存的监测点。

项目地址:TwiN/gatus:自动化的开发者导向状态页面,支持警报和事件

© 版权声明
THE END
喜欢就支持一下吧
点赞16 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容