如何通过 netcat 查询 munin 插件?

如何通过 netcat 查询 munin 插件?

我想从 Nagios 查询现有的 Munin 插件。因为我想做一些计算和聚合(插件报告一段时间内的数据),而不仅仅是查看最后的值,所以可用的插件查询 Munin 数据,例如检查_munin似乎不合适。所以我的想法是获取整个fetch输出并进行解析。然而,由于我无法理解的原因,这似乎带来了问题。

如果我fetch my-plugin在发出后手动输入nc my-munin-node 4949,我会得到预期的数据输出。如果我尝试编写脚本,它不会按预期运行:

echo "fetch my-plugin" | nc my-munin-node 4949

只是不返回任何内容

(sleep 1 && echo "fetch my-plugin") | nc my-munin-node 4949

仅返回 munin-node 横幅

# munin node at my-munin-node

TCP RST没有任何尾随数据。运行网络跟踪显示远程 Munin 节点确实开始发送数据,但立即从请求者端获取。

答案1

如果发生以下情况,Netcat 将关闭连接末梢血正在通过输入文件描述符接收。由于echo "string" | nc语法正在发送“细绳”紧接着末梢血netcat会立即断开连接,而不接受来自远端的任何数据。

更合适的语法是这样的

(echo "fetch my-plugin" && sleep 5) | nc my-munin-node 4949

这边走,末梢血除非返回,否则不会发送sleep- 在此示例中,这将花费 5 秒。时间间隔应选择足够长的时间以fetch my-plugin完成并传输所有数据。

相关内容