0

Nagios プラグインとして作成した Perl スクリプトにデバッグ ログを追加したいと考えていました。コマンド ラインから起動すると完全に機能しますが、Nagios から呼び出されると、「localtime」は nagios3 デーモンが最後に再起動された時刻 (この場合は昨日の午後) を返します。

Ubuntu Server 12.04 LTS で Perl v5.14.2 と Nagios 3.2.3 を実行しています。

スクリプト (部分):

#!/usr/bin/perl
use POSIX;

my $result = 0;
my $IP=$ARGV[0];

# actual processing here...

open (LOGFILE, ">>/var/log/nagios3/check_pisystem.log");
print LOGFILE strftime "%F %T%z (%Z)", localtime $^T;
print LOGFILE "," . $IP . "," . $result . "\n";
close (LOGFILE);

しばらく実行した後のログファイルの内容: 10:xx の行は、シェル プロンプトからスクリプトを手動で開始することによって追加されました。他の行は、nagios によって呼び出された結果であり、4 つの異なる IP が 5 分間隔で (それぞれ) 使用されます。

2013-07-29 15:18:24+0200 (CEST),10.3.4.83,0
2013-07-29 15:18:24+0200 (CEST),10.3.3.83,0
2013-07-30 10:24:51+0200 (CEST),10.3.0.83,0
2013-07-29 15:18:24+0200 (CEST),10.3.1.83,1
...
2013-07-29 15:18:24+0200 (CEST),10.3.3.83,1
2013-07-29 15:18:24+0200 (CEST),10.3.1.83,0
2013-07-29 15:18:24+0200 (CEST),10.3.0.83,0
2013-07-29 15:18:24+0200 (CEST),10.3.4.83,0
2013-07-30 10:46:54+0200 (CEST),10.3.0.83,0
4

1 に答える 1