Linux系统之安装uptime-kuma服务器监控面板

2023-09-17 22:36:50

一、uptime-kuma介绍

1.1 uptime-kuma简介

uptime-kuma是一款开源的、多功能的服务器监控面板 。

1.2 uptime-kuma特点

  • 监控 HTTP(s) / TCP / HTTP(s) 关键字 / HTTP(s) Json 查询 / Ping / DNS 记录 / 推送 / Steam 游戏服务器 / Docker 容器的正常运行时间
  • 精美、反应式、快速的 UI/UX
  • 通过 Telegram、Discord、Gotify、Slack、Pushover、电子邮件 (SMTP) 和90 多种通知服务发送通知,请单击此处查看完整列表
  • 20 秒间隔
  • 多种语言
  • 多个状态页面
  • 将状态页面映射到特定域
  • 平图
  • 证书信息
  • 代理支持
  • 2FA 支持

二、本次实践环境介绍

2.1 环境规划

本次实践为个人测试环境,使用服务器华为云ECS云服务器,
操作系统版本为centos7.6。

hostnameIP地址操作系统版本内核版本node.js版本服务器类别
--centos 7.63.10.0-957.el7.x86_64v16.17.0华为云ECS云服务器

2.2 本次实践介绍

1.本次实践部署环境为个人测试环境;
2.在centos7.6环境下部署uptime-kuma服务器监控面板。

2.3 环境要求

  • 系统要求

✅ Major Linux distros such as Debian, Ubuntu, CentOS, Fedora and ArchLinux etc.
✅ Windows 10 (x64), Windows Server 2012 R2 (x64) or higher
❌ Replit / Heroku

  • node.js和npm版本要求
    Node.js 14 / 16 / 18 / 20.4
    npm >= 7

三、检查本地环境

3.1 检查本地操作系统版本

检查本地操作系统版本

