monit で任意のタイミングで監視チェックを走らせる

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 形式でチェックを走らせることができるはずです。

*1:/etc/monitrc など

*2:微妙にハマりました

Powered by はてなブログ