【保姆级教程】Komari探针从部署到美化

前言

1. 什么是探针

探针(probe),在剑桥词典里的解释为:a device that is put inside something to test or record information。翻译过来就是:置于某物内部以测试或记录信息的装置。那么对于VPS而言,探针就是通过在系统中不断探测以及记录设备信息的一种内置程序,并且可以通过网页实时展示出来。

如图所示:

探针会探测以及记录VPS的各种信息,比如图中所示的:

  • 服务器位置(左上角旗帜)
  • Linux系统
  • CPU使用率
  • 内存使用率
  • 硬盘空间使用率
  • 流量使用情况
  • 网络速度
  • 系统运行时间

2. 为什么要用探针

那么我们为什么要使用探针呢?我觉得有如下几个原因:

  • 获取系统信息与可视化

根据认知心理学和神经科学的原理(具体原理就不详述了),人脑处理图像信息的速度比处理纯文本要快得多。因此,将VPS各种需要阅读的文字类信息,尽可能转为直观的图像类信息,这无疑减少了获取信息的时间,并且无需记忆和输入任何命令。

  • 资源规划和提升

通过观察探针的数据,了解VPS的系统资源,如CPU、内存、硬盘等的实际消耗情况,可以为是否需要升级VPS配置提供数据支撑。

  • 多VPS管理

对于拥有多个VPS的用户,使用探针可以建立一个可视化的监控面板,只需要访问一个页面,就能同时看到所有VPS的状态,极大地提升管理效率。


以上内容与komari安装无关,仅是作为补充知识。具体教程请看下文。


一、komari介绍

官方介绍:Komari是一款轻量级的自托管服务器监控工具,旨在提供简单、高效的服务器性能监控解决方案。它支持通过Web界面查看服务器状态,并通过轻量级Agent收集数据。

特性:

  • 轻量高效:低资源占用,适合各种规模的服务器。
  • 自托管:完全掌控数据隐私,部署简单。
  • Web 界面:直观的监控仪表盘,易于使用。

开源地址:GitHub – komari-monitor/komari: A simple server monitor tool.

作为一款自托管服务器监控工具(探针),我觉得komari做到了轻量美观的完美平衡,甚至还是开源!这还要啥自行车呢?!我们马上开始安装!

二、安装部署

安装部署分为两个部分,也就是主控端(面板机)和被控端(探针机)。主控端只需要安装一个就可以了,被控端需要在每个你需要监控的机器上部署。

1.面板机安装部署【多种方法,选用自己喜欢的即可】

1.1 容器云部署

对于主控机而言,稳定是很重要的。因此选用一些容器云来部署面板机是个很不错的方案。这里选用komari文档里提供的雨云作为演示,当然你如果想选用其他的容器云(比如Claw Run)也是可以的。

【保姆级教程】Komari探针从部署到美化

在总览页进入云应用

搜索komari并点击安装

【保姆级教程】Komari探针从部署到美化

或者注册登录后直接通过URL访问

【保姆级教程】Komari探针从部署到美化

Tip

默认配置基本可以不用动,但是建议选中国香港,因为国际互联延迟低且免备案。

由于我没有充值水滴,后面的步骤就不演示啦。

1.2 使用一键安装脚本

1.2.1 安装

首先通过SSH工具连接VPS,并下载komari一键安装脚本

curl -fsSL https://raw.githubusercontent.com/komari-monitor/komari/main/install-komari.sh -o install-komari.sh

赋予komari一键安装脚本权限

chmod +x install-komari.sh

执行komari一键安装脚本

./install-komari.sh

会出现以下图示。

【保姆级教程】Komari探针从部署到美化

选择1)安装komari 后,脚本会自动进行安装

Success

通过访问 http://<your_server_ip>:25774,即可访问探针。

1.2.2 升级

执行komari一键安装脚本

./install-komari.sh

选择2)升级komari 后,脚本会自动进行升级

【保姆级教程】Komari探针从部署到美化

1.2.3 卸载

执行komari一键安装脚本

./install-komari.sh

选择3)卸载komari 后,脚本会自动进行卸载

【保姆级教程】Komari探针从部署到美化

1.3 Docker 部署

1.3.1 安装

创建komari的数据目录并进入

mkdir -p ./komari/data && cd ./komari

运行 Docker 容器

docker run -d \
-p 25774:25774 \
-v ./data:/app/data \
--name komari \
ghcr.io/komari-monitor/komari:latest

查看默认账号和密码

docker logs komari

【保姆级教程】Komari探针从部署到美化

