【Docker项目实战】使用Docker部署Checkmate监控应用程序

举报
江湖有缘 发表于 2025/07/27 11:11:17 2025/07/27
【摘要】 【Docker项目实战】使用Docker部署Checkmate监控应用程序

一、Checkmate介绍

1.1 Checkmate简介

Checkmate 是一个开源的、自托管的服务器监控工具,能够实时跟踪和监控网站、基础设施、Docker 容器、端口等多种服务指标,并提供直观的可视化界面和多种通知方式。

1.2 Checkmate主要特点

  1. 完全开源,支持自托管:可在您自己的服务器或设备(如 Raspberry Pi 4/5)上部署,保障数据安全与自主控制。
  2. 网站监控:持续监测网站可用性,确保服务稳定运行。
  3. 页面速度监控:追踪网页加载时间,帮助优化用户体验。
  4. 基础设施监控(内存、磁盘使用、CPU性能等):全面掌握服务器硬件资源使用情况(需安装捕获代理)。
  5. Docker 监控:实时监控容器状态与性能,便于管理微服务架构。
  6. Ping 监控:检测主机或服务是否在线,快速发现网络问题。
  7. SSL 监控:提醒 SSL 证书即将过期,保障网站安全。
  8. 端口监控:检查关键端口是否开放,防止服务中断。
  9. 一目了然的事件记录:清晰展示历史事件,方便排查故障。
  10. 状态页面:对外展示服务状态,提升透明度与用户信任。
  11. 多渠道通知支持:支持电子邮件、Webhooks、Discord、Telegram、Slack 等多种通知方式,及时告警。
  12. 计划维护功能:提前安排维护窗口,避免误报并通知相关人员。
  13. JSON 查询监控:可监控 API 响应内容,验证特定字段是否符合预期。
  14. 多语言支持:支持多种语言界面,满足全球用户需求。

二、本次实践规划

2.1 本地环境规划

本次实践为个人测试环境,操作系统版本为Ubuntu 22.04.1。

hostname IP地址 操作系统版本 Docker版本 部署项目
jeven01 192.168.3.88 Ubuntu 22.04.1 LTS 27.1.1 Checkmate

2.2 本次实践介绍

1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Docker环境下部署Checkmate监控应用程序。

三、本地环境检查

3.1 检查Docker服务状态

检查Docker服务是否正常运行,确保Docker正常运行。

root@jeven01:~#  systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2025-07-02 14:16:57 UTC; 21h ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 878 (dockerd)
      Tasks: 28
     Memory: 1.2G
        CPU: 1min 50.356s
     CGroup: /system.slice/docker.service
             ├─  878 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

3.2 检查Docker版本

检查Docker版本

root@jeven01:~# docker -v
Docker version 27.1.1, build 6312585

3.3 检查docker compose 版本

检查Docker compose版本,确保2.0以上版本。

root@jeven01:~# docker compose version
Docker Compose version v2.19.1

四、拉取Checkmate镜像

拉取Checkmate容器镜像,如下所示:

docker pull ghcr.io/bluewave-labs/checkmate-backend-mono:latest
docker pull ghcr.io/bluewave-labs/checkmate-mongo:latest

在这里插入图片描述

五、部署Checkmate服务

5.1 创建部署目录

  • 创建部署目录
mkdir -p /data/checkmate   &&  cd /data/checkmate 

5.2 编辑部署文件

在部署目录下,创建docker-compose.yaml文件,需要注意将部署文件中的IP地址替换为自己服务器的IP地址。

vim docker-compose.yaml
services:
  server:
    image: ghcr.io/bluewave-labs/checkmate-backend-mono:latest
    restart: always
    ports:
      - "52345:52345"
    environment:
      - UPTIME_APP_API_BASE_URL=http://192.168.3.88:52345/api/v1
      - UPTIME_APP_CLIENT_HOST=http://192.168.3.88
      - DB_CONNECTION_STRING=mongodb://mongodb:27017/uptime_db?replicaSet=rs0
      - REDIS_URL=redis://redis:6379
      - CLIENT_HOST=http://192.168.3.88
      - JWT_SECRET=EcuqPmIbxHXGCAiJH/uuMzcSFNyJehi3hGtr/l70y6Y=
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    depends_on:
      - mongodb
  mongodb:
    image: ghcr.io/bluewave-labs/checkmate-mongo:latest
    restart: always
    command: ["mongod", "--quiet", "--replSet", "rs0", "--bind_ip_all"]
    volumes:
      - ./mongo/data:/data/db
    healthcheck:
      test: echo "try { rs.status() } catch (err) { rs.initiate({_id:'rs0',members:[{_id:0,host:'mongodb:27017'}]}) }" | mongosh --port 27017 --quiet
      interval: 5s
      timeout: 30s
      start_period: 0s
      start_interval: 1s
      retries: 30


