创建compose.yml

services:
  uptime-kuma:
    image: louislam/uptime-kuma:latest
    restart: unless-stopped
    volumes:
      - ./data:/app/data
      - /var/run/docker.sock:/var/run/docker.sock
    ports:
      - "3001:3001"
    environment:
      - TZ=Asia/Shanghai

部署 + 快速自检docker宿主机测试是否通过

  • 部署:docker compose up -d
  • 自检:ls -l /var/run/docker.sock

    • 出现类似: srw-rw---- 1 root docker 0 Nov 2 13:30 /var/run/docker.sock 证明成功

方式一:创建主动上报(Push,灵活,可自定义)

让 vps 定时“心跳上报”给 Kuma,能自定义更多健康条件(CPU/内存/外网连通性等)。

在Uptime Kuma创建Push监控

  • 类型:Push
  • 复制生成的URL
  • 心跳间隔默认60根据需要修改

在OpenWRT上报

# 看一下有没有curl 一般都会有
curl -V

# 没有就安装curl
opkg update
opkg install curl

复制Uptime Kuma给出的代码创建kuma-heartbeat.sh脚本

vi kuma-heartbeat.sh

# 复制以下代码改掉地址Token等

#!/bin/bash
# Filename: index.sh
PUSH_URL="https://xx.soooooor.fans/api/push/Uuxxx?status=up&msg=OK&ping="
INTERVAL=60

while true; do
    curl -s -o /dev/null $PUSH_URL
    echo "Pushed!"
    sleep $INTERVAL
done

# 给到权限
chmod +x kuma-heartbeat.sh 

在OpenWRT系统->计划任务添加每分钟上报任务

# 每分钟上报一次(按需调整)
*/1 * * * * /usr/bin/kuma-heartbeat.sh

或直接命令创建

# 编辑
vi /etc/crontabs/root
# 每分钟上报一次(按需调整)
*/1 * * * * /usr/bin/kuma-heartbeat.sh
# 保存后重载
/etc/init.d/cron restart

方式二:监控Docker

  • 监控本机Docker

    • 账号 -> 设置 -> Docker宿主 -> 配置Docker宿主信息
    • 显示主机名:随便起
    • 链接方式:Socket
    • Docker 守护进程:/var/run/docker.sock
    • 点击测试查看是否通过
  • 监控其它宿主机中的Docker

    • 在其它宿主机部署socket代理

      docker run -d --name docker-socket-proxy \
        -p 2375:2375 \
        -v /var/run/docker.sock:/var/run/docker.sock \
        -e CONTAINERS=1 \
        -e INFO=1 \
        -e PING=1 \
        -e VERSION=1 \
        --restart unless-stopped \
        tecnativa/docker-socket-proxy
  • 回到Uptime Kuma 账号 -> 设置 -> Docker宿主 -> 配置Docker宿主信息
  • 显示主机名:随便起
  • 链接方式:http
  • Docker 守护进程: http://:2375

当创建新的docker监控时根据docker所在主机的情况选择docker宿主机

MariaDB/SQL

  • 添加地址

    mysql://账号@ip:端口/数据库

  • 密码处填写密码
  • 查询语句(按照需求写,以下默认只查询是否活越)

    SELECT 1

其它方式用的最多的是:ping | TCP Port比较简单不在赘述

最后修改:2025 年 11 月 13 日
如果觉得我的文章对你有用,请随意赞赏