服务器宕机前预警!Uptime Kuma+cpolar 让监控随时随地

服务器宕机前预警!Uptime Kuma+cpolar 让监控随时随地

文章目录

前言

Uptime Kuma 是一款轻量级的开源监控工具,支持 HTTP、TCP、Ping 等多种协议,能实时监测网站、服务器、API 接口的运行状态,还能通过邮件、钉钉等数十种方式推送告警信息。它适合个人开发者、中小企业运维人员使用,优点是占用资源少(单实例内存低于 100MB)、操作简单、可视化界面直观,无需专业运维知识也能快速搭建监控系统。

使用 Uptime Kuma 时,设置监控项的过程很简单,添加目标地址后就能自动生成状态图表,一目了然。但要注意,它默认需要在本地网络内访问管理界面,若服务器不在身边,很难及时调整监控参数或查看告警详情。

仅在局域网内使用 Uptime Kuma,会面临不少不便:出差时想查看服务器是否正常运行,却无法访问监控面板;半夜收到告警短信,却只能等到第二天回办公室才能处理问题;团队成员需要分工监控时,必须在同一网络环境下操作,灵活性极差。

而 Uptime Kuma 与 cpolar 结合后,这些困扰就能轻松解决。cpolar 可以将本地的监控服务暴露到公网,生成一个可远程访问的地址,无论身在何处,只要有网络就能登录 Uptime Kuma 管理界面,实时查看监控数据、调整告警阈值,甚至在外出时也能及时处理服务器异常,让监控真正做到全天候、无死角。

img

下面介绍在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 |sudobash
  • 向系统添加服务
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

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

Uptime Kuma 的轻量监控能力,搭配 cpolar 的远程访问支持,共同构成了一套零成本的全栈监控方案。它既能满足中小团队对服务器、网站的实时监测需求,又能打破地域限制,让运维工作不再受限于局域网,实现高效、灵活的远程管理。

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

Read more

使用U盘安装 ubuntu 系统

1. 准备U 盘制作镜像 1.1 下载 ubuntu iso https://ubuntu.com/download/ 这里有多个版本以供下载,本文选择桌面版。 1.2 下载rufus https://rufus.ie/downloads/ 1.3 以管理员身份运行 rufus * 设备选择你用来制作启动项的U盘,不能选错了; * 点击 “选择” 来选择您的镜像文件; * 分区类型选择 “GPT”; * 文件系统选择 “FAT32”; * 然后点击“开始”; 点击开始后,弹出对话框,使用默认选项,即使用ISO 镜像模式写入。 2. 引导下载 ubuntu 2.1 插入U盘,从BIOS 启动 对于

By Ne0inhk

【Docker性能优化关键一步】:为什么exited容器必须立即清理?

第一章:Docker容器exited状态的潜在威胁 当Docker容器进入exited状态时,通常意味着其主进程已终止。虽然这一状态看似无害,但在生产环境中可能隐藏着严重的运行风险。若未及时排查退出原因,可能导致服务中断、数据丢失或资源泄漏。 常见导致容器exited的原因 * 应用程序崩溃或抛出未捕获异常 * 启动命令配置错误,如错误的入口点(entrypoint) * 依赖服务未就绪,造成初始化失败 * 资源限制触发,例如内存不足被OOM Killer终止 识别exited容器的影响 影响类型说明服务不可用容器退出后无法处理请求,直接影响业务连续性日志丢失若未配置持久化日志收集,退出后日志难以追溯自动重启风暴配置了restart: always策略时,频繁启停可能加剧系统负载 快速诊断与调试方法 可通过以下命令查看退出容器的日志和状态信息: # 查看已退出容器的ID及退出码 docker ps -a | grep Exited # 查看具体容器日志,定位错误根源 docker logs <container_id> # 检查容器退出码(0表示正常,非

By Ne0inhk
数据库从零开始:MySQL 中的 DDL 库操作详解【Linux版】

数据库从零开始:MySQL 中的 DDL 库操作详解【Linux版】

前言         在上一篇文章中,我们深入探讨了 MySQL 的基础知识,为大家奠定了坚实的理论基础。今天,我们将目光聚焦于 MySQL 最基础且至关重要的操作之一——数据库库级别的数据定义语言(DDL)操作,这是每一个数据库开发者和管理者必须精通的技能。         库级 DDL 操作是构建和管理数据库系统的基础,它涉及数据库对象的创建、修改和删除。通过本文,我们将详细讲解如何有效地进行数据库的管理,包括: 1. 创建数据库的基本语法和注意事项 2. 选择和切换数据库的正确方法 3. 修改数据库字符集和校对规则 4. 安全有效地删除数据库         接下来,让我们一步步揭开 MySQL 库操作的神秘面纱,帮助读者全面掌握这些核心技能。 1.创建数据库         我们先从数据库的创建开始讲起,相信看过我上篇文章的读者朋友见识过我常见数据库,上篇仅仅是为了让各位快速了解数据库,今天才是正事对它的讲解,下面我先带领各位看看它的语法。 1.1.语法 CREATE DATABASE [IF NOT EXISTS]

By Ne0inhk

Openclaw ubuntu 22.04部署,超详细,对接百炼模型(中文社区版)

一、安装要求 1、node版本必须>=22.0 node下载网址:https://nodejs.org/en/download 2、linux系统版本大于centos7,推荐用centos8或者ubuntu22或更高版本 3、提前准备好对接的AI平台的ApiKey秘钥,例如百炼,Kimi,MiniMax,openai等 4、安装openclaw的机器可访问公网 5、参考文档 官网:https://openclaw.ai/ 中文社区官网:https://clawd.org.cn/ 二、安装步骤 1、安装git sudo apt update && sudo apt install git -y git

By Ne0inhk