Success

通过访问 http://<your_server_ip>:25774,即可访问探针。

1.3.2 升级

拉取最新镜像

docker pull ghcr.io/komari-monitor/komari:latest

再次创建容器

docker run -d \
-p 25774:25774 \
-v ./data:/app/data \
--name komari \
ghcr.io/komari-monitor/komari:latest

1.3.3 卸载

停止容器

docker stop komari

删除容器

docker rm komari

1.4 二进制文件部署

1.4.1 安装

访问komari的GitHub Release 页面 下载适用于你操作系统的最新二进制文件。

以AMD架构为例子:

下载komari的二进制文件

curl -L -o komari https://github.com/komari-monitor/komari/releases/download/1.0.9/komari-linux-amd64

或者

wget -O komari https://github.com/komari-monitor/komari/releases/download/1.0.9/komari-linux-amd64

赋予权限

chmod +x komari

测试是否能成功运行 Komari

./komari server -l 0.0.0.0:25774

成功则会出现如下提示:

【保姆级教程】Komari探针从部署到美化

但我们需要持久化后台运行,因此需要创建服务文件(也可以使用诸如nohup、screen或者tmux的方式实现)。

先ctrl+c退出komari的执行

创建服务文件

nano /etc/systemd/system/komari.service

添加以下内容并保存

[Unit]
Description=Komari Server
After=network.target
​
[Service]
Type=simple
User=root
WorkingDirectory=/root/komari
ExecStart=/root/komari/komari server -l 0.0.0.0:25774
Restart=always
RestartSec=5
​
[Install]
WantedBy=multi-user.target

启用并启动服务

systemctl daemon-reload
systemctl enable komari
systemctl start komari

查看是否成功运行

systemctl status komari

 

查看账号密码

journalctl -u komari
Success

通过访问访问 http://<your_server_ip>:25774,即可访问探针。

1.4.2 升级

先停止服务

systemctl stop komari

重新下载最新的二进制文件

curl -L -o komari https://github.com/komari-monitor/komari/releases/download/<新版本号>/komari-linux-amd64

或者

wget -O komari https://github.com/komari-monitor/komari/releases/download/<新版本号>/komari-linux-amd64

重新赋予权限

chmod +x komari

重新启动komari

systemctl restart komari

1.4.3 卸载

停用并禁止komari

systemctl stop komari
systemctl disable komari

删除systemd服务配置文件

rm /etc/systemd/system/komari.service
systemctl daemon-reload

删除komari二进制文件及其所在目录

rm -rf /root/komari

2.域名解析以及SSL证书申请

在探针机安装部署之前,我们需要将域名指向到VPS的公网IP地址,并通过Nginx将探针服务配置到相关网址上。同时,为了安全起见,我们需要申请SSL证书,用于在浏览器和VPS之间建立加密连接,也就是将HTTP升级为HTTPS。

下面我以大善人Cloudflare平台为例,进行演示:

2.1 域名解析

添加A解析

2.2 SSL证书申请

安装Nginx

apt install nginx

设置开机自启

sudo systemctl start nginx
sudo systemctl enable nginx

配置Nginx

创建komari的Nginx

nano /etc/nginx/sites-available/komari

添加以下内容

server {
listen 80;
server_name tz.linux.do; # 你设置的A解析的域名
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name tz.linux.do; # 你设置的A解析的域名# SSL证书配置
ssl_certificate /opt/komari/server.cer; # 替换为你的证书路径
ssl_certificate_key /opt/komari/server.key; # 替换为你的私钥路径
​
location / {
proxy_pass http://127.0.0.1:25774;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
​
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
​
# 禁用代理缓冲
proxy_buffering off;
​
# 允许大文件上传(50M)
client_max_body_size 50M;
}
}

软链接Nginx配置以应用

ln -s /etc/nginx/sites-available/komari /etc/nginx/sites-enabled/

测试配置

nginx -t

重启Nginx

systemctl reload nginx

申请证书

这里使用acme.sh申请SSL证书,这里以tz.gk.do为例。

面板机上安装acme.sh

curl https://get.acme.sh | sh -s email=你的邮箱

【保姆级教程】Komari探针从部署到美化

创建一个shell的alias,以便使用

alias acme.sh=~/.acme.sh/acme.sh

切换CA机构

acme.sh --set-default-ca --server letsencrypt

申请证书,按实际情况修改面板域名

acme.sh --issue -d tz.gk.do -k ec-256 --webroot /var/www/html

