monit
こちらです。
- Easy, proactive monitoring of processes, programs, files, directories, filesystems and hosts | Monit
公式ドキュメント
設定についてはここに網羅されています。
監視チェックが走るタイミング
監視チェックが走るタイミングは、デフォルトでは大元の設定ファイル*1におけるset daemon
で設定された秒数間隔です。
これをチェックひとつひとつで任意のタイミングに変更することができます。公式ドキュメントの「SERVICE POLL TIME」という項目に詳しく書いてあります。ここでは cron の形式で書く方法を取り上げます。
cron 形式で書く
結論のコードは以下のとおりです。今回話題となっている部分は2行目のevery
の行です。いわゆる cron の形式で書かれています。
check host CHECKED_HOSTNAME with address 123.123.123.123 every "0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * 1-6" if failed url https://foobar/path/to then exec "/opt/awesome_script.sh"
ただ、注意点があります。前述の公式ドキュメントにも書いてありますが、用いることができる書式が以下のように制限されています。
Name: | Allowed values: | Special characters: --------------------------------------------------------------- Minutes | 0-59 | * - , Hours | 0-23 | * - , Day of month | 1-31 | * - , Month | 1-12 (1=jan, 12=dec) | * - , Day of week | 0-6 (0=sunday, 6=saturday) | * - ,
具体的な注意点は以下のとおりです*2。
- 数値をゼロ埋めしてはいけない
/
を使うことはできない- 曜日に
7
は使えない
これで、cron 形式でチェックを走らせることができるはずです。