如何在 Ubuntu 上安装开源监控工具 Uptime Kuma

简介

Uptime Kuma(或简称 Kuma)是一个开源监控工具,用于监控 HTTP、HTTPS、DNS 等协议的服务。Uptime Kuma 提供多种功能,如多语言支持、多个状态页面、代理支持等。

image.png

接下来,我将一步一步教大家如何进行安装和部署!!

准备工作

服务器准备

必要前提:

  • 一台 Linux 服务器(推荐腾讯云、阿里云或雨云等)。

我将以 雨云 为例,带大家创建一台自己的云服务器,以便学习本篇文章的内容。

注册链接: https://rainyun.ivwv.site

创建雨云服务器

以下步骤仅供参考,请根据实际需求选择配置。

  • 点击 云产品云服务器立即购买
  • 选择距离你较近的区域,以保证低延迟。

https://img-blog.csdnimg.cn/img_convert/4c16271f125adea69da6ed9e7b2a4226.png

  • 按照自己需求选择配置,选择Ubuntu 22.04 版本,按照自己需求是否预装Docker。
  • 最后按照提示进行购买。
  • 购买后等待机器部署完毕,点击刚刚创建好的服务器,进入管理面板,找到远程连接相关信息。

https://img-blog.csdnimg.cn/img_convert/414570cd3da48d4cc4bf51489992000b.png

  • 我们使用 PowerShell 进行 SSH 远程连接到服务器,Win+R 打开运行窗口,输入 powershell 后点击确定。

https://img-blog.csdnimg.cn/img_convert/c8afbeb764459a37a8451dd2ed8eeff1.png

  • 输入 ssh root@你的服务器IP 例如 ssh root@154.9.227.239 回车后,首次需要输入 yes,再次回车后即可登录服务器。

https://img-blog.csdnimg.cn/img_convert/ea5814f1d1068ca9fa2bb94631cfbdf1.png

  • 到此为止,我们的云服务器就远程连接上了。

开始部署

1.更新系统

每次新安装操作系统时,都需要将系统包更新到最新版本。

sudo apt-get update -y && sudo apt-get upgrade -y

如果系统有待处理的内核更新,您需要重启以加载新内核版本。更新完成后,您可以继续下一步。

2. Apache Web 服务器

要安装 Apache,请执行以下命令:

sudo apt install apache2 -y

Apache 安装完成后,您可以启动并启用服务:

sudo systemctl enable apache2 && sudo systemctl start apache2

检查服务是否运行正常:

sudo systemctl status apache2

您应该收到以下输出:

root@host:~# sudo systemctl status apache2
● apache2.service - The Apache HTTP ServerLoaded: loaded (/lib/systemd/system/apache2.service; enabled; preset: enabled)Active: active (running) since Wed 2023-10-05 06:26:23 CDT; 1 day 5h agoDocs: <https://httpd.apache.org/docs/2.4/>Main PID: 661 (apache2)Tasks: 10 (limit: 4644)Memory: 29.6MCPU: 9.372sCGroup: /system.slice/apache2.service

3.安装 NodeJS

要安装 NodeJS,请执行以下命令:

sudo apt install nodejs -y

检查已安装的 NodeJS 版本,请执行以下命令:

node -vroot@host:~# node -v
v18.13.0

成功安装 NodeJS 后,我们还需要安装 NPM:

sudo apt install npm -y

检查已安装的 NPM 版本,请执行以下命令:

npm -vroot@host:~# npm -v
9.2.0

4.安装 Uptime Kuma

现在所有必需的软件都已安装,我们可以开始安装 Uptime Kuma 本身。首先,我们需要从 GitHub 克隆 Uptime Kuma 仓库:

cd /opt
git clone https://github.com/louislam/uptime-kuma.git

您需要一些时间来克隆仓库到 /opt 目录:

