アプリログ内容の監視の仕方には様々な要件がありますが、特定の間隔でログを監視し「error」などの文言があったらアラートする。などがよくあるケースで、以前の記事にも書きました。
その逆に、例えば、多量のアクセスがあるにも関わらず頻繁に出力されるはずの重要なキーワードがでていない場合は、不測の事態がおこっているかも知れません。
今回は特定の間隔でログを監視し、その中にキーワードが含まれていなかったらアラートする
というものです。
ではやってみます。
nrpe + check_log3の利用
まずは普通にcheck_log3の設定をします。
Nagiosサーバー側に、以下の設定をします。
3分間隔でチェックし、キーワード「hoge」が一つでも含まれていたらCRITICALを出します。
今回はWARNINGは出さないので、WARNINGの閾値をとても大きな数値にしておきます。
commands.cfg
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -a $ARG2$
}
client.cfg
define host{
use linux-server
host_name client_a
alias client_a
address ec2-54-250-36-70.ap-northeast-1.compute.amazonaws.com
}
define service {
use generic-service
host_name client_a
service_description CHECKLOG3
normal_check_interval 3
check_command check_nrpe!check_log3!/var/log/httpd/access_log /etc/nagios/seeks/check_log3.httpd.seek hoge 99999999999999 1
}
すると、キーワードが含まれている場合は、
キーワードが含まれていない場合は、
のようになります。
nrpe + check_log3 + negateの利用
次に、これの逆をやってみます。
nagiosにはnegateというプラグインがあり、CRITICALとOKの評価を反転します。
このプラグインを使用して、評価反転用のcheck_nrpeコマンドを定義します。
commands.cfg
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -a $ARG2$
}
define command{
command_name check_nrpe_negate
command_line $USER1$/negate $USER1$/check_nrpe -H '$HOSTADDRESS$' -c $ARG1$ -a $ARG2$
}
client.cfg
define host{
use linux-server
host_name client_a
alias client_a
address ec2-54-250-36-70.ap-northeast-1.compute.amazonaws.com
}
#define service {
# use generic-service
# host_name client_a
# service_description CHECKLOG3
# normal_check_interval 3
# check_command check_nrpe!check_log3!/var/log/httpd/access_log /etc/nagios/seeks/check_log3.httpd.seek hoge 99999999999999 1
#}
define service {
use generic-service
host_name client_a
service_description NEGATE_CHECKLOG3
normal_check_interval 3
check_command check_nrpe_negate!check_log3!/var/log/httpd/access_log /etc/nagios/seeks/check_log3.httpd.seek hoge 99999999999999 1
}
すると、キーワードが含まれている場合は、
キーワードが含まれていない場合は、
のようになり、結果が反転します。
nrpeでなくても、どのプラグインでもnegateと組み合わせることができるので、ちょっとした工夫が必要なときにはとても便利です。
以上です。

