三步跑通 Checkmate 服务器监控的 Docker 部署
2026/9/16 16:08:14 网站建设 项目流程

三步跑通 Checkmate 服务器监控的 Docker 部署

【免费下载链接】CheckmateCheckmate is an open-source, self-hosted tool designed to track and monitor server hardware, uptime, response times, and incidents in real-time with beautiful visualizations. Don't be shy, join here: https://discord.com/invite/NAb6H3UTjK :)项目地址: https://gitcode.com/GitHub_Trending/checkm/Checkmate

Checkmate 是一款开源自托管的服务器监控系统。它周期性检查网站可用性、响应时间与硬件状态,异常时向你的聊天工具或邮箱推送告警。本文用 Docker 部署把它跑起来,三条命令得到可用的监控面板,再讲清上生产前要补的配置。

📌 为什么值得自己搭一套 Checkmate

  • 监控对象多:HTTP(含 SSL 证书到期)、Ping、端口、DNS、Docker、gRPC、WebSocket、游戏服务器,外加页面速度测试
  • 13 种告警渠道:邮件、Webhook、Discord、Slack、PagerDuty、Teams、Telegram 等,任选组合
  • 占用小:323 台服务器分钟级监控的实测里,Node.js 进程与 MongoDB 内存都在几百 MB
  • 数据全在你自己的 MongoDB,不经过第三方云

⚡ 三条命令启动监控面板

目标机装好 Docker 与 Git 即可。快速启动的 compose 拉取一体化预构建镜像和 MongoDB,无需本地构建:

git clone https://gitcode.com/GitHub_Trending/checkm/Checkmate cd Checkmate/docker JWT_SECRET="$(openssl rand -hex 32)" docker compose up -d

docker/docker-compose.yaml 已内置 MongoDB 连接串和默认CLIENT_HOST,启动后直接打开页面就行。

✅ 验证部署是否健康

运行docker compose ps,对照检查四项:

  • mongodb容器为 healthy,compose 内置健康检查,checkmate 会等它就绪再启动
  • checkmate容器 running,对外映射 52345 端口
  • 浏览器打开http://localhost:52345出现登录页
  • 注册后给自己的服务建一个 HTTP 监控,检查间隔过后状态从 initializing 变为 up,部署即跑通

🧭 三种部署形态怎么选:生产、开发、K8s

形态服务组成宿主机端口适用场景
生产快速启动预构建 checkmate 一体化镜像 + mongo:8.0,两个容器52345正式部署、单机
开发从源码用 docker/Dockerfile 本地构建,checkmate、worker、mongo 三个容器52345、52346、27017调试代码、跑独立工作节点
KubernetesHelm chart,传统前后端分离镜像(锁定 v3.8.1)由 ingress 配置K8s 集群环境
  • 生产快速启动用 docker/docker-compose.yaml,MongoDB 只在 compose 网络内可达,不对外暴露端口
  • 开发从源码用 docker/dev/docker-compose.yaml,需在同目录创建server.env(含DB_CONNECTION_STRINGJWT_SECRETCLIENT_HOST三项),首次docker compose up -d自动构建镜像
  • K8s 的步骤写在 charts/helm/checkmate/INSTALLATION.md,注意 chart 仍是分离镜像,未用一体化新镜像
  • 要反代与 HTTPS,可参考 docs/hosting/checkmate-so/ 的托管配置:nginx 终结 TLS,Checkmate 跑在其后的 52345

🔔 配置监控项、告警通知与硬件采集

新增一个监控项

登录后在监控列表新建监控,选类型、填必填项:

  • HTTP:URL、检查间隔、超时,可加证书到期提醒
  • 端口 / Ping / DNS:目标与期望结果
  • Docker:host 填本地套接字或远程守护进程tcp://host:2376,远程需 CA 证书、客户端证书与密钥(仅 mTLS,2375 不加密不被支持),每次检查还会记录容器状态、CPU 与内存

配置邮件与即时告警

  • 在通知页新建通知,选渠道并填参数:邮件账号、Discord webhook 地址、Slack token 等
  • 再把通知关联到监控,监控转 down 时立即推送
  • 13 种渠道的实现都在 server/src/domain/notifications/providers/ 目录,按目录文件名对照即可

采集硬件指标

上面这些监控只报可用性与响应时间。要看 CPU、内存、磁盘使用率与温度,需要在被监控服务器上装 Capture agent(独立项目,支持 Linux、Windows、Mac、树莓派),由它上报数据。监控哪些磁盘的取舍见 docs/infrastructure-disk-selection.md。

⚠️ 上生产前的提醒与两个新手坑

  • 资源:几百个监控分钟级检查,几百 MB 内存即可,2 核 4G 的机器够跑
  • 网络:监控机要能访问每个被监控目标;监控远程 Docker 守护进程时,目标机只放行 2376 给 Checkmate 主机
  • 备份:数据都在 MongoDB 卷里,生产 compose 用命名卷mongo-data,定期备份它
  • 安全:52345 不要直接暴露公网,前面挂反代加 TLS,并把NODE_ENV设为production启用接口限流

新手最常踩的两个坑:

  1. 漏配JWT_SECRET:生产 compose 把它声明为必填,不传时docker compose up直接报错,报错文案就是解决提示
  2. CLIENT_HOST停在默认http://localhost:52345:之后用域名或局域网地址访问,通知邮件与状态页里的链接全指向 localhost 点不开,启动前改成真实访问地址

更多主题如私有证书颁发机构信任见 docs/custom-ca-trust.md,完整环境变量对照表在 README.md 的安装章节。面板跑通后,下一步去通知页配出你的第一封邮件告警。

【免费下载链接】CheckmateCheckmate is an open-source, self-hosted tool designed to track and monitor server hardware, uptime, response times, and incidents in real-time with beautiful visualizations. Don't be shy, join here: https://discord.com/invite/NAb6H3UTjK :)项目地址: https://gitcode.com/GitHub_Trending/checkm/Checkmate

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询