自托管网站/API可用性监控,含状态页与告警通知
Golang服务端高性能低耗,React+TypeScript前端类型安全,三种数据库灵活适配基础设施
方案简介
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 原文。
本方案由真实开源项目挖掘整理,实施命令均来自其 README 原文,安装使用请遵循项目开源协议。