【开源监控工具】Uptime Kuma:几分钟设置实时监控你的网站性能

news2025/1/6 14:26:30

文章目录

    • 前言
    • 1.关于Uptime Kuma
    • 2.安装Docker
    • 3.本地部署Uptime Kuma
    • 4.使用Uptime Kuma
    • 5.cpolar内网穿透工具安装
    • 6.创建远程连接公网地址
    • 7.固定Uptime Kuma公网地址

前言

大家好!如果你是网站运维人员或者管理着多个站点,那么今天我要介绍的一款工具绝对能成为你的得力助手——Uptime Kuma。这款开源监控工具不仅拥有直观的图形用户界面,还能实时反馈服务器的各种状态信息,让你轻松掌握每一个细节。

无论是新手还是资深运维工程师,都能在几分钟内完成安装和设置,并且它支持多种监控类型,如HTTP、DNS、关键词匹配等。更重要的是,结合内网穿透工具,你甚至可以实现远程监控,无需公网IP或复杂的路由器配置。接下来,让我们一起深入了解Uptime Kuma的五大优势吧!

在这里插入图片描述

1.关于Uptime Kuma

Uptime Kuma可以添加的监控项包括HTTP(s)、TCP、HTTP(s)关键词、HTTP(s) JSON查询、Ping、DNS记录、推送、Docker容器运行时间、Steam游戏服务等常见网站运行参数。当服务器发生意外情况时,Uptime Kuma支持用户选择70多种通知服务,例如Telegram、Discord、Gotify、Slack、Pushover、电子邮件等,以便及时接收网站服务故障通知,帮助用户减少经济损失。

Uptime Kuma具有灵活高效的用户交互界面,用户可以根据需要隐藏或显示监控状态,并且可以使用网页标签功能对不同功能的网站进行分类,以便在特定时段关注高风险站点。此外,Uptime Kuma还提供多种语言支持,官方就提供了中文语言包。

Github地址:GitHub - louislam/uptime-kuma: A fancy self-hosted monitoring tool

以下是Uptime Kuma支持的功能特性:

  • 监控类型:支持监控 HTTP(s) / TCP / HTTP(s) 关键字 / HTTP(s) Json 查询 / Ping / DNS 记录 / Push / Steam 游戏服务器 / Docker 容器 / 数据库(SQL Server、PostgreSQL、MySQL、MongoDB、Redis 等)
  • 通知类型:支持 Telegram / Discord / Gotify / Slack / Pushover / Email / Webhook 等 90 多种通知方式
  • 检测间隔:支持最低 20 秒的检测间隔
  • 图表:支持以图表形式查看历史数据

img

2.安装Docker

本教程操作环境为Linux Ubuntu系统,在开始之前,我们需要先安装Docker。

在终端中执行下方命令安装docker:

curl -fsSL https://get.docker.com -o get-docker.sh

然后再启动docker

sudo sh get-docker.sh

最后我们在docker容器中运行下 hello world 看一下是否安装成功。

sudo docker container run hello-world

可以看到出现了hello world,说明我们已经安装docker成功,就可以进行下一步了

image-20241008151101668

3.本地部署Uptime Kuma

本项目提供了一键安装脚本:

sudo docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1

一条命令实现,本项目使用的是3001端口,需要在防火墙放开。

image-20241008152837865

现在就已经安装成功啦!您可以通过打开Web浏览器输入localhost:3001来登录或注册您的Uptime Kuma啦!

注意

如果你想限制对 localhost 的公开(不为其他用户公开端口或使用反向代理),你可以像这样公开端口:

sudo docker run -d --restart=always -p 127.0.0.1:3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1

image-20241008154100927

PS:如果因为网络问题拉取不到镜像,可以在终端执行下面这行命令,编辑配置文件

输入:

sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://hub.geekery.cn/",
                   "https://ghcr.geekery.cn"
                   ]
}
EOF

保存退出

然后执行:sudo systemctl restart docker

4.使用Uptime Kuma

注册登录后进入到仪表盘,可以直接点击左上角的”添加监控项“

image-20241008154248421

根据自己的需求选择监控类型,这里以监控cpolar为例,在URL中填写上cpolar的地址后保存

image-20241008154610010

稍等片刻就能看到监控的数据以及图标

image-20241008154640976

小结

上面在本地Linux中使用Docker成功部署了Uptime Kuma,并局域网访问成功。整体来说Uptime Kuma是一款非常不错的网站监控工具,它提供了完备的功能,并且具有非常好的实用性和易用性,并且也非常容易安装部署。

如果想在公网远程管理Uptime Kuma,就可以创建一个公网地址,这里我使用的是cpolar内网穿透,通过cpolar转发本地端口映射的http公网地址,我们可以很容易实现远程访问,而无需自己注册域名购买云服务器,可节省大量的资金。

5.cpolar内网穿透工具安装

下面是安装cpolar步骤:

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

使用一键脚本安装命令

sudo curl https://get.cpolar.sh | sh

img

安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)

