自托管网站/API可用性监控,含状态页与告警通知

Golang服务端高性能低耗,React+TypeScript前端类型安全,三种数据库灵活适配基础设施

✓ API-first,可完全自动化集成CI✓ 模块化架构易于扩展 ✕ 目前处于beta阶段✕ 建议先在非生产环境测试

方案简介

Peekaping 是一个现代的自托管(self-hosted)可用性监控方案,使用 Golang 与 React 构建。它可以监控你的网站、API 以及更多目标(数据库、消息队列、Docker 容器等),并提供精美的状态页与告警通知能力。

它定位为 Uptime Kuma 的替代方案,专为专业 DevOps 团队设计,旨在解决传统监控系统在规模化与 DevOps 集成上的关键限制。项目采用 API-first 架构——所有系统功能都可通过 RESTful API 访问,便于与 CI/CD 流程和基础设施即代码(IaC)工具(如 Terraform provider)集成。

适合需要可靠、可定制、可随基础设施一起成长的可用性监控方案的团队。支持 SQLite / PostgreSQL / MongoDB 三种数据库,适配任意基础设施。

亮点与能力

  • 多种监控类型:HTTP/HTTPS、TCP、Ping (ICMP)、DNS、Push (incoming webhook)、Docker container、gRPC、SNMP、PostgreSQL、Microsoft SQL Server、MongoDB、Redis、MySQL/MariaDB、MQTT Broker、RabbitMQ、Kafka Producer
  • 丰富告警渠道:Email (SMTP)、Webhook、Telegram、Slack、Google Chat、Signal、Mattermost、Matrix、Discord、WeCom、WhatsApp (WAHA)、PagerDuty、Opsgenie、Grafana OnCall、NTFY、Gotify、Pushover、SendGrid、Twilio、LINE Messenger、PagerTree、Pushbullet
  • 美观的状态页(Beautiful Status Pages)
  • SVG 状态徽章(SVG Status Badges)
  • 多因素认证(MFA)
  • 暴力破解登录防护
  • SSL 证书过期检查
  • API-first 架构,全部功能可通过 RESTful API 编程访问
  • API key 管理与访问控制

组成与分工

  • Golang:服务端实现语言,编译型高性能语言,保证高速度与最小内存/CPU消耗
  • React + TypeScript:前端构建,静态类型带来高性能与可靠性
  • SQLite / PostgreSQL / MongoDB:三种可选存储后端,适配不同基础设施
  • Docker:官方提供 bundle 镜像一键部署
  • Terraform:社区提供 terraform provider,可编程管理监控资源
  • Uptime Kuma:项目灵感来源与对标对象

前置要求

  • 已安装 Docker 的主机
  • 对外暴露端口 8383
  • 存储选择其一:SQLite(内置,零依赖)或外部 PostgreSQL / MongoDB

实施步骤

1. 使用 Docker 快速启动(内置 SQLite)

bash
docker run -d --restart=always \
-p 8383:8383 \
-e DB_NAME=/app/data/peekaping.db \
-v $(pwd)/.data/sqlite:/app/data \
--name peekaping \
0xfurai/peekaping-bundle-sqlite:latest

该命令启动捆绑 SQLite 的 bundle 镜像,映射 8383 端口,并将数据目录持久化到宿主机 $(pwd)/.data/sqlite

2. 或选择 PostgreSQL / MongoDB

如需外部数据库,可按官方文档分别进行 PostgreSQL 或 MongoDB 部署。

3. 验证与配置

启动后访问 8383 端口的服务界面,添加监控目标并配置告警渠道。

使用与配置要点

  • 添加监控:支持 HTTP/HTTPS、TCP、Ping、DNS、Push 等十余种监控类型
  • 配置告警:选择 SMTP 邮件、Telegram、Slack、Discord、PagerDuty 等 22 种通知渠道
  • 发布状态页:构建 Beautiful Status Pages,并使用 SVG Status Badges 嵌入展示
  • 自动化:通过 RESTful API 或社区 terraform provider 实现监控配置的自动化与 IaC 集成
  • 安全:启用 MFA 多因素认证,系统内置暴力破解登录防护,支持 API key 管理与访问控制
  • 可在 demo.peekaping.com 体验在线演示

注意事项与常见问题

  • Beta 状态:Peekaping 目前处于 beta,仍在积极开发中,部分功能可能变化
  • 官方建议先在非生产环境测试,遇到问题请通过 GitHub Issues 反馈
  • 尚未实现(roadmap):Incidents、从 Uptime Kuma 的迁移工具、多用户/组/权限级别、监控分组、Homepage 小部件、Gatus 风格条件、HTTPs keyword 与 JSON query 等
  • 通知渠道 roadmap:Microsoft Teams、钉钉、阿里云短信等尚未支持
  • 许可证:MIT License

优缺点

  • ✓ API-first,可完全自动化集成CI
  • ✓ 模块化架构易于扩展
  • ✕ 目前处于beta阶段
  • ✕ 建议先在非生产环境测试

出处

本方案挖掘自开源项目 0xfurai/peekaping,方案内容与实施命令均来自其 README 原文。

方案出处
0xfurai/peekaping:Open Source Uptime Kuma Alternative
1188 star Open Source Uptime Kuma Alternative

本方案由真实开源项目挖掘整理,实施命令均来自其 README 原文,安装使用请遵循项目开源协议。