root@host:/opt# git clone https://github.com/louislam/uptime-kuma.git
Cloning into 'uptime-kuma'...
remote: Enumerating objects: 28276, done.
remote: Counting objects: 100% (5082/5082), done.
remote: Compressing objects: 100% (446/446), done.
remote: Total 28276 (delta 4745), reused 4771 (delta 4619), pack-reused 23194
Receiving objects: 100% (28276/28276), 21.69 MiB | 5.30 MiB/s, done.
Resolving deltas: 100% (21463/21463), done.

下载完成后,进入 uptime-kuma 目录,并安装 pm2 生产进程管理器

sudo npm install pm2 -g

安装完成后,运行以下命令进行设置:

npm run setup

安装完成后,使用以下命令启动 Uptime Kuma 服务器:

pm2 start server/server.js --name uptime-kuma

启动后,您应该得到以下输出:

[PM2] Spawning PM2 daemon with pm2_home=/root/.pm2
[PM2] PM2 Successfully daemonized
[PM2] Starting /opt/uptime-kuma/server/server.js in fork_mode (1 instance)
[PM2] Done.
│ id │ name       │ namespace   │ version │ mode    │ pid   │ uptime │ ↺ │ status │ cpu  │ mem  │ user
│ 0  │ uptime-kuma    │ default     │ 1.23.2  │ fork    │ 17161 │ 0s    │ 0 │ online │ 0% │ 42.3mb│ root

之后,我们需要使用以下命令使 pm2 服务在系统启动时启动:

pm2 startup

您应该得到以下输出:

[PM2] Writing init configuration in /etc/systemd/system/pm2-root.service
[PM2] Making script booting at startup...
[PM2] [-] Executing: systemctl enable pm2-root...
Created symlink /etc/systemd/system/multi-user.target.wants/pm2-root.service → /etc/systemd/system/pm2-root.service.
[PM2] [v] Command successfully executed.
+---------------------------------------+
[PM2] Freeze a process list on reboot via:
$ pm2 save[PM2] Remove init script via:
$ pm2 unstartup systemd

完成所有安装后,您可以通过 http://your_server_ip:3001 访问 Uptime Kuma 。

image.png

5.设置 Apache 作为反向代理

虽然 Uptime Kuma 已安装,但使用其端口号访问服务并不方便。为了解决这个问题,我们将使用 Apache 作为前端,它将位于访问者和 Uptime Kuma 实例之间。这也可以让您的 Uptime Kuma 实例更安全,通过 Apache 限制访问。

如果您还没有安装 Apache,可以使用 apt install apache2 安装。进入 Apache 的配置目录并为 Uptime Kuma 实例创建一个配置文件。

cd /etc/apache2/sites-available/
touch kuma.conf

打开文件,粘贴以下代码,保存文件并关闭。确保将 yourdomain.com 替换为您计划用于访问 Kuma 实例的域名。

<VirtualHost *:80>
ServerName yourdomain.com
DocumentRoot /var/www/html/ProxyPass / <http://localhost:3001/>
RewriteEngine on
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule ^/?(.*) "ws://localhost:3001/$1" [P,L]ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined</VirtualHost>

启用 Kuma 的 Apache 配置并启用 Apache 的 rewriteproxyproxy_http 模块。

a2dissite 000-default.confsudo a2enmod rewritesudo a2enmod proxysudo a2enmod proxy_httpsudo a2ensite kuma.conf

检查语法:

apachectl -t

您应该收到以下输出:

root@vps:~# apachectl -t
Syntax OK

如果语法正确,重启 Apache 服务。

systemctl restart apache2

6.完成 Uptime Kuma 安装

如果一切配置正确,您将能够通过 http://YourDomainName 访问 Uptime Kuma 实例。

输入用户名和密码。

image.png
点击 创建 按钮后,您将被重定向到 Uptime-Kuma 仪表板。

image.png

可以创建很多类型的心跳检测

image.png

相关链接
雨云 - 新一代云服务提供商: https://rainyun.ivwv.site
我的博客:https://blog.ivwv.site

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

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

相关文章

SQLAlchemy: Python中的强大数据库工具