sudo systemctl status cpolar

img

Cpolar安装和成功启动服务后,在浏览器上输入ubuntu主机IP加9200端口即:【http://localhost:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:

image-20240801133735424

6.创建远程连接公网地址

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:

  • 隧道名称:可自定义,本例使用了: Uptimekuma注意不要与已有的隧道名称重复
  • 协议:http
  • 本地地址:https://localhost:3001
  • 域名类型:随机域名
  • 地区:选择China Top

image-20241008162716882

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了两个公网地址,接下来就可以在其他电脑(异地)上,使用任意一个地址在浏览器中访问即可。

image-20241008162834134

如下图所示,成功实现使用公网地址异地远程访问本地部署的Uptime Kuma

image-20241008162949031

使用上面的cpolar https公网地址,在任意设备的浏览器进行访问,即可成功看到我们Uptime Kuma管理界面,这样一个利用公网地址可以进行远程访问的隧道就创建好了,隧道使用了cpolar的公网域名,无需自己购买云服务器,可节省大量资金。使用cpolar创建隧道即可发布到公网进行远程访问,新域名登录,可能需要重新登陆!

7.固定Uptime Kuma公网地址

由于以上使用cpolar所创建的隧道使用的是随机公网地址,24小时内会随机变化,不利于长期远程访问。因此我们可以为其配置二级子域名,该地址为固定地址,不会随机变化。

登录cpolar官网:https://www.cpolar.com

点击左侧的预留,选择保留二级子域名,地区选择china top,然后设置一个二级子域名名称,填写备注信息,点击保留。

image-20241008163159036

保留成功后复制保留的二级子域名地址:

image-20241008163253138

登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑

image-20241008163344819

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

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

点击更新

image-20241008163514702

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

image-20241008163623531

最后,我们使用固定的公网地址访问Uptime Kuma管理界面可以看到访问成功,一个永久不会变化的远程访问方式即设置好了。

image-20241008163721122

image-20241008163745084

通过本文的介绍,相信你已经对 Uptime Kuma 有了全面的认识,并了解了它在网站运维中的巨大价值。无论是简单的安装过程、强大的功能支持还是直观的可视化界面,都让这款开源工具成为了不可多得的好帮手。如果你还有任何疑问或需要进一步的帮助,请随时留言交流!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2270890.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ubuntu操作系统安装SSH服务

1、更新仓库 sudo apt-get update 2、安装SSH服务 #安装SSH服务 apt-get install openssh-server#启用SSH服务 service ssh start#查看SSH服务运行状态 service ssh status 3、修改SSH配置文件 sudo vi /etc/ssh/sshd_config 4、开启ssh端口 sudo ufw allow ssh 5、重启SSH…

二、github基础

Github基础 备用github.com网站一、用户界面-Overview&#xff08;概览&#xff09;1用户信息2 导航栏3 热门仓库4 贡献设置5贡献活动6搜索和筛选7自定义收藏8贡献统计9最近活动10其他链接 二、用户界面-Repositories&#xff08;仓库&#xff09;1 libusb_stm322 savedata3 Fi…

Flink源码解析之:如何根据JobGraph生成ExecutionGraph

Flink源码解析之&#xff1a;如何根据JobGraph生成ExecutionGraph 在上一篇Flink源码解析中&#xff0c;我们介绍了Flink如何根据StreamGraph生成JobGraph的流程&#xff0c;并着重分析了其算子链的合并过程和JobGraph的构造流程。 对于StreamGraph和JobGraph的生成来说&…

mysqll连接用时太长解决方法

1、连接用时太长分析 从客户端连接mysql服务器&#xff0c;时间长达10几秒&#xff0c;此为mysql的dns的反向解析造成&#xff0c;在局域网内如果都是用ip连接&#xff0c;可以通过在配置文件中添加skip-name-resolve&#xff0c;取消此功能&#xff0c;取消后&#xff0c;就不…

LLM(十二)| DeepSeek-V3 技术报告深度解读——开源模型的巅峰之作

近年来&#xff0c;大型语言模型&#xff08;LLMs&#xff09;的发展突飞猛进&#xff0c;逐步缩小了与通用人工智能&#xff08;AGI&#xff09;的差距。DeepSeek-AI 团队最新发布的 DeepSeek-V3&#xff0c;作为一款强大的混合专家模型&#xff08;Mixture-of-Experts, MoE&a…

办公 三之 Excel 数据限定录入与格式变换

开始-----条件格式------管理规则 IF($A4"永久",1,0) //如果A4包含永久&#xff0c;条件格式如下&#xff1a; OR($D5<60,$E5<60,$F5<60) 求取任意科目不及格数据 AND($D5<60,$E5<60,$F5<60) 若所有科目都不及格 显示为红色 IF($H4<EDATE…

【深度学习】多目标融合算法—样本Loss提权

目录 一、引言 二、样本Loss提权 2.1 技术原理 2.2 技术优缺点 三、总结 一、引言 在朴素的深度学习ctr预估模型中&#xff08;如DNN&#xff09;&#xff0c;通常以一个行为为预估目标&#xff0c;比如通过ctr预估点击率。但实际推荐系统业务场景中&#xff0c;更多是多…

