尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

如何快速搭建 Checkmate 服务器监控:Docker 两步部署与告警接入指南

如何快速搭建 Checkmate 服务器监控:Docker 两步部署与告警接入指南 如何快速搭建 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. Dont be shy, join here: https://discord.com/invite/NAb6H3UTjK :)项目地址: https://gitcode.com/GitHub_Trending/checkm/Checkmate凌晨两点线上服务挂了最先知道的却是客户而不是你——这就是缺监控的代价。Checkmate 服务器监控系统是一个自托管方案由它替你盯着网站、端口、容器和硬件状态检查失败自动开事件单恢复自动关单同时通过邮件、Discord 等渠道推送通知。本文用 Docker Compose 完成一次接近生产可用的部署随后讲清告警接入、私有 CA 的坑和资源占用每一步都能当场验证。 部署前 2 分钟检查清单开工前确认三件事即可目标机器已安装 Docker 和 Docker Compose且docker compose version能正常输出这台机器能访问所有被监控目标防火墙、网络分区先想清楚52345 端口空闲这是应用的默认端口仓库本身是一个 monorepoclient/是 React 前端server/是 Node.js 后端docker/下放着各套环境的编排文件。你不需要手动构建任何镜像。 两条命令安装 Checkmate仓库自带 docker/docker-compose.yaml拉起的是一体化应用镜像前端、API、任务调度器打包在一起加一个带健康检查的 MongoDB 8.0数据落在命名卷mongo-data里。git clone https://gitcode.com/GitHub_Trending/checkm/Checkmate cd Checkmate/docker JWT_SECRET$(openssl rand -hex 32) docker compose up -d启动后做两个验证浏览器打开http://localhost:52345应看到登录/注册页应用容器自带健康探针52346 端口暴露/livez和/readyz返回 200 即代表服务就绪如果用户通过局域网 IP 或域名访问把CLIENT_HOST设为对外地址用于 CORS 以及邮件、通知里的链接。核心环境变量就这么多其余都有默认值变量是否必填作用JWT_SECRET是登录令牌签名密钥用openssl rand -hex 32生成DB_CONNECTION_STRING是MongoDB 连接串编排文件已写好默认值CLIENT_HOST对外访问时填用户访问地址影响 CORS 和通知里的链接ENCRYPTION_KEY用 Docker TLS 监控才需要加密保存在库中的客户端私钥NODE_ENV建议填production生产模式会启用 API 限流PORT/HEALTH_PORT否默认 52345 / 52346QUEUE_MODE否primary默认或worker用于把检查任务拆到独立节点 接入第一批监控对象登录后台后按类型建监控项。每种类型对应独立的工作队列一类检查出问题不会拖垮其他类网站可用性HTTP 检查附带 SSL 证书到期时间追踪端口 / Ping / DNSTCP 探活、ICMP、解析检查Docker 容器连接本地 socket 或远端 daemon每次检查记录每个容器的状态、健康、CPU/内存和重启次数开启日志收集后每个容器保留最近 200 行日志存 7 天gRPC / WebSocket / 游戏服务器 / 页面速度对应页面里直接配置CPU、内存、磁盘、温度在目标机器上装 Capture 代理Go 编写Linux/Windows/Mac/树莓派均可运行Checkmate 负责展示和告警判定逻辑值得了解每次检查结果会和监控项上配置的状态变更阈值对比状态翻转例如 up → down时自动开一个事件单恢复时自动关闭——事件页因此成为你看最近出了什么事的第一入口。计划内变更之前先在界面里建一个维护窗口避免误报刷屏。对外状态页提供 5 套主题可以直接分享给不关心内部细节的人。 告警通知怎么接状态翻转触发通知渠道在监控项或全局级别配置仓库内置 14 种IM/协作Discord、Slack、Telegram、Matrix、Rocket.Chat、Microsoft Teams邮件与短信EmailMJML 模板见server/src/templates/、TwilioSMS平台与通用Webhook、PagerDuty、SignalGrid、Pushover、ntfy建议起步只接一个渠道比如 Webhook 或 Discord跑通后再补其他渠道避免配置项一上来就铺满。⚠️ 三个高频部署坑内部 HTTPS 端点显示 DOWN。服务其实是通的只是证书来自私有 CA如 Smallstep。解法是把 CA 证书挂进容器并设置NODE_EXTRA_CA_CERTS完整步骤见 docs/custom-ca-trust.md。远端 Docker 监控要求双向 TLS。只支持tcp://host:2376形式的 mTLS daemon明文 2375 端口不受支持TLS 监控还必须先在服务端设置ENCRYPTION_KEY否则保存监控会直接报错。忘改NODE_ENV。默认是development会关闭 API 限流且日志停在 debug 级别真实部署务必设为production。 生产加固与横向扩展HTTPS在 52345 前面挂 nginx、Caddy 或 Traefik 做 TLS 终结即可应用本身不内置证书管理扩展检查负载QUEUE_MODEworker起专用工作节点主节点设QUEUE_PRIMARY_PROCESSESfalse检查任务与 API 彻底分离Kubernetes有现成的 Helm chart注意它仍使用旧版三件套镜像client/backend/mongo钉在 v3.8.1见 charts/helm/checkmate/INSTALLATION.md开发调试本地全栈可用 docker/dev/docker-compose.yaml 拉起私有 CA 的示例编排在同目录 备份与资源占用所有数据都在mongo-data卷里备份/data/db目录并定期验证可恢复配置文件同样纳入版本管理官方压测结论单台 Node 实例每分钟检查 323 台服务器内存占用很小同规模下 MongoDB 约 398MB1000 活跃监控项下未出现明显瓶颈想先看看效果仓库 README 提供了在线演示账号本地 API 的 Swagger 文档在/api-docs路径下部署完成后做三件事就进入正轨了建第一个 HTTP 监控、接一条通知渠道、把 mongo-data 纳入备份。之后再按需要挂 Capture 代理和状态页整个监控系统就闭环了。【免费下载链接】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. Dont be shy, join here: https://discord.com/invite/NAb6H3UTjK :)项目地址: https://gitcode.com/GitHub_Trending/checkm/Checkmate创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表