SQLAlchemy: Python中的强大数据库工具 SQLAlchemy是一个功能强大的Python库&#xff0c;广泛应用于数据库操作。它提供了一个灵活的数据库抽象层&#xff0c;可以帮助开发者轻松与关系型数据库进行交互。本文将介绍SQLAlchemy的核心组件、常用功能以及它的优势。 1. SQLAlch…

21天掌握javaweb-->第12天:Spring Boot项目优化与安全性

Spring Boot项目优化与安全性 1. Spring Boot性能优化 1.1 减少依赖项 评估项目的依赖项&#xff0c;并确保只引入必要的依赖。较多的依赖项可能会增加启动时间&#xff0c;因为它们需要被扫描和初始化。通过删除不需要的依赖项或仅引入必要的模块&#xff0c;可以减少类路径…

Python制做一个简易PDF编辑器——关于PDF文字编辑实现的思路

在Python零基础快速入门最后一篇&#xff0c;我们一起做了一个PDF编辑小工具&#xff0c;里面只实现的PDF翻页浏览等&#xff0c;并没有实现PDF的文字在线编辑&#xff0c;是因为在PDF编辑器中实现文字编辑功能是一个相对复杂的过程&#xff0c;因为PDF格式本质上是一个用于呈现…

GPS北斗卫星授时服务器功能是什么?应用是什么?

GPS北斗卫星授时服务器功能是什么&#xff1f;应用是什么&#xff1f; GPS北斗卫星授时服务器功能是什么&#xff1f;应用是什么&#xff1f; 摘 要:首先对计算机网络时间同步相关技术进行了介绍,然后阐述了时间同步技术在现代计算机网络中的应用与发展,最后指出时间同步网络…

【Linux】存储

声明&#xff1a;以下内容均来学习自《Linux就该这么学》一书 Linux系统中的一切文件都是从“根(/)”目录开始的&#xff0c;并按照文件系统层次化标准&#xff08;FHS&#xff09;采用树形结构来存放文件&#xff0c;以及定义了常见目录的用途。此外&#xff0c;Linux系统中的…

一文了解 Conda(包教包会,不会留言)

Conda 使用指南 Conda 是一个开源包管理和环境管理系统&#xff0c;能够以跨平台的方式进行软件包的安装、管理和依赖管理&#xff0c;特别适用于 Python 和 R 语言的环境管理。本文整理了常见 Conda 命令的使用方法。 1. 安装 Miniconda 首先&#xff0c;下载 Miniconda 的安装…

mysql8 主从复制一直失败

问题描述&#xff1a; 开启同步后从服务器一直失败&#xff0c;报错如下&#xff1a; Last_SQL_Error: Coordinator stopped because there were error(s) in the worker(s). The most recent failure being: Worker 1 failed executing transaction ANONYMOUS at source log …

Python+OpenCV系列:GRAY BGR HSV

以下是 GRAY、BGR 和 HSV 三种色彩空间的对比&#xff0c;涵盖了它们的定义、特点、应用场景和优缺点&#xff1a; 1. 定义 GRAY&#xff1a; 灰度图像仅包含亮度信息&#xff0c;每个像素用一个值&#xff08;通常在0到255之间&#xff09;表示亮度&#xff08;黑到白&#x…

调度系统:使用 Apache Airflow 管理和调度 Couchbase SQL 脚本的实际例子

假设场景如下&#xff1a; 每天定时执行一组 Couchbase SQL 脚本&#xff0c;用于数据同步、聚合和清洗。 脚本包括&#xff1a; 同步数据到 Couchbase 集群。 执行数据聚合查询。 清理过期数据。 要求&#xff1a; 支持任务依赖管理。 提供任务失败后的重试机制。 支…

国城杯2024——Curve

相关知识链接&#xff1a;https://tangcuxiaojikuai.xyz/post/187210a7.html #sagemath from Crypto.Util.number import *def add(P, Q):(x1, y1) P(x2, y2) Qx3 (x1*y2 y1*x2) * inverse(1 d*x1*x2*y1*y2, p) % py3 (y1*y2 - a*x1*x2) * inverse(1 - d*x1*x2*y1*y2, p…