【保姆级教程】Komari探针从部署到美化

复制生成的证书到文件夹

cp /root/.acme.sh/tz.linux.do_ecc/tz.gk.do.cer /opt/komari/server.cer
cp /root/.acme.sh/tz.linux.do_ecc/tz.gk.do.key /opt/komari/server.key

安装证书,按实际情况修改面板域名和证书路径

acme.sh --install-cert -d tz.gk.do --ecc --key-file /opt/komari/server.key --fullchain-file /opt/komari/server.cer --reloadcmd "systemctl force-reload nginx"

【保姆级教程】Komari探针从部署到美化

Success

现在就可以通过HTTPS访问komari啦~

3.探针机安装部署

探针机安装就非常简单啦,几乎可以说是一键安装

点击添加节点,输入节点名称

【保姆级教程】Komari探针从部署到美化

点击下载按钮获取安装命令

复制安装命令

在探针机中执行上一步复制的命令

【保姆级教程】Komari探针从部署到美化

Success

这样在首页就可以看到探针机的信息啦

三、页面美化

1. 主题美化

对于新手而言,要写一个探针主题显然是不容易的,因此,我们直接选用大佬的主题。
主题开源地址:GitHub – svnmoe/komari-web-mochi: Another Komari Web UI Mochi
下载压缩包

【保姆级教程】Komari探针从部署到美化

在首页点击后台设置

【保姆级教程】Komari探针从部署到美化

点击设置-主题管理-上传主题

【保姆级教程】Komari探针从部署到美化

上传后点击⚙️进行应用

【保姆级教程】Komari探针从部署到美化

这样就可以在首页看到效果啦,并且有多种样式可选

【保姆级教程】Komari探针从部署到美化

2. CSS美化

在设置-站点-自定义头部里面添加以下代码

Note

需要自己选择需要的特效以及修改相应的信息

