如何解决“(服务检查未正确退出)”和“(空)”的服务结果?

Der*_*ler 10 nagios debian-wheezy

我使用一些基于Perl脚本的Nagios的维修检查,我得到(Service check did not exit properly)(null)作为结果在Nagios的,但脚本作品在命令行上很大。

我在网上看到的解决方案建议通过enable_embedded_perl=0在 Nagios 配置中设置或明确指定解释器的路径来禁用内部 Perl 解释器。这对问题没有帮助。

还能是什么?

Kei*_*ith 11

Nagios 包括它自己的嵌入式 perl 解释器。您的插件可能不符合 epn 标准。

您可能希望全局禁用它,或者只是为您的脚本禁用它。该文档页面的底部向您展示了如何执行此操作。

基本上,# nagios: -epn在脚本的前十行内的某处添加自己的行。这应该可以解决您的问题。

您也可以使其符合,但几乎可以肯定不值得麻烦。


Der*_*ler 3

Nagios Exchange 中的一些 Perl 脚本将尝试包含utils.pmPerl 模块。你会在其中的某个地方找到这样的一行:

use lib "/usr/local/nagios/libexec";
Run Code Online (Sandbox Code Playgroud)

在 Debian 上安装 Nagios 时,该文件的默认位置utils.pm/usr/lib/nagios/plugins/utils.pm. 所以use lib指令应该是:

use lib "/usr/lib/nagios/plugins";
Run Code Online (Sandbox Code Playgroud)

从命令行执行命令很可能有效,因为您正在/usr/lib/nagios/plugins/编辑插件。