第三部分:进阶概念 8.事件处理 --[JavaScript 新手村:开启编程之旅的第一步]

JavaScript 事件处理是 Web 开发中不可或缺的一部分&#xff0c;它允许开发者响应用户的交互行为&#xff08;如点击、键盘输入等&#xff09;或浏览器的行为&#xff08;如页面加载完成&#xff09;。通过事件处理&#xff0c;我们可以使网页更加动态和互动。以下是关于 JavaS…

STM32WB55 FUS烧录

FUS固件下载 Firmware Update Service&#xff08;FUS&#xff09;是一种用于在STM32WB微控制器上更新固件的功能。FUS下载是指通过FUS服务进行固件更新的过程。通过FUS下载&#xff0c;您可以通过无线方式将新的固件加载到STM32WB设备中&#xff0c;而无需使用传统的有线编程方…

BERT模型的实现

本文用 pytorch 实现一个BERT模型。 食用方法&#xff1a; 直接下载完整实现&#xff0c; 在自己本地跑一遍&#xff0c;保证不报错。先完成数据预处理阶段&#xff08;1-4&#xff09;的代码阅读&#xff0c;然后按照如下关键点的描述完成代码的实现。自己看着代码手写后续部…

Qt之第三方库‌QXlsx使用(三)

Qt开发 系列文章 - QXlsx&#xff08;三&#xff09; 目录 前言 一、Qt开源库 二、QXlsx 1.QXlsx介绍 2.QXlsx下载 3.QXlsx移植 4.修改项目文件.pro 三、使用技巧 1.添加头文件 2.写入数据 3.读出数据 总结 前言 Qt第三方控件库是指非Qt官方提供的、用于扩展Qt应用…

框架篇面试

一、Spring框架中的单例bean的安全性 Spring框架中有一个Scope注解&#xff0c;默认的值就是singleton&#xff0c;单例的&#xff1b;因为一般在spring的bean中注入的都是无状态的对象&#xff0c;所以没有线程安全问题。但是如果在bean中定义了可修改的成员变量&#xff0c;…

OpenAI 发布 o1 LLM,推出 ChatGPT Pro

OpenAI正式发布了专为复杂推理而构建的 OpenAI o1大型语言模型(LLM)。 该公司还推出了 ChatGPT Pro&#xff0c;这是一项每月 200 美元的套餐&#xff0c;包括无限制访问 OpenAI o1、o1-mini、GPT-4o 和高级语音对话。 OpenAI o1 从 9 月 12 日起在 ChatGPT 中推出预览版&…

【Linux】文件描述符fd

1.前置预备 文件 内容 属性访问文件之前&#xff0c;都必须先打开他 #include<stdio.h> int main() { FILE* fpfopen("log.txt","w"); if(fpNULL) { perror("fopen"); return 1; } fclose(fp); return 0…

字节高频算法面试题:小于 n 的最大数

问题描述&#xff08;感觉n的位数需要大于等于2&#xff0c;因为n的位数1的话会有点问题&#xff0c;“且无重复”是指nums中存在重复&#xff0c;但是最后返回的小于n最大数是可以重复使用nums中的元素的&#xff09;&#xff1a; 思路&#xff1a; 先对nums倒序排序 暴力回…

nodejs 06.npm的使用以及package.json详解

一.npm(npm | Home)的介绍 npm(Node Package Manager)是一个node.js的包管理工具,允许用户下载安装更新分享node.js包 二.npm相关命令以及作用 1.npm init -y 这条命令主要是当项目中没有package.json这个文件的时候生成package.json这个文件 2.npm i / npm install (包名) 这条…

李飞飞首个“空间智能”模型发布:一张图,生成一个3D世界 | LeetTalk Daily

“LeetTalk Daily”&#xff0c;每日科技前沿&#xff0c;由LeetTools AI精心筛选&#xff0c;为您带来最新鲜、最具洞察力的科技新闻。 在人工智能技术迅速发展的背景下&#xff0c;李飞飞创立的世界实验室于近期发布了首个“空间智能”模型&#xff0c;这一创新成果引发了3D生…