Skip to content

eeviriyi/NodeGet-Alert

Repository files navigation

NodeGet Alert

NodeGet Alert 是一个 NodeGet Dashboard 扩展,用来监控节点状态并发送告警通知。

下载

从 GitHub Release 下载扩展包:

nodeget-alert.zip

也可以下载带版本号的包,例如:

nodeget-alert-v0.3.2.zip

如果要测试开发版,可以在 GitHub Actions 的 dev 分支 Package 运行里下载 nodeget-alert artifact。开发版只用于测试,正式使用优先下载 Release。

安装

  1. 用 SuperToken 或管理员 Token 登录 Dashboard。
  2. 到 KV 页面创建两个命名空间:
nodeget-alert
nodeget-alert-state
  1. 到扩展管理页面上传 nodeget-alert.zip
  2. 打开 “NodeGet Alert” 页面。
  3. 勾选要监控的节点,填写通知渠道参数。
  4. 点“发送测试”,确认能收到测试消息。
  5. 点“保存配置”。

保存后,NodeGet Alert 会默认每分钟检查一次节点状态。

告警内容

当前会检查:

  • 节点离线
  • CPU 使用率过高
  • 内存使用率过高
  • 磁盘使用率过高
  • 节点即将到期或已经到期
  • 告警恢复

只有被勾选的节点会触发告警。告警消息会优先显示节点名称,没有名称时显示 UUID。

规则配置

NodeGet Alert 默认每分钟检查一次节点。离线和到期规则达到阈值后立即触发,CPU、内存和磁盘规则需要连续超过阈值一段时间后才会触发,避免短时间抖动造成误报。

每条规则都可以单独启用或关闭:

  • 离线:配置离线阈值,单位是秒
  • CPU:配置使用率阈值和持续时间
  • 内存:配置使用率阈值和持续时间
  • 磁盘:配置总磁盘使用率阈值和持续时间
  • 到期:配置提前多少天提醒

节点默认使用全局规则。需要特殊处理的节点,可以在节点列表里切换为“自定义规则”,覆盖全局配置。

到期时间复用 Dashboard 成本管理里的 到期时间 字段,也就是节点 KV 里的 metadata_expire_time。没有设置到期时间的节点不会触发到期告警。

通知渠道

当前支持:

  • Telegram
  • 通用 Webhook
  • ServerChan
  • Bark
  • PushPlus
  • ntfy
  • 飞书群机器人
  • 钉钉群机器人
  • 企业微信群机器人

可以同时启用多个通知渠道。保存后,告警会发送到所有已启用的渠道。

各渠道需要填写的参数:

  • Telegram:Bot TokenChat ID
  • 通用 Webhook:Webhook URL,可选 Webhook Secret
  • ServerChan:SendKey
  • Bark:Server URLDevice Key
  • PushPlus:Token,可选 Topic
  • ntfy:Server URLTopic,可选 Token
  • 飞书:Webhook URL,可选 Secret
  • 钉钉:Webhook URL,可选 Secret
  • 企业微信:Webhook URL

Webhook 会发送 POST JSON 请求:

{
  "title": "NodeGet Alert:节点名称",
  "text": "节点:节点名称\n类型:CPU\n状态:触发中",
  "severity": "warning",
  "message": "[WARNING] NodeGet Alert:节点名称\n..."
}

如果填写了 Webhook Secret,请求会带上:

x-nodeget-alert-secret: <secret>

获取 Telegram 参数

Telegram 需要填写 Bot Token 和 Chat ID。

获取 Bot Token:

  1. 在 Telegram 里打开 @BotFather
  2. 发送 /newbot
  3. 按提示设置 bot 名称和用户名。
  4. BotFather 会返回一段 Bot Token。

获取 Chat ID:

  1. 给你的 bot 发送任意一条消息。
  2. 在浏览器打开:
https://api.telegram.org/bot<BOT_TOKEN>/getUpdates
  1. 在返回内容里找到:
"chat": { "id": 123456789 }

这里的 123456789 就是 Chat ID。

如果 result 是空数组,说明 bot 还没收到消息。先给 bot 发一条消息,再刷新 getUpdates

群组使用时,把 bot 拉进群并在群里发一条消息,再查看 getUpdates。群组 Chat ID 通常是负数。

常见问题

保存提示 Namespace 'nodeget-alert' not found

先到 KV 页面创建 nodeget-alertnodeget-alert-state

收到了不想监控的节点告警:

只勾选需要监控的节点,再保存配置。

需要反馈问题:

打开 NodeGet Alert 页面,点击“导出调试信息”,把生成的内容附到 GitHub Issue。调试信息会脱敏,不包含 Bot Token、Webhook Secret 等通知渠道密钥。

需要确认安装是否正常:

打开 NodeGet Alert 页面,点击“开始自检”。自检会检查配置、状态、动态监控数据、Worker 最近运行结果、Cron 可见性和通知渠道。通知渠道检查会向已启用渠道发送一条测试消息。

开发

开发、构建和发布说明见 DEVELOPMENT.md

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors