5分钟搭建开源运维监控工具Uptime Kuma并实现无公网IP远程访问

news/2024/7/10 18:49:53 标签: 开源, 运维, tcp/ip

文章目录

    • **主要功能**
      • 一、前期准备
          • 本教程环境为:Centos7,可以跑Docker的系统都可以使用本教程安装。
          • 本教程使用Docker部署服务,如何安装Docker详见:
      • 二、Docker部署Uptime Kuma
      • 三、实现公网查看网站监控
      • 四、使用固定公网地址访问本地部署的监控服务

img

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

监控服务有很多,我最终选择了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)。

下面介绍在Linux中使用Docker来一键部署Uptime Kuma,并将这个服务映射至公网访问。

一、前期准备

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

image-20231219171530642

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

Install Docker Engine on CentOS | Docker Docs

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

docker run hello-world

image-20231219172107787

二、Docker部署Uptime Kuma

按照顺序执行如下命令,路径位置可自行修改
mkdir -p /root/dockertest/kuma  # 新建安装文件夹

cd /root/dockertest/kuma   # 切换至安装路径

touch docker-compose.yml  # 创建docker配置文件

执行结果如下:

image-20231220180234239

编辑我们刚才新建的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,可以自行修改端口

image-20231220180901400

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

docker-compose up -d

image-20231220165544383

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

image-20231220165622832

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

http://192.168.1.237:5702/

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

image-20231220170105283

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

image-20231220170128942

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

image-20231220170451461

设置网站异常通知:

image-20231220171825780

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

image-20231220171851867

配置完毕后显示如下:

image-20231220171938537

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

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

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

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

cpolar官网地址: https://www.cpolar.com

  • 使用一键脚本安装命令
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 管理界面配置即可。

image-20230831171159175

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

http://192.168.1.237:9200/

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

image-20231219155830455

image-20231220172059029

配置如下:

image-20231220172152263

  • 隧道名称:可自定义命名,注意不要与已有的隧道名称重复
  • 协议:选择http
  • 本地地址:5702(填入自定义修改的端口号)
  • 域名类型:免费选择随机域名
  • 地区:选择China Top

点击创建

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

image-20231220172426684

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

image-20231220172407611

image-20231220172741417

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

image-20231220173642875

image-20231220173705897

小结

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

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

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

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

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

image-20231220173942500

保留成功提示如下:

image-20231220174005682

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

image-20231220173745280

修改隧道配置信息如下:

image-20231220174417628

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

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名
  • 地区:选择保留域名时选择的地区

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

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

image-20231220174520998

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

image-20231220174602525

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


http://www.niftyadmin.cn/n/5279613.html

相关文章

逻辑回归(LR,Logistic Regression)算法 简介

逻辑回归(LR,Logistic Regression)算法 当线性回归的预测结果,由于受到个别极端数值的影响而不准的时候, 可以用逻辑回归来解决. 逻辑回归模型的输出只能在 0 到 1 之间,也就是表达一个事件会发生的概率,…

Qt 6.3 学习笔记

文章目录 Qt的安装和配置创建一个Qt项目信号和槽布局和控件绘图和动画数据库和网络 Qt是一个跨平台的C图形用户界面应用程序开发框架。它提供了创建GUI应用程序的工具和库。Qt 6.3是Qt的最新版本,引入了许多新特性和改进。在这个章节中,我们将详细介绍如…

【数字图像处理】实验一 图像基本运算

图像基本运算 一、实验内容: 1. 熟悉和掌握利用Matlab工具进行数字图像的读、写、显示等数字图像处理基本步骤。 2. 熟练掌握各种图像点运算的基本原理及方法。 3. 能够从深刻理解点运算,并能够思考拓展到一定的应用领…

电商系统订单到期关闭如何实现(订单超时未支付自动取消)

在电商,支付等系统中,一设都是先创建订单(支付单),再给用户一定的时间进行支付,如果没有按时支付的 话,就需要把之前的订单(支付单)取消掉。这种类以的场景有很多,还有比…

Http---HTTP协议

1. HTTP 协议的介绍 HTTP 协议的全称是(HyperText Transfer Protocol),翻译过来就是超文本传输协议。 超文本是超级文本的缩写,是指超越文本限制或者超链接,比如:图片、音乐、视频、超链接等等都属于超文本。 HTTP 协议的制作者是蒂姆伯纳…

嵌入式中的定时器概念

定时器概述 定时器是嵌入式系统中常用的一种外设,它可以产生一定的时间间隔、延时、定时等功能,广泛应用于定时、计数、脉冲宽度调制(PWM)等领域。 具体而言,定时器可以实现以下功能: 计时:定时器可以用来实现延时操作,例如等待外部设备的稳定、等待数据的接收等,也可以…

护眼台灯适合考公用吗?高口碑的护眼台灯分享

护眼台灯近年来受到越来越多人的关注和喜爱,还得到了一些知名博主、眼科专家和学生家长的认可和推荐,但是市场上存在着一些劣质产品,这些产品存在光线不均、频闪等问题,长期使用这些低劣护眼台灯可能还会导致眼睛酸痛等不适情况。…

ASP.NET Core基础之定时任务(一)-托管服务+Timer

阅读本文你的收获 了解定时任务的使用场景学会在ASP.NET Core 中使用托管服务学会利用托管服务Timer定时器实现定时任务 一、定时任务的应用场景 在系统开发过程中,很多时候我们不能对某一状态或某一行为实时进行人为监控,所以就希望系统能自动实现这一…