Nagios
如何使用我的服務解決“(服務檢查未正確退出)”和“(null)”結果?
我在 Nagios 中使用一些基於 Perl 的腳本進行服務檢查,結果在 Nagios 中得到
(Service check did not exit properly)
了(null)
結果,但該腳本在命令行上執行良好。我在網上看到了一些解決方案,建議通過
enable_embedded_perl=0
在 Nagios 配置中設置或明確指定解釋器的路徑來禁用內部 Perl 解釋器。這對解決問題沒有幫助。還能是什麼?
Nagios Exchange 的一些 Perl 腳本會嘗試包含
utils.pm
Perl 模組。你會在其中的某個地方找到這樣的一行: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
在腳本的前十行中添加自己的行。這應該可以解決您的問題。你也可以讓它變得兼容,但幾乎可以肯定它不值得麻煩。