我使用Nagios来监控我的服务器,我想通过NRPE在服务器上运行一个escript文件。所以我必须使用CHECK_NRPE方法来调用escript,这是一个Erlang脚本文件。 这是我的escript文件:
#!/usr/bin/env escript
main(_) ->
io:format("test\n"),
halt(1).
当escript文件在服务器上运行时,其结果是OK:
测试
但是当我使用下面的命令来调用escript文件时:
check_nrpe -H localhost -c check_test
我还在nrpe.cfg中定义了这样的命令:
命令[check_test] = / USR /本地/的nagios /的libexec / check_test
现在,结果转为:
NRPE:无法读取输出
我怀疑它可能是由于许可问题引起的。然后我将escript文件修改为具有相同路径,相同文件名和相同权限的shell脚本文件,如下所示:
#!/usr/bin bash
echo "test";
exit 1;
此时,我再次尝试命令,但结果正常:
测试
那是为什么? Nagios不支持erlang脚本吗?我不相信。