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的配置与使用。