アプリログ内容の監視の仕方には様々な要件がありますが、特定の間隔でログを監視し「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と組み合わせることができるので、ちょっとした工夫が必要なときにはとても便利です。
以上です。