uptime-kuma搭建教程(保姆级),快把你的网站监控起来!

uptime-kuma 是一款开源的监控工具, 支持 TCP / PING / HTTP 等多种监控方式, 可监测网站,数据库,Docker容器,甚至能监测Steam游戏服务器,当服务出现故障时,可自动通过 Telegram、Discord、Gotify、Slack、Pushover、Email (SMTP) 等多种服务发送通知消息。

Uptime Kuma支持docker部署,本文采用docker-compose的方式,编辑完yml文件直接启动就可以了。

 

准备工作

首先准备好一个域名,并做好DNS解析, 我这里使用一个二级域名做演示:test.my*****.pro

 

更新、安装必备软件

# debian/ubuntu
apt update -y && apt install -y wget crul vim
# redhat/centos
yum update -y && yum install -y wget vim

 

 

二、安装Docker与Docker-compose

安装Docker

#国内机
curl -sSL https://get.daocloud.io/docker | sh

#国外机
curl -sSL https://get.docker.com/ | sh

 

启动Docker 并设置开机自启

systemctl start docker

systemctl enable docker

 

安装 Docker-compose

#国内机
curl -L https://get.daocloud.io/docker/compose/releases/download/v2.22.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

#国外机
curl -L "https://github.com/docker/compose/releases/download/v2.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

 

 

三、安装 Nginx Proxy Manager

Nginx Proxy Manager 是一款基于Docker的反代神器,简单易用,强烈推荐!

创建并进入目录

mkdir -p data/docker_data/npm

cd data/docker_data/npm

 

创建 docker-compose.yml 文件

vim docker-compose.yml

 

在文件中填入以下内容,保存并退出,注意请把environment和db 两处的DB_MYSQL_USER、DB_MYSQL_PASSWORD、MYSQL_ROOT_PASSWORD 改成你要使用的账号密码

version: "3"
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      # These ports are in format <host-port>:<container-port>
      - '80:80' # Public HTTP Port
      - '443:443' # Public HTTPS Port
      - '81:81' # Admin Web Port
      # Add any other Stream port you want to expose
      # - '21:21' # FTP
    environment:
      DB_MYSQL_HOST: "db"
      DB_MYSQL_PORT: 3306
      DB_MYSQL_USER: "npmuser"
      DB_MYSQL_PASSWORD: "npmhaha2023*"
      DB_MYSQL_NAME: "npm"
      # Uncomment this if IPv6 is not enabled on your host
      # DISABLE_IPV6: 'true'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
    depends_on:
      - db

  db:
    image: 'jc21/mariadb-aria:latest'
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: 'KAIgewanxiao23*&'
      MYSQL_DATABASE: 'npm'
      MYSQL_USER: 'npmuser'
      MYSQL_PASSWORD: 'npmhaha2023*'
    volumes:
      - ./mysql:/var/lib/mysql

 

运行

docker-compose up -d

 

通过你的ip:81端口来访问Nginx Proxy Manager ,如:192.168.0.2:81 ,用初始账号密码登录后会让你修改账号密码,请记住自己修改的密码(如果无法访问记得在防火墙放行端口,不会操作的可以参考我之前的文章 ubuntu  CentOS

#初始账号密码
Email:    [email protected]

Password: changeme

四、安装 Uptime-Kuma

创建目录

mkdir -p data/docker_data/uptime

cd data/docker_data/uptime

 

创建 docker-compose.yml 文件

vim docker-compose.yml

 

粘贴以下内容,保存并退出

version: '3.8'

services:
  uptime-kuma:
    image: louislam/uptime-kuma:1
    container_name: uptime-kuma
    volumes:
      - uptime-kuma:/app/data
    ports:
      - "3001:3001"  # <Host Port>:<Container Port>
    restart: always

volumes:
  uptime-kuma:

 

运行

docker-compose up -d

 

先在防火墙放行3001端口 然后用你的IP:3001 进行安装,首次登录会让你创建用户和密码,根据提示输入即可;

 

五、设置反向代理

虽然我们已经可以通过ip+端口的方式可以访问Uptime-Kuma了,但如果想用域名访问还需要    配置反向代理,回到Nginx Proxy Manager页面,依次点击 【Proxy Hosts】--【Add Proxy Hosts】来添加要进行反向代理的主机

 

在【Details】 栏分别填入解析好的域名,服务器ip,端口等信息,可以按照下图配置

 

然后在【SSL】栏这里,选择【Request a new SSL certificate】,并打开【Force SSL】,邮箱一定要填写一个真实有效的邮箱,否则证书会申请失败,然后勾选【I Agree to the Let's Encrypt Terms of Service * 】,点击【Save】保存

 

 

到这里Uptime-Kuma 搭建工作就完成了

 

升级备份与还原

升级 Uptime Kuma

cd "<YOUR docker-compose.yml DIRECTORY>"
docker compose pull
docker compose up -d --force-recreate

 

备份Uptime Kuma

#!/bin/bash
cd /root/data/docker_data/
tar -zcvf uptime.tgz uptime
cp -rf uptime.tgz /【你的备份路径】/uptime_"$(date +"%Y-%m-%d_%H-%M")".tgz
rm -rf uptime.tgz

这是一个备份脚本,可以设置为定时任务

 

还原

#cd 你的备份路径如:
cd /back/

#ls查看你要还原的版本

#解压要还原的版本(注意修改日期,不要照抄)
tar -zxvf uptime_2023-10-08_09-56.tgz

#删除源文件
rm -rf /root/data/docker_data/uptime

#剪切解压的备份文件到源路径
mv uptime /root/data/docker_data/

#重启容器
docker restart uptime-kuma

 

由于内容太多,下篇再继续讲Uptime Kuma的配置与使用。

阅读剩余
THE END