[开源]给Komari写了个负载警报规则自动管理脚本,CPU/RAM/Disk自动分组,还能记住手动排除

TonyStarkJr2012 2026-08-19 19:31 1

[开源] 给 Komari 写了个负载规则自动管理脚本,CPU / RAM / Disk 自动分组,还能记住手动排除


最近一直在折腾 Komari,机器多了以后发现负载通知规则维护起来有点麻烦。


比如新加一台 VPS,需要手动把它加入 CPU / RAM / Disk 规则;机器删掉、扩容或者调整配置以后,又可能需要重新处理。


所以自己写了一个小工具:


🚀 Komari Auto Load Rules


目前已经整理成 GitHub 项目,并发布了第一个稳定版本:


v3.1.1




主要功能


目前实现了:



  • 新增 VPS 自动加入负载监控

  • 删除 VPS 自动清理

  • 🏷️ VPS 改名不影响规则关联

  • ️ CPU / RAM / Disk 规则自动维护

  • 🧠 根据 RAM / Disk 容量自动分组

  • 🔄 VPS 扩容 RAM / Disk 后自动重新分组

  • 🎛️ CPU / RAM / Disk 可以分别人工取消监控

  • 💾 自动记忆人工排除状态,不会下一轮又自动加回来

  • ️ 后台重新勾选后,可以自动识别为人工恢复

  • 🆕 支持 0 VPS 状态安装,后续新增节点自动接管

  • 🔍 自动识别 Komari 服务、数据库和监听端口

  • 🔑 API Key 本地保存并自动验证

  • ️ systemd Timer 默认每 10 分钟自动同步




🎛️ 人工排除 / 恢复


其中我自己比较需要的一个功能就是 人工排除记忆


比如有 24 台 VPS,其中某一台我不想监控 RAM,只需要在 Komari 后台把这台机器从 RAM 规则里取消。


脚本下一轮同步会识别:


人工排除:CPU 0 台 / RAM 1 台 / Disk 0 台

以后自动同步也不会擅自把它重新加入 RAM 规则。


但是:



  • CPU 仍然正常监控

  • Disk 仍然正常监控

  • 只有 RAM 被排除


如果哪天又想恢复 RAM 通知,直接在 Komari 后台重新勾选这台 VPS。


脚本下一轮会自动识别:


检测到人工恢复 RAM: VPS名称

然后根据这台 VPS 当前的 RAM 容量,重新放入正确的 RAM 规则。


也就是说:


CPU / RAM / Disk 三项监控状态相互独立,可以分别取消、分别记忆、分别恢复。




📊 默认负载规则

















































监控项 VPS 条件 阈值 Ratio Interval
CPU 全部 VPS 90% 0.8 10 分钟
RAM ≥ 1.5 GB 90% 0.8 10 分钟
RAM < 1.5 GB 95% 0.8 10 分钟
Disk ≥ 20 GB 90% 0.9 60 分钟
Disk < 20 GB 85% 0.9 60 分钟

小内存和小硬盘 VPS 会自动使用单独的一套阈值。




🚀 一键安装


首先需要在 Komari 后台生成 API Key


然后在 Komari 主控服务器上使用 root 用户执行:


bash <(curl -fsSL https://raw.githubusercontent.com/TonyStarkJr2021/komari-auto-load-rules/main/install.sh)

安装脚本会自动完成:


检测 Linux 发行版

检测包管理器及依赖

识别 Komari systemd 服务

识别 Komari 程序

识别 Komari 数据库

自动识别 Komari 监听端口

验证 / 保存 API Key

初始化基础负载规则

安装自动同步程序

创建 systemd Timer

执行首次同步

不强制要求 Komari 使用固定端口。


脚本会根据当前 Komari 主控的实际情况自动识别监听端口。


即使 Komari 主控当前:


VPS 数量:0

也可以正常安装。


以后添加 VPS 后,脚本会自动识别并加入对应规则。




🐧 支持的 Linux 环境


目前适配以下包管理器:































Linux 系列 包管理器
Debian / Ubuntu / Debian 系 apt
Rocky Linux / AlmaLinux / Fedora / CentOS Stream dnf
CentOS / RHEL 系 yum
Arch Linux pacman
openSUSE zypper

目前要求:


Komari 主控使用 systemd service 方式运行。


Alpine / OpenRC 暂时没有支持。




🧪 实机测试


目前自己已经实际测试:



  • Debian 12

  • Debian 13

  • Komari 默认监听端口

  • Komari 非默认监听端口

  • 0 VPS 空主控安装

  • 24 台 VPS 自动同步

  • CPU 自动监控

  • RAM 自动分组

  • Disk 自动分组

  • 人工取消 RAM 后持续记忆

  • 多轮自动同步不会重新添加人工排除项

  • 人工重新恢复 RAM

  • 恢复后自动进入正确 RAM 分组

  • 恢复后的 RAM 高负载实际触发 Komari 通知

  • systemd Timer 连续周期同步


目前自己的 Komari 主控已经在正常运行。




🔄 自动同步


安装完成以后,不需要再手动执行脚本。


systemd Timer 默认:


每 10 分钟

自动执行一次规则同步。


也可以手动立即执行:


/usr/local/bin/komari-auto-load-rules.py

查看 Timer:


systemctl status komari-auto-load-rules.timer

查看运行日志:


journalctl -u komari-auto-load-rules.service -n 100 --no-pager



📦 GitHub


项目地址:


https://github.com/TonyStarkJr2021/komari-auto-load-rules


当前稳定版本:


v3.1.1


一键安装:


bash <(curl -fsSL https://raw.githubusercontent.com/TonyStarkJr2021/komari-auto-load-rules/main/install.sh)



💬 最后


第一次正经整理 GitHub 开源项目,代码肯定还有可以继续改进的地方。


有使用 Komari 的兄弟可以帮忙测试一下。


特别是:



  • Rocky Linux

  • AlmaLinux

  • Fedora

  • Arch Linux

  • openSUSE


这些环境我手里的机器没有 Debian 多,如果遇到:



  • Komari 安装路径识别问题

  • 非默认端口识别问题

  • Linux 发行版兼容问题

  • API 调用问题

  • CPU / RAM / Disk 分组问题

  • 人工排除 / 恢复状态问题

  • systemd Timer 问题


欢迎直接在帖子里反馈,也可以去 GitHub 提 Issue。


如果大家还有什么比较实用的功能需求,也欢迎提出来,后面再慢慢完善。


项目如果对你有用,欢迎顺手点个 Star。

最新回复 (3)
  • jiaxin 08-19 20:17
    1

    技术佬的东西进我的收藏夹吃灰,把鸡腿吃上

  • jiaxin 08-19 20:17
    2

    ^-^ ^-^

  • TonyStarkJr2012 楼主 08-19 20:25
    3

    @jiaxin #1 感谢

* 帖子来源NodeSeek
返回