Komari_节点监控_完整安装步骤
Komari_节点监控_完整安装步骤

Komari_节点监控_完整安装步骤

Komari 节点探测监控(WxPusher 告警)
完整安装与部署步骤文档(长期保存版)

系统环境:

Linux VPS(Ubuntu / Debian / CentOS 均可)

具备 systemd

能访问 Komari 面板 API

root 权限

本方案功能:

从 Komari API 获取节点 UUID 和名称

通过 TCP 探测判断节点在线 / 离线

Linux / Windows / 网站统一监控

节点状态变化才通知(不刷屏)

WxPusher 微信推送

systemd 托管,SSH 断开仍运行

二、依赖安装

更新系统
apt update -y

安装必要工具
apt install -y curl jq bash

三、准备 WxPusher

准备以下信息:

APP_TOKEN

WX_UID

WxPusher API 地址(固定):
https://wxpusher.zjiecode.com/api/send/message

四、创建监控脚本

创建脚本文件
nano /root/fuwuqi.sh

脚本完整内容如下(可直接粘贴)

#!/bin/bash
UA=”Mozilla/5.0 (Windows NT 10.0; Win64; x64)”

WxPusher 配置

APP_TOKEN=”你的APP_TOKEN”
WX_UID=”你的WX_UID”
WXPUSHER_API=”https://wxpusher.zjiecode.com/api/send/message”

send_push() {
local MSG=”$1″
curl -s -X POST “$WXPUSHER_API”
-H “Content-Type: application/json”
-d “{
“appToken”: “$APP_TOKEN”,
“content”: “$MSG”,
“contentType”: 1,
“uids”: [“$WX_UID”]
}” >/dev/null
}

Komari 节点 API

NODES_API=”https://你的域名/api/nodes”

节点配置文件

TARGET_FILE=”/root/node_targets.conf”

检测周期(秒)

CHECK_INTERVAL=60

状态目录

STATE_DIR=”/root/state”
mkdir -p “$STATE_DIR”

echo “开始监控(节点探测模式)”
send_push “🧪【监控启动】\n\n模式:节点探测\n周期:1 分钟”

TCP 探测函数

check_tcp() {
local HOST_PORT=”$1″
timeout 5 bash -c “>/dev/tcp/${HOST_PORT/://}” 2>/dev/null
}

while true; do
JSON=$(curl -s “$NODES_API”)
[ -z “$JSON” ] && sleep “$CHECK_INTERVAL” && continue

echo “$JSON” | jq -c ‘.data[]’ | while read -r NODE; do
UUID=$(echo “$NODE” | jq -r ‘.uuid’)
NAME=$(echo “$NODE” | jq -r ‘.name’)

LINE=$(grep “^$UUID|” “$TARGET_FILE” 2>/dev/null)
[ -z “$LINE” ] && continue

METHOD=$(echo “$LINE” | cut -d’|’ -f2)
TARGET=$(echo “$LINE” | cut -d’|’ -f3)

STATE_FILE=”$STATE_DIR/$UUID.state”
LAST_STATE=$(cat “$STATE_FILE” 2>/dev/null)

ONLINE=false

case “$METHOD” in
tcp)
check_tcp “$TARGET” && ONLINE=true
;;
esac

if ! $ONLINE; then
# 关键修复:首次离线也要报警
if [ “$LAST_STATE” != “DOWN” ] || [ ! -f “$STATE_FILE” ]; then
send_push “❌【节点离线】\n\n$NAME\n$TARGET”
echo “DOWN” > “$STATE_FILE”
fi
else
if [ “$LAST_STATE” != “OK” ]; then
send_push “✅【节点恢复在线】\n\n$NAME\n$TARGET”
echo “OK” > “$STATE_FILE”
fi
fi
done

sleep “$CHECK_INTERVAL”
done

保存并退出
Ctrl + O → 回车
Ctrl + X

赋予执行权限
chmod +x /root/fuwuqi.sh

五、创建节点配置文件

创建节点配置
nano /root/node_targets.conf

配置格式说明
UUID|探测方式|目标地址

探测方式:

tcp

端口约定:

Linux:22

Windows:3389

网站:443

示例(完整示例需按自己节点填写)

xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx|tcp|1.2.3.4:22

六、创建 systemd 服务

创建服务文件
nano /etc/systemd/system/fuwuqi.service

服务内容

[Unit]
Description=Komari Server Monitor
After=network.target

[Service]
Type=simple
ExecStart=/bin/bash /root/fuwuqi.sh
Restart=always
RestartSec=5

重新加载 systemd
systemctl daemon-reload

设置开机自启
systemctl enable fuwuqi

启动服务
systemctl start fuwuqi

七、运行验证

查看服务状态
systemctl status fuwuqi

状态应为:
Active: active (running)

查看进程
ps aux | grep fuwuqi.sh

应看到:
/bin/bash /root/fuwuqi.sh

查看日志
journalctl -u fuwuqi -f

八、节点维护操作规范

新增节点:

从 Komari 后台获取 UUID

添加一行到 /root/node_targets.conf

systemctl restart fuwuqi

删除节点:

删除配置文件中的对应行

删除状态文件:
rm -f /root/state/UUID.state

systemctl restart fuwuqi

修改 IP / 端口:

仅修改 node_targets.conf

UUID 不变

重启服务

九、重要运维原则

UUID 是唯一身份,名称仅用于展示

删除节点必须同步删除 state 文件

修改配置后一定重启 systemd 服务

首次离线必须报警(已在脚本中修复)

十、当前功能总结

systemd 常驻运行

TCP 真实可达性检测

节点离线 / 恢复通知

WxPusher 推送

支持 20+ 节点稳定运行

资源占用极低,可长期运行

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注