サービスで「(サービスチェックが正しく終了しませんでした)」および「(null)」の結果を解決するにはどうすればよいですか?


10

NagiosのサービスチェックにいくつかのPerlベースのスクリプトを使用していますが、その結果、Nagiosで取得(Service check did not exit properly)(null)ましたが、スクリプトはコマンドラインで適切に機能します。

enable_embedded_perl=0Nagios構成で設定するか、インタープリターへのパスを明示的に指定して、内部Perlインタープリターを無効にすることを提案するソリューションをオンラインで見ました。これは問題を解決しませんでした。

他に何ができるでしょうか?


CLIを介して「うまく機能する」例を示すことができますか?
キース

回答:


11

Nagiosには、独自の組み込みperlインタープリターが含まれています。プラグインがepnに準拠していない可能性があります。

これをグローバルに無効にするか、スクリプトで無効にすることもできます。そのドキュメントページの下部に、これを行う方法が示されています。

基本的に、# nagios: -epnスクリプトの最初の10行内のどこかに独自の行を追加します。これで問題が解決するはずです。

準拠させることもできますが、問題が発生することはほとんどありません。


ええ、提案をありがとう。これは私が直面している特定の問題に影響を及ぼさないと明確に述べましたが。
Der Hochstapler 2014年

これはnagiosにとって真の決意です。-epnなしでは、プラグインが含まれ、nagiosによって内部的に実行されます。-epnを使用すると、バイナリやbashスクリプトと同様に、外部実行可能ファイルとしてロードされます。ページを参照してください:nagios.sourceforge.net/docs/3_0/embeddedperl.html およびepnの苦情を検討してください
Znik

1
コロンは# nagios: -epn、ドキュメントごと、およびテストごとに必要です。
idupree 2015年

1
不思議なことに、nagios-plugins-standard(2.2-3ubuntu2)の現在のUbuntu LTS(18.04)バージョンにはこの問題があります。物事の仕事私は例えば、影響を受けたプラグインを変更するのいずれかの場合check_disk_smbcheck_file_age、あるいは私がされているかuse_embedded_perl_implicitly=0
Akom

私のために修正しました!ありがとう...
オスカーブラボー

3

Nagios Exchangeの一部のPerlスクリプトは、utils.pmPerlモジュールを含めようとします。次のような行がどこかにあります。

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

NagiosをDebianにインストールする場合、utils.pmファイルのデフォルトの場所は/usr/lib/nagios/plugins/utils.pmです。したがって、use libディレクティブは次のようになります。

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

/usr/lib/nagios/plugins/プラグインを編集していたため、コマンドラインからコマンドを実行するとうまくいく可能性があります。


2

コマンドの前にを付け/usr/bin/perlます。

このソリューションはより回避策です。そうすることはおそらくお勧めできませんが、少なくとも、プラグインはターミナルから起動したときと同じように機能するはずです。

注:私の経験で# nagios -epnはかなり頻繁に機能しますが、時には十分ではないようです。これが発生すると、障害のあるプラグインが多くの警告を報告することに気付きました(スクリプトがで呼び出された場合perl -w)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.