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での機能を説明します。
仕組み
- JobSchedulerより実行されるジョブ、ジョブチェーンのタスク、オーダ実行履歴は、Historyテーブルに記録されます。
- Historyテーブルのログ情報を監視対象のジョブ、ジョブチェーンでフィルタリングし、分析を行います。
- ジョブ実行が正常に終了したか、もしくはエラーや警告で終了したかを分析します。
- このジョブの情報を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の設定や、通知する内容は次回の記事で詳しく記載します。