资讯动态

Kula自定义指标教程:通过Unix Socket把风扇转速、室温等任意数据变成图表

发布时间:2026/10/14 14:40:00 来源:尧图企业网站定制
【免费下载链接】kulaLightweight, self-contained Linux® server monitoring tool项目地址https://gitcode.com/gh_mirrors/ku/kula点击查看免费下载Kula 是一款轻量级的 Linux 服务器监控工具除了内置的 CPU、内存、磁盘、网络监控外它的自定义指标功能可以图表化任何你能测量的数据。本教程教你如何用一条 Unix Socket 命令把风扇转速、室温、电压等传感器数据推送到 Kula自动变成实时监控图表。工作原理为什么是 Unix SocketKula 的设计非常简洁你在配置文件里声明我要看什么图表组 指标名称 单位 最大值Kula 启动后自动创建一个 Unix Socket 文件默认位于storage.directory/kula.sock例如/var/lib/kula/kula.sock任何脚本或程序把 JSON 数据写入这个 SocketKula 就把它画成图因为只监听本机 Socket、不额外开放网络端口所以它既简单又安全。配置示例可以参考 config.example.yaml 中applications.custom部分的注释。第一步在配置文件中定义图表组编辑config.yaml在applications下添加custom配置。以CPU 风扇 房间温度为例applications: custom: cpu_fans: - name: fan1 unit: RPM max: 5000 - name: fan2 unit: RPM max: 10000 room_temp: - name: ambient unit: °C max: 50三个字段各管各的事字段含义示例name指标名必须与发送数据时的键名一致fan1unit图表上显示的单位标签RPM、°C、req/smaxY 轴最大值5000规则很好记每个组group变成一张图表卡片组里每个指标变成卡片上的一条曲线。cpu_fans组就会是一张包含 fan1、fan2 两条线的转速图。第二步向 Socket 发送数据数据格式是换行分隔的 JSONcustom字段下面组名对应一个[{指标名: 数值}]数组。最快捷的方式是配合socat一行命令echo {custom:{cpu_fans:[{fan1:4423},{fan2:8512}]}} \ | socat - UNIX-CONNECT:/var/lib/kula/kula.sock想持续监控把读取传感器的部分放进循环即可推送节奏建议与 Kula 的collection.interval保持一致例如每秒一次SOCK/var/lib/kula/kula.sock while true; do rpm1$(cat /sys/class/hwmon/hwmon0/fan1_input 2/dev/null || echo 0) printf {custom:{cpu_fans:[{fan1:%s}]}} $rpm1 \ | socat - UNIX-CONNECT:$SOCK sleep 1 doneKula 仓库自带了一份 Python 参考脚本 scripts/custom_example.py展示了如何直接用 socket 库连接并发送一条 JSON你可以照着自己的传感器改写。实际上任何能写 Unix Socket 的语言都可以——Python、Shell、Go、C 都行。第三步打开看板图表自动出现数据一到新图表卡片会自动出现在 Web 仪表盘的Applications分区下无需其他操作。自定义指标和内置指标一样存储在 Kula 的分层环形缓冲tiered ring-buffer里所以✅ 有完整历史支持按 1 分钟/5 分钟聚合的回看视图✅ 时间范围切换1m ~ 30d同样适用✅ 可以导出到 Prometheus如果开启了prometheus_metrics常见问题与最佳实践 图表没出现组名、指标名必须与配置完全一致——未声明的名字会被静默忽略确认 Socket 路径默认在storage.directory下如果 Kula 因权限不足回退到了~/.kulaSocket 就在那里Socket 权限为0660属主 属组可写普通用户发送时可能需要加入kula组 曲线断开了Kula 有过期检测数据源停止推送后图表会显示空档而不是冻结在最后一条值上这通常更符合真实情况。默认窗口约为 5 个采集周期可用applications.custom_stale_after: 10s调整。⚠️ 几个限制要记住每条消息最多64 KB一行一个 JSON 对象数值可以是整数或浮点数同一条消息里重名指标只保留最后一个值组名和指标名要保持稳定它们是图表的键空闲超过 5 分钟的连接会被自动关闭Socket 同一时间只有一个进程持有重复启动的 Kula 会放弃自定义指标而不是抢占更多细节可查阅官方文档 docs/user/09-custom-metrics.md核心实现位于 internal/collector/custom.go。可以玩出什么花样自定义指标几乎不设限几个灵感️NAS/矿机机房USB 温度探头读数、UPS 电池电压游戏主机手柄电池、下载速度统计应用监控脚本计算的 QPS、队列长度、爬虫抓取数智能家居Home Assistant 暴露的任意传感器只要你能从一个文件、API 或设备里读出一个数字就能把它变成 Kula 看板上的实时图表。配置一次脚本常跑剩下的交给 Kula。赞分享【免费下载链接】kulaLightweight, self-contained Linux® server monitoring tool项目地址https://gitcode.com/gh_mirrors/ku/kula点击查看免费下载相关推荐Pathway 自定义 Python 连接器Custom Python Connector实战把 Twitter 等任意数据流接入实时表Pathway 自定义 Python 连接器Custom Python Connector实战把 Twitter 等任意数据流接入实时表 本篇以仓库内 C后端流处理实时分析数据工程人工智能RAGwired-icon用 Web Component 把任意 SVG 图标一键转成手绘素描风wired icon用 Web Component 把任意 SVG 图标一键转成手绘素描风 wired icon 是 wired elements 实验包中的UI组件前端Docusaurus v3 文档站快速搭建实战5 分钟起步并接入 Orama 全文搜索Docusaurus v3 文档站快速搭建实战5 分钟起步并接入 Orama 全文搜索 本文以当前仓库 sandboxes/plugin docusaurus向量数据库RAG创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