Uptime Kuma运维监控服务本地部署结合内网穿透实现远程在线监控

目录

前言

主要功能

一、前期准备

本教程环境为:Centos7,可以跑Docker的系统都可以使用本教程安装。

本教程使用Docker部署服务,如何安装Docker详见:

[二、Docker部署Uptime Kuma](#二、Docker部署Uptime Kuma)

三、实现公网查看网站监控

四、使用固定公网地址访问本地部署的监控服务

作者简介: 懒大王敲代码,计算机专业应届生

今天给大家聊聊Uptime Kuma运维监控服务本地部署结合内网穿透实现远程在线监控,欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖

个人主页:

懒大王敲代码-CSDN博客https://blog.csdn.net/weixin_58070962?type=blog

其他专栏:

技术分享专栏http://t.csdnimg.cn/LVrbCjava专栏http://t.csdnimg.cn/bw2Thubantu与C语言学习专栏http://t.csdnimg.cn/A8yIivue3项目实战专栏http://t.csdnimg.cn/vP2no内网穿透专栏http://t.csdnimg.cn/GJZJA懒大王闲谈专栏http://t.csdnimg.cn/KxzqY


前言

本文主要介绍如何在Linux系统中一键部署Uptime Kuma运维监控服务,并将这个服务映射至公网实现随时随地远程访问。

如果您像我一样在服务器上托管了多个网站,并且没有足够的时间来手动检查每个网站的在线状态,那么当出现问题时,您可能无法及时收到通知来处理这些问题。因此,搭建一个在线监控服务是很有必要的,它可以在状态异常时提醒您,以便您能够及时处理问题,确保网站的稳定性和可用性。

监控服务有很多,我最终选择了Uptime Kuma,因为Uptime Kuma是开源免费的,在GIthub上目前有43.1k Star! 它搭建非常方便,占用系统资源低。

主要功能

  1. 监控 HTTP(s) / TCP / HTTP(s) 关键字 / Ping / DNS 记录 / 推送 / Steam 游戏服务器的正常运行时间

  2. 花哨的、反应式的、快速的 UI/UX

  3. 通过 Telegram、Discord、Gotify、Slack、Pushover、电子邮件 (SMTP) 和 70 多种通知服务发送通知

  4. 提供代理支持

  5. 支持多种语言

  6. Ping 图(Ping Chart)

  7. 证书信息(Certificate Info)

一、前期准备

本教程环境为:Centos7,可以跑Docker的系统都可以使用本教程安装。
本教程使用Docker部署服务,如何安装Docker详见:

Install Docker Engine on CentOS | Docker Docs

使用如下命令测试Docker是否正常工作:

复制代码
docker run hello-world

二、Docker部署Uptime Kuma

复制代码
按照顺序执行如下命令,路径位置可自行修改
mkdir -p /root/dockertest/kuma  # 新建安装文件夹
​
cd /root/dockertest/kuma   # 切换至安装路径
​
touch docker-compose.yml  # 创建docker配置文件

执行结果如下:

编辑我们刚才新建的yml配置文件:

复制代码
vim docker-compose.yml

写入如下信息:

复制代码
version: '3.3'
​
services:
  uptime-kuma:
    image: louislam/uptime-kuma
    container_name: uptime-kuma
    volumes:
      - /root/dockertest/kuma/data:/app/data
    ports:
      - 5702:3001   # 我设置的访问端口号为5702,可以自行修改端口
​

在此目录:/root/dockertest/kuma 下执行如下命令启动监控服务:

复制代码
docker-compose up -d

拉取运行完毕后,docker ps ,即可查看已经启动的容器:

此时我们浏览器打开服务器IP:5702,我的地址是:

http://192.168.1.237:5702/

输入用户名密码后进入登陆界面:

在此界面我们可以添加要监控的网站:

点击左上角添加,配置监控URL,设置下监控名称:

设置网站异常通知:

支持各种通知功能,建议配置使用邮件和飞书通知等报警功能。

配置完毕后显示如下:

如因网络问题拉取不到镜像,

可尝试在终端执行 sudo nano /etc/docker/daemon.json

输入:

复制代码
{
"registry-mirrors": [
"https://do.nark.eu.org",
"https://dc.j8.work",
"https://docker.m.daocloud.io",
"https://dockerproxy.com",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.nju.edu.cn"
]
}

保存退出

然后执行:

复制代码
sudo systemctl restart docker

三、实现公网查看网站监控

上面我们使用Docker在本地服务器上部署了网站监控服务,在本地可以随意访问,但是一旦离开本地时需要查看网站状态,配置监控报警,就不灵了。

此时我们需要安装使用内网穿透工具将本地服务映射至公网,这样我们无需自己注册域名购买云服务器,即可发布到公网进行远程访问 !

我在服务器上安装了免费不限流量的Cpolar,具体安装方法如下:

cpolar官网地址: cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站

  • 使用一键脚本安装命令
复制代码
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • 向系统添加服务
复制代码
sudo systemctl enable cpolar
  • 启动cpolar服务
复制代码
sudo systemctl start cpolar

cpolar安装成功后,在外部浏览器上访问Linux 的9200端口即:【http://局域网ip:9200】,使用cpolar账号登录,登录后即可看到cpolar web 配置界面,结下来在web 管理界面配置即可。

打开我的Cpolar Webui地址并登陆进去:

http://192.168.1.237:9200/

点击左侧仪表盘的隧道管理------创建隧道

配置如下:

  • 隧道名称:可自定义命名,注意不要与已有的隧道名称重复

  • 协议:选择http

  • 本地地址:5702(填入自定义修改的端口号)

  • 域名类型:免费选择随机域名

  • 地区:选择China Top

点击创建

隧道变为active状态,即为创建成功:

隧道创建成功后,点击左侧的状态------在线隧道列表,查看所生成的公网访问地址,有两种访问方式,一种是http 和https

打开这个https地址,就是映射出的公网地址:

小结

为了更好地演示,我们在前述过程中使用了cpolar生成的隧道,其公网地址是随机生成的。

这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址由随机字符生成,不太容易记忆(例如:3ad5da5.r10.cpolar.top)。另外,这个地址在24小时内会发生随机变化,更适合于临时使用。

我一般会使用固定二级子域名,原因是我希望它是一个固定、易记的公网地址,更利于长期监控服务(例如:crm.cpolar.cn),这样更显正式,便于交流协作。

四、使用固定公网地址访问本地部署的监控服务

登录cpolar官网,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称。

保留成功提示如下:

返回登录http://192.168.1.237:9200 Cpolar Webui管理界面,点击左侧仪表盘的隧道管理------隧道列表,找到所要配置的隧道,点击 编辑

修改隧道配置信息如下:

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名

  • Sub Domain:填写保留成功的二级子域名

  • 地区:选择保留域名时选择的地区

点击更新(注意,点击一次更新即可,不需要重复提交)

更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了固定的二级子域名名称的域名。

最后,我们使用固定的公网地址访问,可以看到访问成功,这样一个固定且永久不变的公网地址就设置好了。

到这里我们实现了使用本地服务器部署网站监控服务,并配置了固定公网地址访问,这样我们无需租云服务器,就可以随时随地查看网站监控。

相关推荐
tonngw3 小时前
【Mac 从 0 到 1 保姆级配置教程 16】- Docker 快速安装配置、常用命令以及实际项目演示
macos·docker·容器·开源·github·docker desktop·orbstack
debug 小菜鸟5 小时前
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
docker·云计算·aws
SpikeKing6 小时前
Server - 使用 Docker 配置 PyTorch 研发环境
pytorch·docker·llm
码农101号7 小时前
Linux中shell编程表达式和数组讲解
linux·运维·服务器
powerfulzyh7 小时前
非Root用户启动SSH服务经验小结
运维·ssh
云道轩7 小时前
升级centos 7.9内核到 5.4.x
linux·运维·centos
斯普信云原生组7 小时前
Docker构建自定义的镜像
java·spring cloud·docker
爱学习的小道长7 小时前
Ubuntu Cursor升级成v1.0
linux·运维·ubuntu
EelBarb7 小时前
seafile:ubuntu搭建社区版seafile12.0
linux·运维·ubuntu
402 Payment Required7 小时前
serv00 ssh登录保活脚本-邮件通知版
运维·chrome·ssh