[root@ecs-52b7 ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

3.2 检查系统内核版本

检查系统内核版本

[root@ecs-52b7 ~]#  uname -r
3.10.0-1160.92.1.el7.x86_64

3.3 检查系统是否安装Node.js

检查系统是否安装Node.js

[root@ecs-52b7 ~]# node -v
-bash: node: command not found

四、部署Node.js 环境

4.1 下载Node.js安装包

下载Node.js安装包

wget https://nodejs.org/dist/v16.17.0/node-v16.17.0-linux-x64.tar.xz

4.2 解压Node.js安装包

解压Node.js安装包

tar -xvJf node-v16.17.0-linux-x64.tar.xz

在这里插入图片描述

4.3 复制二进制文件

将 /root/node-v16.17.0-linux-x64/bin/下的二进制文件复制到/usr/local/bin下

cp -a /root/node-v16.17.0-linux-x64/bin/node /usr/local/bin/node
cp -a /root/node-v16.17.0-linux-x64/bin/npm /usr/local/bin/npm

4.4 配置环境变量

  • 在/etc/profile文件中,新增以下两行:
export NODE_HOME=/root/node-v16.17.0-linux-x64/bin/
export PATH=$PATH:$NODE_HOME:/usr/local/bin/

  • 使变量生效
source /etc/profile

4.5 查看node版本

查看node版本

[root@ecs-52b7 ~]# npm -v
8.15.0
[root@ecs-52b7 ~]# node -v
v16.17.0

五、安装uptime-kuma

5.1 下载uptime-kuma源码包

  • 下载uptime-kuma源码包
git clone https://github.com/louislam/uptime-kuma.git
  • 查看uptime-kuma源码包
[root@ecs-52b7 uptime-kuma]# tree -L 2 ./
./
├── babel.config.js
├── CNAME
├── CODE_OF_CONDUCT.md
├── config
│   ├── cypress.config.js
│   ├── cypress.frontend.config.js
│   ├── jest-backend.config.js
│   └── vite.config.js
├── CONTRIBUTING.md
├── db
│   ├── kuma.db
│   ├── patch10.sql
│   ├── patch1.sql
│   ├── patch-2fa-invalidate-used-token.sql
│   ├── patch-2fa.sql
│   ├── patch2.sql
│   ├── patch3.sql
│   ├── patch4.sql
│   ├── patch5.sql
│   ├── patch6.sql
│   ├── patch7.sql
│   ├── patch8.sql
│   ├── patch9.sql
│   ├── patch-add-certificate-expiry-status-page.sql
│   ├── patch-add-clickable-status-page-link.sql
│   ├── patch-add-description-monitor.sql
│   ├── patch-add-docker-columns.sql
│   ├── patch-added-json-query.sql
│   ├── patch-added-kafka-producer.sql
│   ├── patch-added-mqtt-monitor.sql
│   ├── patch-add-gamedig-given-port.sql
│   ├── patch-add-gamedig-monitor.sql
│   ├── patch-add-google-analytics-status-page-tag.sql
│   ├── patch-add-invert-keyword.sql
│   ├── patch-add-other-auth.sql
│   ├── patch-add-parent-monitor.sql
│   ├── patch-add-radius-monitor.sql
│   ├── patch-add-retry-interval-monitor.sql
│   ├── patch-add-sqlserver-monitor.sql
│   ├── patch-add-timeout-monitor.sql
│   ├── patch-api-key-table.sql
│   ├── patch-group-table.sql
│   ├── patch-grpc-monitor.sql
│   ├── patch-http-body-encoding.sql
│   ├── patch-http-monitor-method-body-and-headers.sql
│   ├── patch-improve-performance.sql
│   ├── patch-incident-table.sql
│   ├── patch-maintenance-cron.sql
│   ├── patch-maintenance-table2.sql
│   ├── patch-monitor-add-resend-interval.sql
│   ├── patch-monitor-basic-auth.sql
│   ├── patch-monitor-expiry-notification.sql
│   ├── patch-monitor-oauth-cc.sql
│   ├── patch-monitor-push_token.sql
│   ├── patch-monitor-tls.sql
│   ├── patch-notification_sent_history.sql
│   ├── patch-ping-packet-size.sql
│   ├── patch-proxy.sql
│   ├── patch-setting-value-type.sql
│   ├── patch-status-page-footer-css.sql
│   └── patch-status-page.sql
├── docker
│   ├── alpine-base.dockerfile
│   ├── builder-go.dockerfile
│   ├── debian-base.dockerfile
│   ├── docker-compose.yml
│   ├── dockerfile
│   ├── dockerfile-alpine
│   └── etc
├── ecosystem.config.js
├── extra
│   ├── beta
│   ├── build-healthcheck.js
│   ├── checkout-pr.js
│   ├── close-incorrect-issue.js
│   ├── compile-install-script.ps1
│   ├── deploy-demo-server.js
│   ├── download-dist.js
│   ├── entrypoint.sh
│   ├── env2arg.js
│   ├── exe-builder
│   ├── fs-rmSync.js
│   ├── healthcheck.go
│   ├── healthcheck.js
│   ├── install.batsh
│   ├── mark-as-nightly.js
│   ├── press-any-key.js
│   ├── remove-2fa.js
│   ├── reset-password.js
│   ├── simple-dns-server.js
│   ├── simple-mqtt-server.js
│   ├── sort-contributors.js
│   ├── test-docker.js
│   ├── update-language-files
│   ├── update-version.js
│   ├── update-wiki-version.js
│   └── upload-github-release-asset.sh
├── index.html
├── install.sh
├── LICENSE
├── package.json
├── package-lock.json
├── public
│   ├── apple-touch-icon.png
│   ├── apple-touch-icon-precomposed.png
│   ├── favicon.ico
│   ├── icon-192x192.png
│   ├── icon-512x512.png
│   ├── icon.png
│   ├── icon.svg
│   └── manifest.json
├── README.md
├── SECURITY.md
├── server
│   ├── 2fa.js
│   ├── auth.js
│   ├── cacheable-dns-http-agent.js
│   ├── check-version.js
│   ├── client.js
│   ├── config.js
│   ├── database.js
│   ├── docker.js
│   ├── google-analytics.js
│   ├── image-data-uri.js
│   ├── jobs
│   ├── jobs.js
│   ├── model
│   ├── modules
│   ├── monitor-types
│   ├── notification.js
│   ├── notification-providers
│   ├── password-hash.js
│   ├── prometheus.js
│   ├── proxy.js
│   ├── rate-limiter.js
│   ├── routers
│   ├── server.js
│   ├── settings.js
│   ├── socket-handlers
│   ├── uptime-cache-list.js
│   ├── uptime-kuma-server.js
│   └── util-server.js
├── src
│   ├── App.vue
│   ├── assets
│   ├── components
│   ├── i18n.js
│   ├── icon.js
│   ├── lang
│   ├── layouts
│   ├── main.js
│   ├── mixins
│   ├── modules
│   ├── pages
│   ├── router.js
│   ├── util-frontend.js
│   ├── util.js
│   └── util.ts
├── test
│   ├── backend.spec.js
│   ├── cypress
│   ├── prepare-test-server.js
│   ├── test_install_script
│   └── test-radius.dockerfile
└── tsconfig.json

28 directories, 137 files

5.3 设置npm镜像源

  • npm设置国内淘宝镜像源
npm config set registry https://registry.npmmirror.com
  • 查看npm镜像源
[root@jeven uptime-kuma]# npm get registry
https://registry.npmmirror.com/

5.4 安装uptime-kuma

  • 准备项目环境
npm run setup

在这里插入图片描述

  • 执行以下命令
node server/server.js &

在这里插入图片描述

  • 安装 pm2
npm install pm2 -g && pm2 install pm2-logrotate

在这里插入图片描述

  • 启动uptime-kuma服务
pm2 start server/server.js --name uptime-kuma

在这里插入图片描述

5.5 检查uptime-kuma服务状态

  • 检查uptime-kuma服务状态
[root@ecs-52b7 uptime-kuma]# ss -tunlp |grep 300
tcp    LISTEN     0      511    [::]:3001               [::]:*                   users:(("node",pid=2209,fd=24))

六、uptime-kuma基本使用

6.1 创建管理员账号

访问地址:IP:3001
将IP地址替换为自己服务器IP地址,云服务器安全组需要放行3001端口,关闭防火墙和selinux。
在这里插入图片描述

在这里插入图片描述

6.2 添加监控项

检查本地的3001端口是否监听,填写以下监控项基本信息,保存即可。

在这里插入图片描述

在这里插入图片描述

更多推荐

LVS负载均衡群集——LVS-NAT模式搭建和LVS-DR模式搭建

目录lvs工作模式1、NAT模式(VS-NAT)2、直接路由模式(VS-DR)3、IP隧道模式(VS-TUN)LVS调度算法LVS群集类型1)负载均衡群集LB2)高可用群集HA3)高性能运输群集HPCLVS-NAT模式搭建1、NFS部署2、web服务器部署(节点服务器)3、负载调度器配置4、使用客户端测试LVS-DR模