mapbox进阶,添加路径规划控件

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️MapboxDirections 控件二、🍀添加路径规划控件1. ☘️实现思路2. ☘️…

日志聚类算法 Drain 的实践与改良

在现实场景中&#xff0c;业务程序输出的日志往往规模庞大并且类型纷繁复杂。我们在查询和查看这些日志时&#xff0c;平铺的日志列表会让我们目不暇接&#xff0c;难以快速聚焦找到重要的日志条目。 在观测云中&#xff0c;我们在日志页面提供了聚类分析功能&#xff0c;可以…

uniapp--HBuilder开发

提示&#xff1a;本文为学习内容&#xff0c;若有错误&#xff0c;请联系作者&#xff0c;谦虚受教。 文章目录 前言一、下载HBuilder二、添加modbus相关库1.下载nodejs2.下载modbus库3.项目添加modbus库 三、HBuilder相关功能语句1.文件夹说明2.消息信息框3.开关按钮4.选中按钮…

Unity 3D柱状图效果

1.单个柱状效果展示 2.从上到下渐变透明材质Shader Shader "Unlit/NewUnlitShader" {Properties{_MainTex ("Texture", 2D) "white" {}_Color("Color",Color) (1,1,1,1)_Alpha("Alpha",Range(0,1) ) 0.2_Alpha2("…

JavaScript的数据类型及检测方式

目录 一、JS数据类型 1.基本数据类型 2.引用数据类型 二、堆和栈 三、数据类型检测 1.typeof 2.instanceof 3.constructor 4.Object.prototype.toString.call() JavaScript 中的数据类型主要分为两大类&#xff1a;原始数据类型(也称基本数据类型)和引用数据类型。 一…

电脑中缺失的nvrtc64_90.dll文件如何修复?

一、文件丢失问题 案例&#xff1a;nvrtc64_90.dll文件缺失 问题分析&#xff1a; nvrtc64_90.dll是NVIDIA CUDA Runtime Compilation库的一部分&#xff0c;通常与NVIDIA的CUDA Toolkit或相关驱动程序一起安装。如果该文件丢失&#xff0c;可能会导致基于CUDA的应用程序&…

GIT 企业级开发学习 1

本节主要命令&#xff1a; git init ls 不能列出 .git ls -a 列出 .git 1. 初始化 Git 仓库 git init • 初始化一个新的 Git 仓库&#xff0c;在当前目录下生成一个 .git 隐藏文件夹&#xff0c;用于存储版本控制信息。 2. 查看隐藏文件 ls -a • 使用 ls -a 显示隐藏文件…

用Tkinter制作一个用于合并PDF文件的小程序

需要安装PyPDF2库&#xff0c;具体原代码如下&#xff1a; # -*- coding: utf-8 -*- """ Created on Sun Dec 29 14:44:20 2024author: YBK """import PyPDF2 import os import tkinter as tk import windndpdf_files [] def dragged_files(f…

蓝桥杯JAVA--003

需求 2.代码 public class RegularExpressionMatching {public boolean isMatch(String s, String p) {if (p.isEmpty()) {return s.isEmpty();}boolean firstMatch !s.isEmpty() && (s.charAt(0) p.charAt(0) || p.charAt(0) .);if (p.length() > 2 && p…

接口开发完后,个人对于接下来接口优化的一些思考

优化点 入参的合法性和长度范围&#xff0c;必填项的检查验证 因为没有入参&#xff0c;所以不需要考虑。 批量思想解决N1问题 // 假设要查询100个订单及其对应的用户信息 List<Order> orders orderMapper.selectList(new QueryWrapper<>().last("limit …

C403 unity打开方法

1 unity hub右键以管理员方式打开。 2 注册登录账户 如果出现 如果还是不行&#xff0c;把地址栏的网址复制&#xff0c;在google浏览器中打开 如果出现安全策略&#xff0c;就不勾选安全防护 尝试方案1 把unityhub在任务管理器中关闭 如果验证码发送成功&#xff0c;还是进不…

linux-25 文件管理(三)复制、移动文件,cp,mv

命令cp是copy的简写&#xff0c;而mv则是move的简写。那既然copy是用于实现复制文件的&#xff0c;那通常一般我们要指定其要复制的是谁&#xff1f;而且复制完以后保存在什么地方&#xff0c;对吧&#xff1f;那因此它的使用格式很简单&#xff0c;那就是cp srcfile dest&…

『 Linux 』高级IO (二) - 多路转接

文章目录 前情提要新连接的获取新连接的添加不同事件的处理select 的缺点poll( )SelectServer 改为 PollServer Epoll多路转接方案Epoll 原理深入了解Epoll接口Epoll的优势 select( )/poll( )完整代码(供参考) 前情提要 在博客『 Linux 』高级IO (一)中介绍了五种IO模型; 阻塞式…