概要
バッチをスケジュールしたいとき、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で管理すれば、バッチの失敗も検知できて良さそうでした。