5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Cron監視ツール「Cronitor」の導入

Last updated at Posted at 2019-10-02

はじめに

一定規模のwebサービスを運用していると、処理するジョブの数もそれなりに増えていき、以下のような問題が起こります。

  • 特定のジョブに対していつはじまっていつ終わるのか、成功したのか失敗したのかがわからない...。
  • すぐにでも既存のすべてのcronjobの監視をしたい

他ツールとしてRundeckやAirflowとかもあるが、そこまではやらずとも簡易的に導入したい。
こういった問題に直面した時におすすめしたいのがCronitor。

お仕事で導入する機会を得られたので、メモとして残しておく。

Cronitorとは

一言でいうと、Cron監視ツール。他ツールと比較しても小コストでの導入が可能で、導入するだけで既存の全てのCron監視が可能になる。「すぐにでも既存のすべてのcronjobの監視はしたい」といったケースには最適なツールと言える。
公式サイト:https://cronitor.io/

メリット・デメリット

メリット

  • 小コストで導入可能で記述もシンプル
  • crontabに追加するだけ

デメリット

  • ジョブの依存関係の定義などの高機能なことは不可能
  • 有料 ($24.95/月〜)一応フリープランもあるが1つのmonitorしか作れないため動作確認程度でしか使えない
  • 公式:https://cronitor.io/pricing

使い方

使い方は大別して2つあり、まず一つ目はcurlで繋げていくパターン。
各cronjobに一意のidが与えられるので、それを使用して以下のように記述します。
また、idは各モニターで確認でき、モニターの編集画面でスケジュールの設定やアラート通知等の設定ができます。

成功時は&&で繋ぐ。

#mh dom mon dowコマンド

4 5 * * * /invoice-reminders.sh && curl https://cronitor.link/d3x0c1/complete

失敗時は||で繋ぐ。

#mh dom mon dowコマンド

4 5 * * * /invoice-reminders.sh || curl https://cronitor.link/d3x0c1/fail

auth_keyの設定もこんな感じでできます。

#mh dom mon dowコマンド

4 5 * * * /invoice-reminders.sh || curl https://cronitor.link/d3x0c1/fail?auth_key=your_ping_api_key

公式:https://cronitor.io/docs/ping-api#security

もう一つはCronitorCLIを導入するパターン。
CronitorCLIをバッチサーバーにインストールして以下コマンドを叩くとモニターを作成してくれて、スケジュールも自動的に同期してくれる。
数分でセットアップが完了します。

worker1:〜$ cronitor discover

実行後のcrontabは以下のようになる。

25 * * * * cronitor exec aArCdx /invoice-reminders.sh

33 * * * * cronitor exec rHVpx7 cronitor discover --auto

cronitor exec id の形で各cronの実行通知、成功通知、失敗通知を適宜してくれる。
最後の行に追加されるcronitor discover --autoは、新規でCronを追加&変更する場合に1時間ごとにCronitorのタスクが実行され変更を自動検出し、Cronitorモニターに反映してくれる。
公式:https://cronitor.io/docs/integration-guide

まとめ

以上、ざっくりとCronitorについてまとめてみました。
そのほかに通知周りの設定なども、slackをはじめOpsGenie、PagerDuty、メール通知なども簡単に連携できるので、使い勝手が良いと思います。
ぜひ機会があったら使ってみてください。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?