pod调度

定向调度通过标签选择器定向调度到node上此调度方式是硬性现在如果匹配不上会调度失败#在node上加标签klabelnodesdev4-workerzone=north#查看kgetnodedev4-worker--show-labels创建pod的yaml文件#通过标签选择器定向调度到指定nodeapiVersion

java运行以jar包的形式运行和tomcat运行的区别和联系?

Java运行以JAR包形式和Tomcat运行之间存在一些区别和联系:区别:部署方式:JAR包形式的Java应用可以作为独立的进程运行,通过命令行或脚本启动。而Tomcat是一个Web服务器和Servlet容器,需要将应用程序打包成WAR文件并部署到Tomcat中。架构:JAR包形式的应用通常是简单的独立应用,将所有的依

web自动化测试 —— cypress测试框架

一、cypress简介基于JavaScript的前端测试工具可以对浏览器中运行的任何内容进行快速、简单、可靠的测试对每一步操作都支持回看覆盖了测试金字塔模型的所有测试类型【界面测试,集成测试,单元测试】底层协议不采用WebDriver>Cypress官网:https://www.cypress.io/二、cypress

随机抽样一致RANSAC

文章目录RANSAC简介RANSAC算法Ransac在3D视觉中的用法直线拟合单应性矩阵拟合RANSAC的优缺点RANSAC的优点RANSAC的缺点RANSAC在弯曲场景中的缺点:RANSAC适用场景RANSAC简介RANSAC是RANdomSAmpleConsensus的缩写,中文翻译叫随机采样一致。它可以从一组观测

嵌入式开发环境Vscode开发STM32单片机程序

STM32单片机非常强大,大多数教程都是使用keil编译器,keil是收费的而gcc是开源免费的。这里介绍一些使用gcc+vscode开发单片机程序的经验。(这里不解释gcc是什么)。​第一:环境准备gccARM开发者官网https://developer.arm.com/我有个习惯:尽量使用免安装版软件,直接解压到软

华为云云耀云服务器L实例评测-搭建基于hexo的个人博客

1、演示访问地址:演示传送门开头先来一个效果图。2、准备服务器前面有介绍了一下华为云云耀云服务器L实例评测以及简单的配置用法,具体可以看上篇的博客。https://blog.csdn.net/yongqing_/article/details/132867889我这里用的是华为云云耀云服务器L实例,2核2G的配置。然后

Python 数独求解器

文章目录使用回溯算法在Python中解决数独总结Sudoku(数独)是一种基于逻辑的数字填充谜题游戏,最受喜爱的是那些热爱逻辑和推理的人。解决数独谜题有助于提高集中注意力和逻辑思维能力。本文介绍了如何使用Python解决数独谜题。使用回溯算法在Python中解决数独在寻找计算问题的解决方案时,我们经常使用回溯算法。在解

关于安卓SVGA浅尝(一)svgaplayer库的使用

关于安卓SVGA浅尝(一)使用相关链接SVGA官网SVGA-github说明文档背景项目开发,都会和动画打交道,动画的方案选取,就有很多选择。如Json动画,svga动画,gif等等。各有各的优势。目前项目中用到了svga的动画,因此,就有了这一系列的文章。使用(1)引入首先,引入的方式,大致有两种:一种是直接使用远程

玩玩“小藤”开发者套件 Atlas 200I DK A2 之部署智能语音助手

玩玩“小藤”开发者套件Atlas200IDKA2之部署智能语音助手0.背景1.安装flac2.创建自签名证书3.创建虚拟环境4.安装PyTorch5.安装PyTorch插件torch_npu6.安装APEX混合精度模块7.安装依赖库8.使用gradio启动智能语音助手9.访问智能语音助手0.背景总所周知,英伟达的GPU

c++编译过程-各阶段任务

首先,g++在编译源代码时,会经历下面几个阶段-E首先进行预处理,还是源代码格式.i-S编译器生成汇编语言.s-c汇编器生成二进制文件.o-链接库文件,其他代码.out一.预处理预处理主要是1.将#宏定义进行展开,2.将头文件内容替换3.去掉注释二.编译编译主要是将预处理后的代码转换成汇编语言:1.对代码进行语法分析,

热文推荐