こんにちは! JQです。
前回は『OSS編~Sensuを試してみる③~』と題して、Monitoring FrameworkのSensuでメール通知を試してみました。
今回は『OSS編~Sensuを試してみる④~』と題して、Monitoring FrameworkのSensuのプラグインでメール通知を試してみたいと思います。
mailer.rbプラグイン
4. mailer.rbのインストール
スクリプトと設定ファイルを取得します。
| 1 2 | $ sudo wget -O /etc/sensu/handlers/mailer.rb https://raw.github.com/sensu/sensu-community-plugins/master/handlers/notification/mailer.rb $ sudo wget -O /etc/sensu/conf.d/mailer.json https://raw.github.com/sensu/sensu-community-plugins/master/handlers/notification/mailer.json | 
実行権限を付与します。
| 1 | $ sudo chmod 755 /etc/sensu/handlers/mailer.rb | 
Sensuと一緒にインストールされたRubyを使用するようにします。
| 1 2 | $ sudo vim /etc/default/sensu EMBEDDED_RUBY=true | 
※gem mailがない場合はインストールしておきます。
| 1 | $ sudo /opt/sensu/embedded/bin/gem install mail -v 2.5.4 --no-ri --no-rdoc | 
5.設定ファイル
以下のメールサーバの設定ファイルを修正します。
| 1 2 3 4 5 6 7 8 9 10 11 | $ sudo vim /etc/sensu/conf.d/mailer.json {   "mailer": {     "admin_gui": "http://admin.example.com:8080/",     "mail_from": "sensu@example.com",     "mail_to": "monitor@example.com",     "smtp_address": "smtp.example.org",     "smtp_port": "25",     "smtp_domain": "example.org"   } } | 
mailerのHandlerを作成します。
| 1 2 3 4 5 6 7 8 9 | $ sudo vim /etc/sensu/conf.d/handler_mailer.json {   "handlers": {     "mailer": {       "type": "pipe",       "command": "/etc/sensu/handlers/mailer.rb"     }   } } | 
チェックプロセスのHandlerを修正します。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | $ sudo vim /etc/sensu/conf.d/checks/cron_process.json {   "checks": {     "cron_process": {       "command": "check-procs.rb -p cron -C 1",       "handlers": [         "default",         "mailer"       ],       "subscribers": [         "cron"       ],       "interval": 30,       "notification": "Cron is not running",       "occurrences": 5     }   } } | 
設定を反映させます。
| 1 2 | $ sudo /etc/rc.d/init.d/sensu-server restart $ sudo /etc/rc.d/init.d/sensu-client restart | 
6.確認
それでは確認してみましょう!
cronを停止します。
| 1 | $ sudo /etc/rc.d/init.d/crond stop | 
以下のように整形されたメールが届けば成功です。
| 1 2 3 4 5 6 7 8 9 | CheckProcs OK: Found 1 matching processes; cmd /cron/ Admin GUI: http://ec2xx-xx-xxx-xx.compute-1.amazonaws.com:8080/ Host: ip-xx-xxx-xx-xxx.ec2.internal Timestamp: 2014-06-10 11:42:18 +0900 Address:  xx.xxx.xx.xxx Check Name:  cron_process Command:  check-procs.rb -p cron -C 1 Status:  0 Occurrences:  5 | 
いかがでしたでしょうか?
次回もお楽しみに!!!

