ヘルプ Cron監視

Cronジョブ監視

コーディングなしの設定で、cronジョブ、microサービス、デーモンなど、ほぼすべての監視が可能です。cronの障害を迅速にトラブルシューティングし、障害がシステムへ反映する前にアラートを送信します。

Cronジョブを監視する理由

Cronジョブは、バックアップ、Eメール、ステータスチェックなどのタスクをスケジュールする際に使用されます。そのため、これらのcronジョブは、Webサーバーとアプリケーションのパフォーマンスに大きな影響を与える可能性があります。よって、断続的な監視と、重要なジョブやバックエンドシステムに関する洞察を得ることが必要不可欠です。

この監査ソリューションでは、crom監視に関しての以下のような質問に対する答えが得られます。:

  • 現在、または指定された期間において稼働しているcronジョブはどれか、またその数は?
  • タスクが稼働している期間は?
  • 失敗、保留、予想以上の時間で稼働しているジョブはないか?

Cronジョブ監視の追加手順

ジョブ、作業者、サービスなど、HTTPリクエストを送信できるものの追跡を始めましょう。

  1. Site24x7にログインします。サーバー> Cron監視(+)へ進みます。
  2. 以下の項目を入力します。:
    • 表示名: 表示される識別名を入力します。
    • Cron表現: cronジョブをスケジュールする際に使用します。cron表現は、特定のフォーマット上で追加します。
    • タイムゾーン: ドロップダウンリストから適切なタイムゾーンを選択し、cronジョブをスケジュールします。
    • 猶予期間: アラートが開始されてからトリガーするまでの猶予期間を設定することで、ネットワークの遅延によるアラートの誤発生を防止します。
    • しきい値と可用性: しきい値プロファイルを設定することで、リソースがいつ重大またはダウンになるべきかを定義します。
  3. また、アドバンス設定では、以下の項目をそれぞれ入力します。:
    • ユーザーアラートグループ: アラート発生時に通知する宛先ユーザーを入力します。
    • タグ: 固有ラベルを使用して、アカウント内のリソースの分類や配列を行います。
  4. [サードパーティー連携]で、利用可能な連携を選択し、監視アラートを指定したサードパーティーサービスへプッシュします。変更を保存します。
ヒント: cron監視の追加方法には、APIを使用する方法や、スクリプトをダウンロードして、自動検出する方法があります。詳しくはこちら
Cron表現を使用する

cron表現は、スペースで区切られた5つのフィールドで構成されており、固定タイムスケジュールを定義します。

Cron表現の構文:

m h dom mon dow
* * * * * test.sh
| | | | |
| | | | #--------- 曜日 (0 to 6) (日曜日 = 0 or 7)
| | | #----------- 月 (1 to 12)
| | #------------- 日 (1 to 31)
| #---------------- 時 (0 to 23)
#------------------- 分 (0 to 59)

期間 範囲 説明
0~59 * 毎分の開始時間
0~23 * 毎時の開始時間
1~31 * 毎日
1~12 * 毎月。必要に応じて月名を使用することもできます。
曜日 0~7 0、7はどちらも日曜日を表します。また、曜日名を使用することもできます。

例:

  • 毎晩午後11時に、/etc/script にある backup.sh という名前のバックアップスクリプトを実行します。
    00 23 * * * /etc/script/backup.sh
  • 毎月初日の午後11時45分に、backup-monthly.sh という名前の月次バックアップスクリプトを実行します。
    45 11 1 * * /etc/script/monthly.sh
  • /N インターバルを使用すると、指定した範囲内のすべての値がN間隔で実行されます。(9分ごと;0、9、18、27、36、45、54)
    */9 * * * *
  • /etc/script にある test.sh という名前のスクリプトを毎日午前3時と午前5時に実行します。
    * 3,5 * * * /etc/script/test.sh
  • /etc/script にある server.sh という名前のスクリプトを毎日午前6時~午前9時の間に実行します。
    * 6-9 * * * /etc/script/server.sh

設定

cron監視の追加が完了すると、自動的に設定ページへリダイレクトされます。監視用の固有pingのURLが表示されます。:

  • ジョブ開始前にpingされるURL
    https://plus.site24x7.com/cron/{api key}/{監視表示名/デバイスキー}/start
  • ジョブ終了後にpingされるURL
    https://plus.site24x7.com/cron/{api key}/{監視表示名/デバイスキー}/end

ジョブの開始/終了/失敗の際に情報収集するためのURLフォーマット

https://plus.site24x7.com/cron/{apikey}/{監視表示名/デバイスキー}/{エンドポイント}
最初のpingを受信するまで、監視は検出状態となります。

エンドポイントからデータをプッシュする方法

以下の形式を使用して、エンドポイントからデータをプッシュし、ジョブのステータスを更新します。:

1) Crontab 2) Bash 3) Python 4) PowerShell 5) Ruby

Crontabの使用例:

Cronジョブのアラート

ジョブ、作業者、サービスが予想以上に長引く場合にアラートを受け取るための設定をします。このアラートは、以下のような場合に役に立ちます。:

  • ジョブが重複した場合(各ジョブを個々にチェックすることが困難な場合)。
  • 時間の経過とともにパフォーマンスが低下した原因は、顧客ベースの拡大なのか、データベースの拡大なのかを確認する必要がある場合。

設定ページにある固有のping URLを使用すると、アラートを特定の期間に送信できます。実行の際、ジョブ開始時には /start を、終了時には /end をエンドポイントへPingします。また、ジョブの実行時間が変動する場合には、cron表現を使用することで、固定期間を指定することができます。

レポート

Cron監視で利用可能なレポート:

  • サマリーレポート
  • 可用性サマリーレポート
  • 健康傾向レポート

Cronジョブを効率的にスケジュールするためのヒント

  • 予期通りにジョブが開始されなかった場合、猶予期間オプションを選択し、延長期間を入力します。
  • 監視に対して予期せぬアラートが表示された場合、ジョブ開始時に/startエンドポイントに、また終了後に/endエンドポイントへPingを送信しているか確認します。よくある間違いとして、/start または /end ping の欠如や誤った配置などが挙げられます。
  • /start/end のpingが正確に行われている場合は、コマンドのAND (&&)ロジックを、コマンドのOR(;)ロジックへ変更してみてください。
    コマンドが正常に完了した場合には、/endpingへ変更します。:
    /end URL:にpingを実行する際手の順。
    これにより、コマンドが0以外のコードで終了した場合でも、pingを実行するようになります。この場合、コマンドがエラーコードで終了した原因を調べる必要があります。
  • Linuxサーバーの場合はdateコマンドを、Windowsの場合はtzutil /gコマンドを使用して、監視の追加時に、設定したサーバーの時刻とタイムゾーンが一致しているかを確認します。

ライセンス

これはベーシック監視です。

25 cron監視 = 1 ベーシック監視 = $1

関連記事