プラグイン実装時の注意メモ
NagiosExchangeからプラグインをダウンロードして
使おうとしていた時の話です。
所定の場所に配置して、スクリプトを実行してみます。
# pwd /usr/local/nagios/libexec # ./check_uptime.pl OK: UPTIME on nagios - current uptime: 14 min
特に問題なく動いているので、監視設定を行います。
ここで問題発生。
コマンドも登録し、サービス設定もしているはずなのに、
うまく動いてくれない。
define command{ command_name check_uptime command_line $USER1$/check_uptime.pl -W $ARG1$ -C $ARG2$ } define service { use generic-service host_name myhost service_description UPTIME check_command check_uptime }
原因はスクリプトから必要なモジュールが見つけられなかったため。
# cd / # pwd / # /usr/local/nagios/libexec/check_uptime.pl Can't locate utils.pm in @INC (@INC contains: /usr/lib/nagios/plugins /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /usr/local/nagios/libexec/check_uptime.pl line 44. BEGIN failed--compilation aborted at /usr/local/nagios/libexec/check_uptime.pl line 44.
スクリプト内の「use lib」のパスを修正して対応。
use lib "/usr/lib/nagios/plugins"; → use lib "/usr/local/nagios/libexec";
スクリプトの事前確認は、フルパスでしないとハマりますね。
今日はこんな所で。