概要
バッチをスケジュールしたいとき、crontab
を使うことがあるかと思います。
自分もよく使っているのですが、バッチの実行そのものに失敗したときに、検知できないのがネックだと感じています。
対策として、Rundeck
やJenkins
を導入したりしますが、ちょっとしたバッチの実行で立てるのは、煩わしいと思っていました。
そんなときに、Mackerel
のmkr
コマンドで監視できることを知ったので、試していこうと思います。
実践
やることはシンプルで、crontab
でバッチを設定するときに、mkr wrap
を設定するだけです。
-n
で名前をつけると、確認しやすいと思います。
今回は/usr/bin/php /home/vagrant/twitter-search/Execute.php TwitterSearch
というバッチを監視するため、crontab
は下記の設定にします。
* * * * * mkr wrap -n 名前 /path/
ex). 10 * * * * mkr wrap -n 名前 /usr/bin/php /home/vagrant/twitter-search/Execute.php TwitterSearch
これだけで失敗を検知する準備が整いました。
実際にバッチが失敗するとき、下記の画像のようにMackerelでアラートが発生します。
この画面ではなぜ失敗したかわからないので、運用する際は-d
のオプションを付けてあげると良さそうです。
まとめ
バッチをスケジュール実行する際に、crontab
+ Mackerel
で管理すれば、バッチの失敗も検知できて良さそうでした。