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

简介: 【5月更文挑战第12天】Linux系统之安装uptime-kuma服务器监控面板

一、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 支持

1.3 使用场景

Uptime Kuma 是一款流行的开源监控工具,它允许用户监控网站、API、TCP 端口等的可用性和响应时间。它的易用性、自托管性以及丰富的功能使其在多种场景下都非常有用。以下是使用 Uptime Kuma 的一些典型场景:

  1. 网站监控:对于网站管理员或所有者来说,可以使用 Uptime Kuma 来确保网站始终在线并快速响应。一旦检测到网站无法访问或加载缓慢,系统会立即通过电子邮件、Telegram、Discord 等方式发送告警。

  2. API 监控:开发人员和 DevOps 团队可以利用 Uptime Kuma 来监控关键 API 的状态,确保服务间通信顺畅无阻。这对于依赖外部API或者提供API服务的团队尤为重要。

  3. 服务器与基础设施监控:IT 运维团队可以用它来监控服务器的运行状态,包括CPU负载、内存使用情况、磁盘空间等,以及网络设备如路由器、交换机的连通性,确保整个基础设施的稳定运行。

  4. 应用程序性能监控:对于Web应用或移动应用开发者,可以通过设置监控项来跟踪应用的响应时间和可用性,及时发现并解决性能瓶颈或故障。

  5. 电子商务与在线服务:电商平台、在线支付系统、SaaS 提供商等需要保证服务高度可用的企业,使用 Uptime Kuma 可以迅速响应任何可能影响用户体验的中断,减少业务损失。

  6. 内部系统监控:企业内部的IT系统,如CRM、ERP、内部门户等,通过监控可以确保员工能够高效工作,避免因系统故障导致的生产率下降。

  7. 数据中心和云服务监控:无论是在私有云、公有云还是混合云环境中,Uptime Kuma 都能帮助监控虚拟机、容器、数据库等组件的健康状况,支持多云环境的统一监控管理。

  8. 灾备与故障转移策略验证:通过设置监控和相应的阈值,可以验证备份系统或故障转移机制是否按预期工作,在主系统发生故障时能够迅速接管服务。

二、本次实践环境介绍

2.1 环境规划

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

hostname IP地址 操作系统版本 内核版本 node.js版本 服务器类别
- - centos 7.6 3.10.0-957.el7.x86_64 v16.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端口是否监听,填写以下监控项基本信息,保存即可。

在这里插入图片描述

在这里插入图片描述

七、总结

Uptime Kuma作为一款开源服务器监控工具,以其轻量级、高度可定制化和用户友好的界面脱颖而出。它不仅支持多样化的监控类型,如HTTP(S)、Ping、Port等,还提供了即时的告警通知功能,确保你能迅速响应任何服务中断。配置过程直观简便,且支持多种告警渠道,极大地提升了运维效率。自托管特性让数据安全更有保障,而活跃的社区和持续的更新更是为项目的可靠性和未来扩展性加分。Uptime Kuma是一款高效、灵活且值得信赖的监控解决方案,为维护线上服务稳定性提供了强大助力。

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4天前
|
存储 缓存 监控
Linux缓存管理:如何安全地清理系统缓存
在Linux系统中,内存管理至关重要。本文详细介绍了如何安全地清理系统缓存,特别是通过使用`/proc/sys/vm/drop_caches`接口。内容包括清理缓存的原因、步骤、注意事项和最佳实践,帮助你在必要时优化系统性能。
112 78
|
8天前
|
存储 人工智能 自然语言处理
ChatMCP:基于 MCP 协议开发的 AI 聊天客户端,支持多语言和自动化安装 MCP 服务器
ChatMCP 是一款基于模型上下文协议(MCP)的 AI 聊天客户端,支持多语言和自动化安装。它能够与多种大型语言模型(LLM)如 OpenAI、Claude 和 OLLama 等进行交互,具备自动化安装 MCP 服务器、SSE 传输支持、自动选择服务器、聊天记录管理等功能。
72 15
ChatMCP:基于 MCP 协议开发的 AI 聊天客户端,支持多语言和自动化安装 MCP 服务器
|
8天前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
39 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
4天前
|
存储 监控 Linux
嵌入式Linux系统编程 — 5.3 times、clock函数获取进程时间
在嵌入式Linux系统编程中,`times`和 `clock`函数是获取进程时间的两个重要工具。`times`函数提供了更详细的进程和子进程时间信息,而 `clock`函数则提供了更简单的处理器时间获取方法。根据具体需求选择合适的函数,可以更有效地进行性能分析和资源管理。通过本文的介绍,希望能帮助您更好地理解和使用这两个函数,提高嵌入式系统编程的效率和效果。
43 13
|
20天前
|
安全 云计算
服务器系统资源不足怎么办
服务器系统资源不足怎么办
27 4
|
26天前
|
弹性计算 监控 数据库
制造企业ERP系统迁移至阿里云ECS的实例,详细介绍了从需求分析、数据迁移、应用部署、网络配置到性能优化的全过程
本文通过一个制造企业ERP系统迁移至阿里云ECS的实例,详细介绍了从需求分析、数据迁移、应用部署、网络配置到性能优化的全过程,展示了企业级应用上云的实践方法与显著优势,包括弹性计算资源、高可靠性、数据安全及降低维护成本等,为企业数字化转型提供参考。
52 5
W9
|
25天前
|
运维 关系型数据库 MySQL
轻松管理Linux服务器的5个优秀管理面板
Websoft9 应用管理平台,github 2k star 开源软件,既有200+的优秀开源软件商店,一键安装。又有可视化的Linux管理面板,文件、数据库、ssl证书方便快捷管理。
W9
75 1
|
4天前
|
Ubuntu Linux C++
Win10系统上直接使用linux子系统教程(仅需五步!超简单,快速上手)
本文介绍了如何在Windows 10上安装并使用Linux子系统。首先,通过应用商店安装Windows Terminal和Linux系统(如Ubuntu)。接着,在控制面板中启用“适用于Linux的Windows子系统”并重启电脑。最后,在Windows Terminal中选择安装的Linux系统即可开始使用。文中还提供了注意事项和进一步配置的链接。
17 0
|
15天前
|
存储 Oracle 安全
服务器数据恢复—LINUX系统删除/格式化的数据恢复流程
Linux操作系统是世界上流行的操作系统之一,被广泛用于服务器、个人电脑、移动设备和嵌入式系统。Linux系统下数据被误删除或者误格式化的问题非常普遍。下面北亚企安数据恢复工程师简单聊一下基于linux的文件系统(EXT2/EXT3/EXT4/Reiserfs/Xfs) 下删除或者格式化的数据恢复流程和可行性。
|
27天前
|
安全 Linux API
Linux服务器安全
人们常误认为服务器因存于数据中心且数据持续使用而无需加密。然而,当驱动器需维修或处理时,加密显得尤为重要,以防止数据泄露。Linux虽有dm-crypt和LUKS等内置加密技术,但在集中管理、根卷加密及合规性等方面仍存不足。企业应选择具备强大验证、简单加密擦除及集中管理等功能的解决方案,以弥补这些缺口。
24 0
下一篇
DataWorks