5.3 创建Checkmate容器

执行以下命令,创建Checkmate容器。

docker compose up -d

在这里插入图片描述

5.4 查看Checkmate容器状态

检查Checkmate容器运行状态,确保Checkmate容器正常启动。

root@jeven01:/data/checkmate# docker compose ps
NAME                  IMAGE                                                 COMMAND                  SERVICE   CREATED              STATUS          PORTS
checkmate-mongodb-1   ghcr.io/bluewave-labs/checkmate-mongo:latest          "docker-entrypoint.s…"   mongodb   11 hours ago         Up 2 minutes (healthy)   27017/tcp
checkmate-server-1    ghcr.io/bluewave-labs/checkmate-backend-mono:latest   "docker-entrypoint.s…"   server    About a minute ago   Up About a minute        0.0.0.0:52345->52345/tcp, [::]:52345->52345/tcp

5.5 查看Checkmate容器日志

检查Checkmate容器运行日志,确保Checkmate服务正常运行。

docker logs checkmate-server-1

在这里插入图片描述

六、访问Checkmate服务

6.1 访问初始页

浏览器地址: http://<个人的服务器IP>:52345,访问Checkmate的初始页。如果无法访问,请确保宿主机的防火墙已关闭或已放行相关端口,对于云服务器还需配置相应的安全组规则。

在这里插入图片描述

6.2 注册账号

点击注册账号选项,自定义填写账号密码信息,填写完毕后,确认注册。

在这里插入图片描述

在这里插入图片描述

七、Checkmate基本使用

7.1 添加网站监控

点击“L et’s create your first uptime monitor”选项,进入监控项配置页。

在这里插入图片描述

我们选择“网站监控”选项,例如填写百度网站的网址(如 https://www.baidu.com)及简要描述。

在这里插入图片描述

选择检查频率为1分钟,确认创建该监控项。

在这里插入图片描述

7.2 添加容器监控

查询容器完整ID:使用以下命令,查询需要监控容器的完整ID。

root@jeven01:/data/checkmate# docker container inspect arcane  |grep ID
        "ExecIDs": null,
            "ContainerIDFile": "",
                "ID": "7f896f1c56219535d54a01d33edbd27e6049dcd03162b29704bd939a22f27ce0",
                "PUID=1000",
                "PGID=1000",
                "DOCKER_GID=998"
            "SandboxID": "66a7e5e9767b4624036d993003b5c67fc6d14be79a1720d640e628f63f9def50",
            "EndpointID": "",
                    "NetworkID": "ff11bdd44d240d4f45010e7d91ce58cc9f1e8409d7f96a5651fc602ff70cbe32",
                    "EndpointID": "7a1ceab6e4c7ba32f4a2b2c70df66a11f712fde63d307412a466d8c5dbec6ebd",
root@jeven01:/data/checkmate#

在这里插入图片描述

在监控项页面,选择容器监控,填写刚才查找的容器ID,选择检查频率后,确认创建该监控项。

在这里插入图片描述

7.3 查看效果

等待几分钟后,在Checkmate首页,我们查看效果如下:

在这里插入图片描述

八、总结

通过本次实战,我们成功使用 Docker 部署了 Checkmate 监控应用,实现了对服务器和各类服务的可视化监控。整个部署过程简洁高效,得益于 Docker 的容器化优势,环境依赖和配置更加统一与可控。Checkmate 提供了丰富的监控功能,如网站、端口、SSL 和 Docker 容器监控,非常适合中小型团队用于构建自托管监控系统。通过持续优化配置和结合实际业务需求,可以进一步提升系统的可观测性与稳定性。


【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。