RD-X3 がちゃんと予約メールを読んでいるかどうかを nagios で監視

2018年2月18日

この記事は最初の投稿日から18年経過しています。内容が古い可能性があります。

■「TVスケジューラ」との連携」にて、TV番組の自動録画をしている話を書きましたが、自動録画のトリガーにはメール録画予約機能を使っており、そのメールはgentooのサーバでやりとりしてます。

先日、POP3サーバを qpopper から、dovecot に変更したのですが、その際、設定ミスでRD-X3がメールを取れなくなっていました。

自分で予約しているわけではないので、取れなくなっていることにも気づかず、結局、「録画できてるはず」と思って見ようとした番組が録画されていないくて気づいたってことに。

そこで、nagios に RD-X3 がちゃんと予約メールを読んでいるかどうかの監視を組み込んでみました。

いや、監視までするのはちょっと大げさなような気もしますが、まぁ、意外に簡単だったので。

基本的には、

基本的な流れからいうと、

1. logger を使って、ある特定のキーワードをログに出力させる。

2. そのキーワードを swatch で拾い、ある特定のファイルを touch してファイル日付を更新する。

3. nagios(またはシェルスクリプト)で、上記ファイルの更新日付を監視し、長時間変更されていなければアラートをあげる。

ということをします。

■[gentoo]swatchを使ったログ監視におけるswatch自身の監視

と同じ手法です。

この方法、なかなか便利で色々と応用がききます。

swatch の設定ファイルに RD-X3 がメールを読みに来た時の監視を入れる。

dovecot は、POP3 クライアントが接続にくると、syslog 経由でログファイルに、

pop3-login: Login: user=<ほにゃらら>

というログを残します。

ですので、これを swatch で引っかけてファイルを touch します。

#
# RD-X3 mail check
#
watchfor /pop3-login: Login: user=<ほにゃらら>/
exec=/usr/bin/touch /var/tmp/swatch-rd-x3-mail.alive

ファイル日時の監視

上記で touch したファイルを nagios で監視します。

使うプラグインは、以前と同じく check_file_age です。

で、後は以前と同じように設定すればいいのですが、今回の場合、「RD-X3がメールをとれていない」ことを AM3:00 頃に通知されてもしかたありません。そもそも、RD-X3 がメールを取るのは、AM6:40、AM11:40、PM6:40 の3回です。(電源を切っていた場合)

ずっと監視するのも無駄なので、起床時間の間だけ、監視するようにします。

$NAGIOS_HOME/etc/timeperiods.cfg
# 'wakeuphours' timeperiod definition
define timeperiod{
timeperiod_name wakeuphours
alias           Wakeup Hours
sunday          08:00-24:00
monday          08:00-24:00
tuesday         08:00-24:00
wednesday       08:00-24:00
thursday        08:00-24:00
friday          08:00-24:00
saturday        08:00-24:00
}
$NAGIOS_HOME/etc/services.cfg
define service{
~
check_period   wakeuphours
check_command  check_file_age!86400!86400!/var/tmp/swatch-rd-x3-mail.alive
~
}

ファイルは、1日3回しか更新されないので、86,400秒、つまり24時間更新されていなければ、アラートがあがるようにしました。

本当はもう少し短くしようと思ったのですが、何故か AM6:40 のメールチェックがこけることが多く、アラートがちょこちょこあがってきてしまったので、24時間にのばしました。

3日先のTV番組までを取得・検索して予約しているので、これで用は足りています。

gentoo,monitoring

Posted by toshyon