プラグイン実装時の注意メモ

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";


スクリプトの事前確認は、フルパスでしないとハマりますね。


今日はこんな所で。

参考

 -check_uptime