バックアップ作業は、自動化して手間を省きたいです。
自動化しても、きちんと動いているか確認していないと、いざという時にバックアップがとれていなかったという困ったことになります。
Nagiosで監視しておくと自動化したタスクが失敗したときにメールで通知するように設定できます。
設定の概要
前に設定したパッシブチェックとcheck_freshnessを組み合わせます。
パッシブの設定ができていることが前提となります。
自動化したジョブの終了ステータスをパッシブで報告させるのが基本ですが、そのままでは、ジョブ自体が実行されなくても通知されません。
check_freshnessを設定するとfreshness_thresholdで指定した秒数、ステータスが更新されないと通知するように設定できます。
例えば、毎日バックアップが実行される場合は、24時間+バックアップ時間ごとにステータスが更新されなかったら通知というように設定しておくことで、バックアップが確実に実行されているか監視できます。
テンプレートの設定
Debianパッケージにあらかじめ定義されているgeneric-service_nagios2.cfgをgeneric-service.cfgに名前変更(これは、必須ではありません)
定義されているgeneric-serviceというテンプレートを使ってfreshness-serviceというテンプレートを作ります。
check_freshnessに1を、freshness_thresholdに90,000(25時間)を追加することで25時間経ってもステータスが更新されない時には、check_commandに定義されたコマンドを実行します。
check_commandには、パッシブサービスの時に定義したcheck_dummyを使って、ステータスがCRITICALになるように設定します。
max_check_attemptsに1を設定しておくことで、通知がすぐに行われます。
$ hg diff generic-service.cfg diff -r 22db9cfcd606 conf.d/generic-service.cfg --- a/conf.d/generic-service.cfg Sun Sep 27 00:39:56 2009 +0900 +++ b/conf.d/generic-service.cfg Sun Sep 27 12:56:33 2009 +0900 @@ -31,4 +31,13 @@ check_period never max_check_attempts 1 check_command check_dummy!0!"This service is state OK." -} +} + +define service { + name freshness-service + use generic-service + active_checks_enabled 0 + check_command check_dummy!2!"Job has not been worked." + freshness_threshold 90000 + check_freshness 1 + max_check_attempts 1 +}
サービスの定義
freshness-serviceを使ってhost_nameとservice_descriptionを設定します。
freshness_thresholdは、必要に応じて変更します。
$ hg diff services.cfg diff -r 22db9cfcd606 conf.d/services.cfg --- a/conf.d/services.cfg Sun Sep 27 00:39:56 2009 +0900 +++ b/conf.d/services.cfg Sun Sep 27 13:07:35 2009 +0900 @@ -1,3 +1,18 @@ +# freshness service test +define service { + use freshness-service + host_name localhost + service_description FRESH + freshness_threshold 10 +} + +define service { + use freshness-service + host_name localhost + service_description FRESH2 + freshness_threshold 20 +}
設定確認とNagios3の再起動
いつもの手順で設定を確認して再起動します。
$ sudo nagios3 -v /etc/nagios3/nagios.cfg Nagios 3.0.6 Copyright (c) 1999-2008 Ethan Galstad (http://www.nagios.org) Last Modified: 12-01-2008 License: GPL Reading configuration data... Running pre-flight check on configuration data... Checking services... Checked 11 services. Checking hosts... Checked 2 hosts. Checking host groups... Checked 5 host groups. Checking service groups... Checked 0 service groups. Checking contacts... Checked 1 contacts. Checking contact groups... Checked 1 contact groups. Checking service escalations... Checked 0 service escalations. Checking service dependencies... Checked 0 service dependencies. Checking host escalations... Checked 0 host escalations. Checking host dependencies... Checked 0 host dependencies. Checking commands... Checked 153 commands. Checking time periods... Checked 4 time periods. Checking for circular paths between hosts... Checking for circular host and service dependencies... Checking global event handlers... Checking obsessive compulsive processor commands... Checking misc settings... Total Warnings: 0 Total Errors: 0 $ sudo /etc/init.d/nagios3 restart * Restarting nagios3 monitoring daemon nagios3 ...done. $