如何调试/排除 collectd 故障?

如何调试/排除 collectd 故障?

我在使用 exec 插件的自定义脚本方面遇到了问题。从 shell 来看,该脚本运行良好,但在 /var/log/collectd.log 中没有任何用处。

LoadPlugin logfile
<Plugin logfile>
        LogLevel info
        File "/var/log/collectd.log"
        Timestamp true
        PrintSeverity true
</Plugin>

我该如何调试/排除故障?文档我找到了一个例子

-> | PUTVAL "testhost/interface/if_octets-test0" interval=10 1179574444:123:456
<- | 0 Success

但是我该如何运行它,如何将我的 PUTVAL 传递给 collectd?collectd 不监听任何端口(所有其他插件都运行良好并将数据发送到 graphite)。

需要明确的是:问题不在于查看生成的字符串,而在于确保特定的字符串会被接受。

谢谢。

ps 具体问题:脚本返回几十个值,但其中一个只到达石墨。

答案1

您的自定义脚本应通过将命令写入 stdout 来使用您提到的文本协议。您可以在文档中找到一个非常简单的示例:https://collectd.org/wiki/index.php/Plugin:Exec

echo "PUTVAL \"$HOSTNAME/exec-magic/gauge-magic_level\" interval=$INTERVAL N:$VALUE"

基本上,您的脚本应该只将 PUTVAL 命令写入标准输出(而不包含其他任何内容)来提交值。

答案2

停止服务并手动运行check_capability -f显示未打印到日志文件的错误。

相关内容