一、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。
|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-releaseCentOS Linux release 7.6.1810 (Core)
3.2 查看零碎内核版本
查看零碎内核版本
[root@ecs-52b7 ~]# uname -r3.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/nodecp -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 -v8.15.0[root@ecs-52b7 ~]# node -vv16.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.json28 directories, 137 files
5.3 设置npm镜像源
- npm设置国内淘宝镜像源
npm config set registry https://registry.npmmirror.com
- 查看npm镜像源
[root@jeven uptime-kuma]# npm get registryhttps://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 300tcp LISTEN 0 511 [::]:3001 [::]:* users:(("node",pid=2209,fd=24))
六、uptime-kuma根本应用
6.1 创立管理员账号
拜访地址:IP:3001
将IP地址替换为本人服务器IP地址,云服务器平安组须要放行3001端口,敞开防火墙和selinux。
6.2 增加监控项
查看本地的3001端口是否监听,填写以下监控项根本信息,保留即可。