ホーム » コンピュータ » Network » munin-limitsの警告を最小限に…

システム

最近の投稿

アーカイブ

カテゴリー

munin-limitsの警告を最小限に…

(2011/7/7追記)どうも、以下のプログラムでは、メール送信プロセスが 正しく終了せず、メール送信プロセスが溜まってしまう。 muninのcontact.XXX.command にスクリプトを書くのはまずいみたい。 "/usr/bin/perl /…PATH…/notify.pl…" とすれば動いた。 どうも、command にスクリプトが書いてある場合"sh -c" してくれているんだけど、 何か不具合があるような…

muninで、USBRTの温度監視ができて、munin-limitで警告メールがだせるようになった。 でも、本来の目的は家猫の体調のためなので、警告温度は34℃ほどに設定したら、 設定温度を越えたら5分おきに、ずーっとメールが届く。 さすがに、職場じゃ大量のメールが届くので、状態が閾値を越えたときにだけメールが欲しい。

メールを送るスクリプトに、warning,criticalのデータ件数をつけて呼び出すようにして、 件数が変化していなければ、メールを送らないようにした。

(( /etc/munin/munin.conf ))
contact.nagios.command \
/usr/bin/perl /etc/munin/my-plugins/notify.pl \ # (7/7修正)
"${var:numwfields}:${var:numcfields}" \
"[Munin] tsaitoh.net" \
携帯メアド

(( notify.pl ))
#!/usr/bin/perl
exit 0 if ( @ARGV < 3 ) ;
my $stat = shift @ARGV ;
my $subj = shift @ARGV ;
my $mailto = shift @ARGV ;
my $last_file = "/var/run/munin/munin.last-stat" ;
my $last_stat = "" ;
# 前回の状態を読み込む
if ( open( FH , "$last_file" ) ) {
$last_stat = <FH> ;
chomp( $last_stat ) ; # chompの使い方間違ってた...
close FH ;
}
if ( $stat eq $last_stat ) {
# 状態の変化がなければ報告しない
exit 0 ;
} else {
# 状態を記録しておく
if ( $stat eq "0:0" ) {
unlink( $last_file ) if ( -f $last_file ) ;
} elsif ( open( FH , ">$last_file" ) ) {
print FH "$stat\n" ;
close FH ;
}
# 報告を送信する
if ( open(FH,"|/usr/bin/mail -s \"$subj\" \"$mailto\"") ) {
while( <> ) {
print FH $_ ;
}
close FH ;
}
}

Google 検索

My Google   Yahoo

Microsoft

ファンサイト