开源服务器监控工具Checkmate
简介
什么是 Checkmate ?
Checkmate是一个开源、自托管的服务器和基础设施监控工具。它可以实时跟踪服务器硬件状态、网站正常运行时间、响应时间和事件,并通过精美的可视化界面展示监控数据。Checkmate定期检查服务器或网站是否可访问和运行正常,提供实时告警和监控服务可用性、停机时间和响应时间的报告。
主要特点
- 多种监控类型:支持
Uptime、Docker、Ping、SSL、端口、游戏服务器等多种监控方式 - 页面速度监控:监测网页加载速度性能
- 基础设施监控:通过
Capture agent监控CPU、内存、磁盘、温度等硬件状态 - 选择性磁盘监控:支持按挂载点选择监控特定磁盘
- 事件概览:集中查看所有监控事件和告警
- 状态页面:提供
4款精美主题的公开状态页面 - 多样化通知:支持邮件、
Webhook、Discord、Slack、PagerDuty、Matrix、Microsoft Teams、Telegram、Pushover、Twilio(SMS) 等通知方式 - 计划维护:支持设置维护时间段,期间不会触发告警
- JSON 查询监控:支持自定义
JSON响应验证 - 多语言支持:支持包括中文在内的
17种语言 - 高性能:已通过
1000+活跃监控器压力测试 - 开源免费:基于
AGPL-3.0协议开源,可免费使用和修改
应用场景
- 网站监控:监控网站是否在线、响应时间、
SSL证书有效期 - 服务器监控:监控服务器
CPU、内存、磁盘使用情况(需安装Capture agent) - Docker 容器监控:监控容器运行状态和资源使用
- 服务端口监控:监控特定服务端口是否开放
- API 监控:通过
HTTP和JSON查询监控API接口状态 - 团队状态页面:为团队或客户提供公用的服务状态展示页面

Checkmate 是一个功能强大的自托管监控解决方案,可以替代 UptimeRobot、Pingdom 等商业监控服务,适合个人开发者和中小企业使用。
安装
在群晖上以 Docker 方式安装。
推荐使用 Combined FE/BE Docker 方式(前后端集成在一个镜像中),部署最简单。
docker-compose 安装
采用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件
1 | version: '3.8' |
更新 compose 文件中的几个环境变量。将 localhost 替换为服务器的 IP,老苏的服务器 IP 是 192.168.0.197
1 | - UPTIME_APP_API_BASE_URL=http://192.168.0.197:52345/api/v1 |
| 可变 | 值 | 说明 |
|---|---|---|
UPTIME_APP_API_BASE_URL |
http://localhost:52345/api/v1 |
API 基础地址,如果部署在远程服务器,请修改为实际 IP 或域名 |
UPTIME_APP_CLIENT_HOST |
http://localhost |
客户端访问地址 |
DB_CONNECTION_STRING |
mongodb://mongodb:27017/uptime_db |
MongoDB 连接字符串 |
CLIENT_HOST |
http://localhost |
授权来自指定来源的 API 请求 |
JWT_SECRET |
自定义密钥,可以用 openssl rand -base64 32 来生成 |
用于 JWT 认证,建议使用强随机字符串 |
如果需要监控 Docker 容器,可取消下面的注释
1 | server: |
然后通过 SSH 登录到您的群晖,执行下面的命令:
1 | # 新建文件夹 checkmate 和 子目录 |

运行
在浏览器中访问 http://<群晖IP>:52345 即可进入登录界面。

先切换到中文,然后我们注册管理员用户

注册完成后,会进入到主界面

添加监控
添加监控项,还是以老苏的博客 https://laosu.tech 为例
- 选择监控类型(
HTTP、Ping、Docker、SSL等) - 填写监控目标地址和名称
- 设置检查间隔和告警阈值
- 配置通知方式

创建成功后

还可以配置告警通知方式,方便我们在监控异常时接收报警信息

稍等一下就会有信息了

安装 Capture Agent(可选)
如果需要监控服务器硬件(CPU、内存、磁盘、温度等),需要在被监控服务器上安装 Capture agent
老苏还是在同一台群晖主机上安装的
1 | # 运行 agent 容器 |
API_SECRET可以用openssl rand -base64 32来生成 ;- 如果主机支持,可以挂载
-v /etc/os-release:/etc/os-release:ro,来标识发行版名称/版本等静态信息,群晖DSM6不支持,但是也可以自己建一个os-release文件,内容示例:
1 | NAME="Synology DSM" |
进入 基础设置

URL:填入Capture agent的地址,老苏的是http://192.168.0.197:59232/api/v1/metrics授权密钥:填入Capture agent中API_SECRET设置的值显示名称:主机名称,例如DS3617xs告警阈值:根据需要进行设置

创建成功后,等待初始化完成

等 正常 之后就可以查看了

注意事项
- 数据持久化:
MongoDB数据存储在/data目录,请定期备份 - 端口冲突:默认使用
52345端口,确保该端口未被占用 - 公网部署:如果需要公网访问,建议配置反向代理(如
Nginx Proxy Manager)和HTTPS - 安全建议:
- 修改默认的
JWT_SECRET为强随机字符串 - 公网部署时启用
MongoDB认证 - 使用强密码并定期更换
- 修改默认的
- Docker 监控:需要挂载
/var/run/docker.sock才能监控容器 - 升级更新:重新拉取最新镜像并运行
docker-compose up -d,确保挂载相同的数据目录以保留数据
参考文档
Checkmate: An open source uptime and infrastructure monitoring application
地址:https://github.com/bluewave-labs/CheckmateCheckmate 官方文档 - 安装指南
地址:https://docs.checkmate.so/users-guideCheckmate 在线演示
地址:https://demo.checkmate.so/Capture Agent - 服务器硬件监控代理
地址:https://github.com/bluewave-labs/captureCheckmate 官方 Discord 社区
地址:https://discord.gg/NAb6H3UTjK