当前位置: 首页 > news >正文

Nexknit Gateway v0.2.0:全新采集器与告警系统上线

NexKnit 是一款基于约束开发的、完全开源免费的内网设备监控系统。它的网关只有 Python 标准库,单文件部署,零依赖,极易审查和集成。采集器和网关之间通过 TCP 环回通信,任何语言、任何工具,只要能在本地发一行文本,就能完成一次指标上报。云端寄生在 Cloudflare Workers 的免费额度上,全程无需信用卡,同时支持一键部署 。

版本:Core v0.2.0
日期:2025-05-28
核心变更:新增可插拔采集器体系 + 服务端告警

详细指引见COLLECTORS_GUIDE_CN.md at nexknit-dev/nexknit-gateway

快速部署见NexKnit快速部署指南:三分钟白嫖 Cloudflare,打造零依赖内网监控面板

架构设计见NexKnit:基于约束开发的开源免费监控-CSDN博客

一、一键启动(全栈)

git clone https://github.com/nexknit-dev/nexknit-gateway cd nexknit-gateway python run_gateway.py

启动后自动拉起:

  • 网关(127.0.0.1:12345

  • 系统采集器(CPU/内存/磁盘/网络)

  • HTTP 存活采集器(https://example.comhttps://google.com

  • GPU 采集器(如检测到 NVIDIA GPU)

  • 本地存储采集器(数据落盘./data/

所有采集器数据自动推送到网关 → Cloudflare Worker → 仪表盘。


二、四个内置采集器

1. 系统采集器collectors/system.py

指标

指标名类型说明
hostnameS主机名
cpu_percentTCPU 使用率 %
mem_percentT内存使用率 %
disk_used_percentI磁盘使用率 %
net_sent_mbT累计发送 MB
net_recv_mbT累计接收 MB
load_avgL1/5/15 分钟负载
uptime_secondsI运行时间秒
cpu_tempTCPU 温度(Linux)

依赖psutil(可选,无则模拟数据+警告)

单独运行

python collectors/system.py --host 127.0.0.1 --port 12345 --interval 5 # 输出到stdout以供调试,所有的采集器均支持这个参数 python collectors/system.py --output stdout

2. HTTP 存活采集器collectors/http_alive.py

参数

参数默认说明
--urls硬编码空格分隔的 URL 列表
--timeout5请求超时秒

示例

python collectors/http_alive.py --urls https://api.myapp.com/health https://db.internal:8080/ping --timeout 3

3. GPU 采集器collectors/gpu.py

进程变更检测:每--process-log-interval秒(默认 60)对比进程列表,仅当有变化时发送 L 类型日志。

示例

python collectors/gpu.py --interval 5 --process-log-interval 60

无 NVIDIA GPU 时:返回S状态⚠️ GPU Unavailable,不崩溃。

4. 本地存储采集器collectors/local_storage.py

行为

  • 继承StorageCollector

  • 每次采集的原始数据(JSON)追加写入--storage-path下的文件

  • 网关不可达时缓存失败数据

  • 启动时重试未发送成功的缓存

示例

python collectors/local_storage.py --storage-path ./data

三、告警系统

配置(在run_gateway.py顶部)

ALERT_CONFIG = { "enabled": True, "type": "stdout", # "stdout" 或 "webhook" "target": "ops@example.com", "webhook_url": "https://your-server/webhook" }

在采集器中发送告警

self.alert( level="WARNING", # INFO, WARNING, ERROR, CRITICAL title="High CPU", message=f"CPU at {cpu_percent}%", metric_name="cpu_percent", metric_value=cpu_percent )

内置冷却:同一(level, metric_name)5 分钟内只发一次。

Webhook payload

json

{ "level": "WARNING", "title": "High CPU", "message": "CPU at 92%", "collector": "SystemCollector", "metric_name": "cpu_percent", "metric_value": 92.5, "timestamp": "2025-05-28T10:00:00", "target": "ops@example.com" }

四、二次开发最小示例:自定义采集器

from collectors.base import BaseCollector class MyCollector(BaseCollector): def collect(self): return {"my_value": 42} def metrics_to_lines(self, metrics): return [self.format_metric("T", "my_value", metrics["my_value"])]

集成进run_gateway.py

from collectors.my_collector import MyCollector my = MyCollector() my.start()

基类可用方法

方法说明
self.format_metric(type, name, value)返回"T|cpu|42.5\n"
self.send_tcp_message(msg)原始 TCP 发送
self.alert(level, title, message, metric_name, metric_value)发送告警
self.set_alert_config(config)动态修改告警配置

七、其余改进

1. 前端更新了排序逻辑,从按照Type排序更新为按照Name排序

2. 前端更新了对换行符的支持,现在它可以自动换行了

3. 同步更新了Worker的静态页面

八、功能预告

考虑到告警的全套需求,下一步我准备更新Worker,为其附加一个自动检测节点存活的Core定时器,当发现节点下线时触发告警。

仓库:https://github.com/nexknit-dev/nexknit-gateway
一键部署 Cloudflare Worker:见 README 按钮
Issue 响应:36 小时内

http://www.zskr.cn/news/1418091.html

相关文章:

  • AI营销新纪元:多智能体协作破局
  • 回民街的坑很多,但洒金桥那条巷子藏着真正的老味道
  • 2026年5月口碑好的武汉地下管线漏水检测公司排行榜厂家推荐榜,家庭/厂房/市政管道漏水检测厂家选择指南 - 海棠依旧大
  • Windows系统的用户管理操作
  • 北京研华医疗工控机
  • 2026年当下,温州别墅门窗选购指南与实力生产商深度解析 - 2026年企业资讯
  • 强强联合!比昂芯携手麒麟软件,打造新一代全栈国产化电路仿真解决方案
  • Magisk系统级修改框架:Android权限管理与系统定制终极指南
  • 别再问红外图像为啥模糊了!一文讲透它与可见光融合的实战价值(附Python代码示例)
  • 基于Arduino的轻量级外骨骼手臂:从力反馈原理到DIY实践
  • DeepSeek + 腾讯云函数SCF实现毫秒级弹性扩缩容:单实例QPS突破128,成本直降63%(含压测数据对比表)
  • 保姆级教程:手把手教你下载并处理ImageNet1K验证集(附Python脚本)
  • 异构PIM架构热管理挑战与THERMOS解决方案
  • 矩阵控制屏障函数(MCBF)在机器人安全控制中的应用
  • Instagram如何批量私信?外贸人必学的INS协议群发教程
  • 保姆级教程:用U盘启动盘修复Win10的No Bootable Device和蓝屏重启
  • 保姆级教程:用OpenCV的SGBM算法搞定双目立体匹配(附Python代码避坑指南)
  • 串的块链存储表示及其插入、删除操作
  • 订单越多,利润越少?本地生活行业告别“租流量”,用 LikeShop 搭建自己的用户体系
  • 提升JAVA从业者工作效率的Claude Code使用技巧
  • RAG 文档切片实战:国标知识库篇(一)——基础切片
  • 从零到一:如何用chanvis搭建你的专属缠论量化分析系统
  • 读懂JBoltAI智能问数升级:企业AI用数,瓶颈不是模型
  • 跨境直播拍卖高并发场景下的网络稳定性技术实践
  • Steam创意工坊模组自由获取指南:无需Steam客户端,轻松下载1000+游戏模组
  • 雾化器语音提示芯片方案:便携电池供电+低功耗WT588F02-8S-C
  • 92%核价准确率!苏州同铄CostAI软件发布,对标国际水准重塑成本核算
  • 2026年5款AI电商设计工具实测:618电商海报/主图/详情页全套物料制作
  • 别再只用单步预测了!用Python实战3种多步预测方法(附LSTM/Prophet代码)
  • 基于ESP32与3D打印的盲文学习机器人:硬件设计与嵌入式开发实践