如何在 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 Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; preset: enabled)
     Active: active (running) since Wed 2023-10-05 06:26:23 CDT; 1 day 5h ago
       Docs: <https://httpd.apache.org/docs/2.4/>
   Main PID: 661 (apache2)
      Tasks: 10 (limit: 4644)
     Memory: 29.6M
        CPU: 9.372s
     CGroup: /system.slice/apache2.service

3.安装 NodeJS

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

sudo apt install nodejs -y

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

node -v

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

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

sudo apt install npm -y

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

npm -v

root@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.conf

sudo a2enmod rewrite

sudo a2enmod proxy

sudo a2enmod proxy_http

sudo 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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Idea实现定时任务

定时任务 什么是定时任务&#xff1f; 可以自动在项目中根据设定的时长定期执行对应的操作 实现方式 Spring 3.0 版本之后自带定时任务&#xff0c;提供了EnableScheduling注解和Scheduled注解来实现定时任务功能。 使用SpringBoot创建定时任务非常简单&#xff0c;目前主要…

Spark实训

实训目的: 介绍本实训的基本内容,描述知识目标、,以及本实训的预期效果等。 1、知识目标 (1)了解spark概念、基础知识、spark处理的全周期,了解spark技术是新时代对人才的新要求。 (2)掌握Linux、hadoop、spark、hive集群环境的搭建、HDFS分布文件系统的基础知识与应用…

LoViT: 用于手术阶段识别的长视频Transformer|文献速递-生成式模型与transformer在医学影像中的应用

Title 题目 LoViT: Long Video Transformer for surgical phase recognition LoViT: 用于手术阶段识别的长视频Transformer 01 文献速递介绍 快速发展的手术数据科学&#xff08;SDS&#xff09;领域旨在通过先进利用手术室&#xff08;OR&#xff09;内医疗设备采集的数据…

Microi 吾码:后端开发的创新引擎与代码艺术

目录 一、引言 二、Microi 吾码后端架构概述 三、Microi 吾码在数据处理与优化方面的应用 四、Microi 吾码与外部服务的集成 五、Microi 吾码在安全性方面的考量与实现 六、Microi 吾码的性能监控与调优 七、总结 一、引言 在当今数字化浪潮汹涌澎湃的时代&#xff0c;软…

Day2——需求分析与设计

教师端签到应用软件的需求分析&#xff1b; 产品经理如何写好产品需求文档&#xff08;附模板&#xff09; 需求分析是软件开发过程中的关键步骤&#xff0c;它确保了开发的软件能够满足用户的需求。以下是进行需求分析的具体步骤&#xff1a; 1. 确定分析目标 明确教师端签到…

TypeScript进阶

Typescript进阶 基础知识 JavaScript 的核心特点就是灵活&#xff0c;但随着项目规模的增大&#xff0c;灵活反而增加开发者的心智负担。例如在代码中一个变量可以被赋予字符串、布尔、数字、甚至是函数&#xff0c;这样就充满了不确定性。而且这些不确定性可能需要在代码运行…

Unity性能优化---动态网格组合(二)

在上一篇中&#xff0c;组合的是同一个材质球的网格&#xff0c;如果其中有不一样的材质球会发生什么&#xff1f;如下图&#xff1a; 将场景中的一个物体替换为不同的材质球 运行之后&#xff0c;就变成了相同的材质。 要实现组合不同材质的网格步骤如下&#xff1a; 在父物体…

【C++】求第二大的数详细解析

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;题目描述&#x1f4af;输入描述&#x1f4af;解题思路分析1. 题目核心要求2. 代码实现与解析3. 核心逻辑逐步解析定义并初始化变量遍历并处理输入数据更新最大值与次大值输…

修改git_bash命令行默认显示

1 背景 Git Bash默认显示用户名、主机、全路径&#xff0c;对于截图而言&#xff0c;会泄露一些隐私。 想办法去掉这些信息。 2 代码内容 # Shows Git branch name in prompt. parse_git_branch() {git branch 2> /dev/null | sed -e /^[^*]/d -e s/* \(.*\)/ (\1)/ } # …

Windwos Hyper-v 虚拟机SSH连接失败的问题

Windwos Hyper-v 虚拟机SSH连接失败的问题 一、问题现象&#xff1a; hyper-v里的虚拟机和宿主机都能正常访问外网&#xff0c;虚拟机也做了静态IP设置&#xff0c;但是宿主机就是无法通过SSH连接到虚拟机。 二、解决办法&#xff1a; 1、打开windows的高级网络设置&#x…

android studio创建虚拟机注意事项

emulator 启动模拟器的时候&#xff0c;可以用 AVD 界面&#xff0c;也可以用命令行启动&#xff0c;但命令行启 动的时候要注意&#xff0c;系统有两个 emulator.exe &#xff0c;建议使用 emulator 目录下的那个&#xff01;&#xff01; 创建类型为google APIs的虚拟机可从…

Spring Boot中实现JPA多数据源配置指南

本文还有配套的精品资源&#xff0c;点击获取 简介&#xff1a;本文详细介绍了在Spring Boot项目中配置和使用JPA进行多数据源管理的步骤。从引入依赖开始&#xff0c;到配置数据源、创建DataSource bean、定义实体和Repository&#xff0c;最后到配置事务管理器和使用多数据…

CSS学习记录04

CSS边框 CSS border 属性指定元素边框的样式、宽度和颜色。border-style 属性指定要显示的边框类型。dotted - 定义点线边框dashed - 定义虚线边框solid - 定义实线边框double - 定义双边框groove - 定义3D坡口边框&#xff0c;效果取决于border-color值ridge - 定义3D脊线边框…

【ArcGISPro】训练自己的深度学习模型并使用

本教程主要训练的是识别汽车的对象检测模型 所使用的工具如下(导出训练数据进行深度学习、训练深度学习模型、使用深度学习检测对象) 1.准备训练数据 1.1新建面矢量,构建检测对象 右键地理数据库->新建->要素类 选择面类型 1.2点击编辑窗口进行勾画汽车检测对象…

芝法酱学习笔记(1.3)——SpringBoot+mybatis plus+atomikos实现多数据源事务

一、前言 1.1 业务需求 之前我们在讲解注册和登录的时候&#xff0c;有一个重要的技术点忽略了过去。那就是多数据源的事务问题。 按照我们的业务需求&#xff0c;monitor服务可能涉及同时对监控中心数据库和企业中心数据库进行操作&#xff0c;而我们希望这样的操作在一个事…

Centos服务器如何访问windows的共享目录

CentOS服务器访问Windows的共享目录通常需要使用SMB/CIFS&#xff08;Server Message Block/Common Internet File System&#xff09;协议。以下是详细的步骤&#xff1a; 1、Windows端设置共享文件夹 1&#xff09;右键要共享的文件夹&#xff0c;点击属性-->在“共享”选…

JVM, JRE 和 JDK

JRE: Java Runtime Environment, Java 运行环境. JDK: Java Development Kit, Java 开发工具包. JRE JVM 核心类库 运行工具 JDK JVM 核心类库 开发工具 JVM: Java Virtual Machine, Java 虚拟机. 核心类库: Java 已经写好的东西, 直接拿来用即可. 开发工具: 包括 …

图数据库 | 13、图数据库架构设计——高性能计算架构再续

书接上文 图数据库 | 12、图数据库架构设计——高性能计算架构​​​​​​。昨天老夫就图数据库架构设计中的 实时图计算系统架构、图数据库模式与数据模型、核心引擎如何处理不同的数据类型、图计算引擎中的数据结构 这四块内容进行了展开讲解&#xff0c;今儿继续往下、往深…

Linux Cgroup学习笔记

文章目录 Cgroup(Control Group)引言简介Cgroup v1通用接口文件blkio子系统cpu子系统cpuacct子系统cpuset子系统devices子系统freezer子系统hugetlb子系统memory子系统net_cls子系统net_prio子系统perf_event子系统pids子系统misc子系统 Cgroup V2基础操作组织进程和线程popula…

R语言 | 峰峦图 / 山脊图

目的&#xff1a;为展示不同数据分布的差异。 1. ggplot2 实现 # 准备数据 datmtcars[, c("mpg", "cyl")] colnames(dat)c("value", "type") head(dat) # value type #Mazda RX4 21.0 6 #Mazda RX4 Wag …