<script src="https://cdn.jsdelivr.net/gh/mocchen/cssmeihua/js/aixin.js"></script> <!-- 点击爱心特效 -->
<script src="https://cdn.jsdelivr.net/gh/mocchen/cssmeihua/js/yinghua.js"></script> <!-- 页面樱花效果 -->
<span class="js-cursor-container"></span>
<script src="https://cdn.jsdelivr.net/gh/mocchen/cssmeihua/js/xiaoxingxing.js"></script><!-- 小星星效果 -->
<script>
// *** 重要:请在这里修改为你网站的实际上线日期和时间! ***
// 格式为 'YYYY-MM-DDTHH:mm:ssZ'。
// 例如:'2023-01-01T08:00:00Z' 表示 2023年1月1日早上8点(UTC时间)。
// 如果你知道的是本地时间,也可以省略 'Z',例如:'2023-01-01T08:00:00'
const launchDate = new Date('2025-05-20T08:00:00');
​
// 网站运行时间显示部分的 HTML 结构
const uptimeHtmlContent = `
<div id="dynamic-uptime-display">
<span class="uptime-text">本站已运行:</span>
<span class="uptime-duration" id="days">0</span><span class="uptime-unit">天</span>
<span class="uptime-duration" id="hours">0</span><span class="uptime-unit">小时</span>
<span class="uptime-duration" id="minutes">0</span><span class="uptime-unit">分钟</span>
<span class="uptime-duration" id="seconds">0</span><span class="uptime-unit">秒</span>
</div>
`;
​
// 网站运行时间显示部分的 CSS 样式 (请根据你的网站风格进行微调!)
const uptimeCssContent = `
/* 网站运行时间显示容器的样式 - 模仿磨砂玻璃效果 */
#dynamic-uptime-display {
font-family: 'Segoe UI', sans-serif; /* 字体 */
font-size: 0.95em; /* 基础字号,可调 */
color: #333; /* 文字颜色,可调 */

/* === 磨砂效果关键样式,请根据你的网站卡片或底部元素进行微调 === */
background-color: rgba(255, 255, 255, 0.7); /* 半透明背景色,调整最后一个值 (0.0-1.0) 控制透明度 */
border: 1px solid rgba(255, 255, 255, 0.3); /* 半透明边框,调整颜色和透明度 */
border-radius: 8px; /* 圆角大小,与网站卡片保持一致 */
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); /* 阴影效果,调整参数 */

/* 模糊效果 (部分旧浏览器可能不支持) */
-webkit-backdrop-filter: blur(8px); /* Safari 和 Chrome */
backdrop-filter: blur(8px); /* 标准写法,调整模糊程度 */
/* === 磨砂效果关键样式结束 === */
​
/* 居中显示 */
display: block; /* 确保是块级元素 */
margin: 20px auto 20px auto; /* 上下外边距20px,左右自动居中 */
width: fit-content; /* 宽度适应内容 */
max-width: 95%; /* 防止在小屏幕上溢出 */
text-align: center; /* 内部文字居中 */
padding: 10px 15px; /* 内边距 */
}
​
/* "本站已运行" 文本样式 */
#dynamic-uptime-display .uptime-text {
margin-right: 5px;
color: #555; /* 可调 */
}
​
/* 显示时间数字(天、小时、分钟、秒)的样式 */
#dynamic-uptime-display .uptime-duration {
font-size: 1.1em; /* 可调 */
font-weight: bold;
color: #007bff; /* 醒目颜色,可调 */
margin: 0 3px;
}
​
/* 时间单位(天、小时、分钟、秒)的样式 */
#dynamic-uptime-display .uptime-unit {
font-size: 0.85em; /* 可调 */
color: #777; /* 可调 */
margin-right: 8px;
}
​
/* 针对手机等小屏幕设备的响应式调整 */
@media (max-width: 768px) {
#dynamic-uptime-display {
font-size: 0.85em;
padding: 8px 12px;
margin: 15px auto; /* 手机端调整外边距 */
border-radius: 6px; /* 手机端圆角可略小 */
}
#dynamic-uptime-display .uptime-duration {
font-size: 1em;
}
#dynamic-uptime-display .uptime-unit {
font-size: 0.75em;
}
}
`;
​
// 这个函数用来计算并更新显示的时间
function updateUptime() {
const now = new Date();
const diff = now - launchDate;
​
if (diff < 0) {
document.getElementById('days').textContent = 0;
document.getElementById('hours').textContent = 0;
document.getElementById('minutes').textContent = 0;
document.getElementById('seconds').textContent = 0;
return;
}
​
const seconds = Math.floor(diff / 1000);
const minutes = Math.floor(seconds / 60);
const hours = Math.floor(minutes / 60);
const days = Math.floor(hours / 24);
​
document.getElementById('days').textContent = days;
document.getElementById('hours').textContent = hours % 24;
document.getElementById('minutes').textContent = minutes % 60;
document.getElementById('seconds').textContent = seconds % 60;
}
​
// 动态注入 HTML 和 CSS,并启动计时器
function injectUptimeDisplay() {
// 注入 CSS
const styleTag = document.createElement('style');
styleTag.textContent = uptimeCssContent;
document.head.appendChild(styleTag);
​
// 尝试找到主要内容容器 (例如包含监控卡片的区域)
let mainContentContainer = document.querySelector('.container.dashboard') || // Uptime Kuma 仪表板容器
document.querySelector('.container.main') || // Uptime Kuma 主容器
document.querySelector('.container') || // 通用容器
document.querySelector('.dashboard-body') || // Nezha Probe 可能的仪表板体
document.querySelector('main'); // HTML5 main 标签
​
// 如果以上容器都找不到,则尝试找到页脚元素
if (!mainContentContainer) {
mainContentContainer = document.querySelector('footer'); // 标准 footer 标签
}
​
// 如果还是找不到,作为最后手段,插入到 body 的末尾
if (!mainContentContainer) {
mainContentContainer = document.body;
console.warn('未找到合适的仪表板/主内容/页脚容器,网站运行时间将插入到 body 底部。');
}
​
// 创建一个临时的 div 来解析 HTML 字符串
const tempDiv = document.createElement('div');
tempDiv.innerHTML = uptimeHtmlContent;
const uptimeElement = tempDiv.firstElementChild; // 获取实际的 uptime div
​
// 将运行时间显示插入到目标容器的末尾
mainContentContainer.appendChild(uptimeElement);
console.log('网站运行时间已插入并尝试应用磨砂效果。');
​
// 启动运行时间计时器
updateUptime();
setInterval(updateUptime, 1000);
}
​
// 确保在 DOM 完全加载后再执行注入操作
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', injectUptimeDisplay);
} else {
injectUptimeDisplay();
}
</script>

效果如下:

【保姆级教程】Komari探针从部署到美化

免责声明  

⚠️ 本站的资源均来自于网络或用户网盘投稿,仅作个人学习使用,其版权均归原作者所有。
⚠️ 我们非常重视版权问题,如有侵权请发邮件至mqd#live.com,我们会第一时间处理,敬请谅解!

给TA打赏
共{{data.count}}人
人已打赏
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索