Nagios

如何使用我的服務解決“(服務檢查未正確退出)”和“(null)”結果?

  • June 4, 2015

我在 Nagios 中使用一些基於 Perl 的腳本進行服務檢查,結果在 Nagios 中得到(Service check did not exit properly)(null)結果,但該腳本在命令行上執行良好。

我在網上看到了一些解決方案,建議通過enable_embedded_perl=0在 Nagios 配置中設置或明確指定解釋器的路徑來禁用內部 Perl 解釋器。這對解決問題沒有幫助。

還能是什麼?

Nagios Exchange 的一些 Perl 腳本會嘗試包含utils.pmPerl 模組。你會在其中的某個地方找到這樣的一行:

use lib "/usr/local/nagios/libexec";

在 Debian 上安裝 Nagios 時,utils.pm文件的預設位置是/usr/lib/nagios/plugins/utils.pm. 所以use lib指令應該是:

use lib "/usr/lib/nagios/plugins";

從命令行執行命令很可能有效,因為您正在/usr/lib/nagios/plugins/編輯您的外掛。

Nagios 包括它自己的嵌入式 perl 解釋器。您的外掛可能不符合 epn 標準。

您可能希望全域禁用它,或者只是為您的腳本禁用它。該文件頁面的底部向您展示瞭如何執行此操作。

基本上,# nagios: -epn在腳本的前十行中添加自己的行。這應該可以解決您的問題。

你也可以讓它變得兼容,但幾乎可以肯定它不值得麻煩。

引用自:https://serverfault.com/questions/584421