JobSchedulerでのジョブ監視機能-1  概要説明編


JobSchedulerについて

JobSchedulerは、オープンソースのジョブ管理ツールです。
ドイツの企業「Software-und Organisations-Service GmbH (SOS社)」が開発を行なっています。
Linux/Windows版はGPLのもと、無償で使用することができます。

ジョブ定義は全てXML形式のテキストファイルであり、ジョブの中で、Java, Perl, JavaScript, VBScript, Powershell, javax.scriptの内部APIを使ったロジックを記述可能です。
外部APIによりRESTまたはコマンドラインからジョブの実行制御、実行状況の取得が可能です。

JobSchedulerの詳細は以下をご確認ください。
SOS社:https://www.sos-berlin.com/
ナレッジ:https://kb.sos-berlin.com/display/PKB/Product+Knowledge+Base+Home
OSSラボ:https://www.ossl.co.jp/

Monitoring Interfaceについて

Monitoring Interfaceは、ジョブ、ジョブチェーン、オーダ等を監視し、Nagios、Zabbixなどの監視システムにエラー通知等を行います。
この機能は、V.1.8以降で使用できますが、本記事ではV.1.12.xでの機能を説明します。

仕組み

  1. JobSchedulerより実行されるジョブ、ジョブチェーンのタスク、オーダ実行履歴は、Historyテーブルに記録されます。
  2. Historyテーブルのログ情報を監視対象のジョブ、ジョブチェーンでフィルタリングし、分析を行います。
  3. ジョブ実行が正常に終了したか、もしくはエラーや警告で終了したかを分析します。
  4. このジョブの情報をHistoryテーブルとは別のNotificationsテーブルに書き込み、監視システムへ通知を行います。

使用する利点

・Monitoring Interfaceの実装:
 既存のジョブ、ジョブチェーン等を編集する必要はなく、SystemMonitorNotification_<MonitorSystem>.xmlに通知を行うジョブ、ジョブチェーンの設定を行います。

・監視機能:
 アーキテクチャ全体がJobScheduler側にあるため、ジョブ監視の通知の送信先の監視システムに依存しません。

・ワークロードに依存しない:
 ジョブ監視設定を行っても 他のジョブ、ジョブチェーンのパフォーマンス等の影響はありません。

・明確に定義された情報フロー:
 監視対象のジョブ、ジョブチェーンから詳細なログ情報を、監視システムへ送信することができます。
 また、エラーは定期的に監視システムに送信されます。

提供機能

・Job Chain and Order Monitoring
 ジョブチェーンをトリガーするオーダーによってジョブチェーンを監視できます。

・History Notifications
 ジョブのエラー通知を監視できるだけでなく、ジョブの成功通知も監視できます。
 実行されてたジョブがどのような結果、どのようなステータスで終了したかなど具体的に履歴として残るため、ジョブの実行結果に応じた通知設定を行うことができます。

・Performance measurement (Timer)
 ジョブ・ジョブチェーンの遅延監視を行います。
 ジョブチェーンの完了時に事前に定義された時間以上かかる場合、監視システムに警告アラートを送信できます。

・Acknowledgment
 「Acknowledge」操作を行える監視システムの場合、監視システムよりResetNotificationsを行う外部スクリプトを実行することができます。
 この外部スクリプトを実行することにより、JobSchedulerはResetNotificationsのジョブを実行します。
 ResetNotificationsのジョブを実行することにより、 JobSchedulerはすでに発生したジョブのエラーや警告等の通知を再度監視システムへの送信を行わなくします。

監視システムへの送信メッセージ内容

監視システムへ送信するメッセージは監視ジョブのパラメータを設定できます。
例えば監視システムがZabbixの場合は、zabbix_senderを使用してメッセージを送信します。

以下によく使用するパラメータの内容を記載します。
パラメータは以下に記載している他に多くあります。以下のパラメータは一部を抜粋して記載しましたので、他のパラメータの詳細は以下のナレッジを参照ください。
https://kb.sos-berlin.com/pages/viewpage.action?pageId=2523518

・よく使用するパラメータ

監視システムへのエラー通知設定

次回の記事「JobSchedulerでのジョブ監視機能-2 Zabbixへのジョブエラー通知設定編」で実際に監視システムへの通知設定方法についてを記載します。
監視システムはZabbixを使用し、通知はジョブにエラーが発生した際にZabbixにzabbix_senderを使用してエラーを通知するものとします。
JobScheduler Monitoring Interfaceの設定、Zabbixの設定や、通知する内容は次回の記事で詳しく記載します。