6. ⾃動化の鍵:ワークフロー制御
l ⼈間判断フロー:Enhydra Shark
l 承認、指⽰など各ステークホルダが⼊⼒
l プログラム制御:JobScheduler
l エラー制御、分岐判断のロジックを記述
2017/3/22 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 6
7. SOS JobSchedulerの特⻑
l オープンソース(GNU Public License V.2)
l Linux/Windows版は、全ての機能が無料で使⽤可能。(但しUniversal Agent の同時複数タスク実⾏
は有償ライセンスが必要)
l 有償ライセンスを購⼊すれば、障害対応、バグフィックス/ワークアラウンドの提供、新機能の早
期提供、チケットシステム(OTRS)、JIRAの利⽤が提供される。
l プログラマブル
l ジョブの中で、Java, Perl, JavaScript, VBScript, Powershell, javax.scriptのAPIを使ったロジックを
記述可能
l 外部APIによりRESTまたはコマンドラインからジョブの実⾏制御、実⾏状況の取得が可能
l エンタープライズ・グレード
l ファイル転送やログローテンション等豊富なテンプレート機能
l リモートジョブ実⾏、冗⻑化機能、ロードバランス、外部認証等、エンタープライズ向け⼤規模シ
ステム対応
l Zabbix/Nagios等と(ジョブ実⾏監視)との連携機能
l MySQLの他、PostgreSQL, Oracle, DB2, MS SQL Server, Firebirdに対応
l 豊富な導⼊実績
2017/3/22 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 7
8. ジョブ管理とは
l バッチジョブの実⾏制御
l *nix: Cron
l Windows: タスクマネージャ
l Mainframe: JCL
l 商⽤製品
l JP1
l A-AUTO
l Hinemos
l 千⼿
l Tivoli
Etc.
2017/3/22 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 8
9. JobSchedulerの⽤途
l バッチ処理制御
l 業務アプリケーション
l ハウスキーピング(バックアップ/ログローテ等)
l ⾃動インシデントレスポンス
l 監視システムからのアラートに応じて、ログ収集など⾃動対応
l 継続的デリバリ
l インフラ運⽤のプログラム化
l テスト⾃動化
l ⾃動システム構築
l クラウドインスタンス作成から、アプリ配備
l クラウドに依存しないオートスケール
2017/3/22 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 9
10. 国内導⼊事例1
l 国内製造業A社
l 流通・⼩売業向けの各種機器を製造
l 機器導⼊先のエンドユーザー企業で、機器の保守のほか、ネットワーク監視、運⽤監
視サービスも併せて提供している
l 監視システムのリプレースプロジェクト
l Nagiosを監視エンジンとして使⽤したシステムを開発・導⼊
l 2012年1⽉開発開始、同年9⽉から本稼働
l フロントエンドはCakePHPで開発
l 監視対象ノードは現在6,000を超える
l 監視対象
l 疎通やサーバの⽣死等のネットワーク監視
l 業務運⽤系の監視 ←これはNagiosだけでは難しい
l 店舗レジの開閉店処理の実施有無
l マスタファイルの送信処理の成否
l 監視規模
l 1つのエンドユーザー企業で、数百店舗(=ノード)の監視が必要となることも
2017/3/22 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 10
11. 国内導⼊事例2
l データセンタ事業者(CTCファシリティーズ様)
l 監視サービス設定の⾃動化
l 設定シートを読み込んで、監視対象へのZabbixエージェントインストール/設定と、Zabbixサーバへの監視登録を⾃動化
l データセンタ事業者(NHNテコラス様)
l 設定シートを読み込んで、インスタンス作成、アプリケーション設定をジョブで全⾃動化
l 監視アラートから、プロセス確認、障害対応をジョブで全⾃動化
l ⼤⼿製造業(東京⽇産コンピュータシステム様経由)
l A-AUTOとの連携
l 登録ジョブ同様の処理を⾏う1パターンのみ
l 実⾏管理はA-AUTO側で管理、ジョブ呼び出し時の引き渡すパラメータにより実⾏を⾃動化
l ⼤⼿新聞社(アンタス様経由)
l 記事⼊稿システムのデータ配送
l 既存システムでは、独⾃開発アプリケーションで制御していたスケジューリングをJobSchedulerに変更
l 70以上のジョブと180以上のジョブチェインを登録、制御
l ラッシュ時には数秒単位で50以上のジョブチェーンを起動、制御
l ⼤⼿通信事業者
l 社内設備テスト環境の⾃動化
l 数百パターンの試験項⽬を⾃動実⾏
l ⼤⼿通信事業者
l 携帯サービスサイトのコンテンツ管理
l AWS上での分散クラスター
l ⼤⼿保険会社
l CA-Unicenter(Autosys)100以上のジョブチェーンのリプレース
l マイグレーションサービスによる、約1ヶ⽉での移⾏完了
2017/3/22 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 11
13. JobSchedulerの構成
l JOCコックピット
l WEB UIのジョブ管理画⾯
l 待機中、実⾏中、完了したジョブの状態、
ログを⼀覧できるWEBアプリケーション
l JobSchedulerマスターとは独⽴して稼働
l JobSchedulerマスター
l ジョブの制御と管理を司るサービス
l バックアップフェイルオーバー機能
l RDBMSを使⽤したジョブ履歴、ログ管理
機能(JDBC接続)
l JobSchedulerエージェント
l ジョブのリモート実⾏エージェント
l ゼロコンフィグレーション
l エージェントクラスタリング
l JOE (JobScheduler Object Editor)
l ジョブ定義を作成するための、Javaで稼働
するスタンドアローンアプリケーション
2017/3/22 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 13
JobScheduler
マスター
JobScheduler
エージェント
JobScheduler
エージェント
JobScheduler
エージェント
JOE
JOCコックピット
RDB
JobScheduler
マスター
JobScheduler
マスター
RDB
RDB
エージェント
レス・ホスト
管理⽤PC
管理サーバ
管理対象サーバ
WEB
ブラウザ
Sftp/ftp
ジョブ定義
ファイル
V.1.11新機能
14. JOCコックピット
l 従来のWEB-UI(JOC)をリプレースし、スタンドアローンアプリであったダッシュボード
機能(JID)を包含
l JOC(JobScheduler Operation Center)JobSchedulerマスターに付属する管理⽤WEB-UI
l JID(JobScheduler Information Dashboard)複数のJobSchedulerマスターからなるクラスタを管理できるスタン
ドアローンアプリ、V1.11から廃⽌
l モダンWEBデザイン
l レスポンシブデザイン(PCブラウザだけでなくモバイルデバイスに対応)
l リアクティブシステム(ブラウザのリロードを排したリアルタイムな表⽰)
l グラフィカルインターフェース(リアルタイムな、ジョブ実⾏状況フロー表⽰)
l スケーラブル
l JobSchedulerマスターとは独⽴して稼働するため、⾼負荷になればスケールアウト可能
l セキュリティ強化
l ロールベースの細かなアクセス制御
l ローカル認証(Apache Shiro or RDB)及び Microsoft Active Directory、Open LDAP認証に対応
l 監査証跡として、オーダー/ジョブの開始/停⽌/変更などのWEBサービス操作は操作ログに記録
l オーダー操作に、理由や時間、チケットへのリンクなどを操作ログへのコメントとして追加可能
l その他機能
l ユーザーは各種検索フィルターを作成保存でき、設定を他のユーザーと共有することも可能
l 作成した検索フィルターの表⽰画⾯から、Excelエキスポートによる⾃由なレポート作成
2017/3/22 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 14
V.1.11新機能
15. ReportingDB
JOCコックピット:アーキテクチャ
2017/3/22 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 15
クライアント
JobSchedulerDB
認
証
サ
ビ
ス
コールバック
セッションマネージャ
レポーティング
インベントリ情報
XML
JSON
ハンドラ
JSイベントメッセージプラグイン JSイベントメッセージプラグイン
オブジェクト
XMLファイル
モニタリングジョブ レポーティングジョブ
実⾏計画ジョブ インベントリジョブ
scheduler.xml
Iniファイル
MySQL/MariaDB/
Postgres/Oracle/
SQLserver etc.
xmlレスポンス
イベント
REST
エージェント
http/
https
クライアント エージェント
JobSchedulerマスターJOCコックピット
V.1.11新機能
xmlコマンド
OpenLDAP
MS ActiveDierctory
RDB
オプション
21. JobSchedulerの主要機能
l ジョブ定義
l ジョブ実⾏(時間指定/繰り返し)
l スケジュール
l 多重実⾏・排他制御
l 先⾏・後続制御
l 優先度設定
l イベント監視
l メール通知
l 外部パラメータ設定
l 開始/終了遅延検知
l クライアント / サーバ
l バックアップクラスタ
l 負荷分散クラスタ
l RESTの外部API
l ジョブから使⽤できる内部API
l Javascript / Perl / Java / Shell Script /
Powershell / VBScript / javax.scriptで
のジョブ定義
2017/3/22 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 21
⾼度なジョブ管理機能
Devの使い慣れた⾔語でのJob定義
23. ユニバーサル・エージェント
l V1.10以降でサポート
l 従来のエージェント(クラシック・エージェント)との違い
l https://kb.sos-berlin.com/display/PKB/JobScheduler+Universal+Agent+-+Features
l Pure Java、シングルバイナリー
l ゼロ・コンフィグレーション
l エージェント側での設定を廃⽌、マスタ側からのリクエストに変更
l リモート・ファイル監視
l エージェント側ホストのファイル監視が可能
l Docker サポート
l Dockerコンテナ内でのエージェント稼働、ジョブの起動/停⽌
l MacOSX/Raspberry Pi サポート
l 有償ライセンスのみのリリース
l 無償でのダウンロード/使⽤は可能だが、各エージェント上の同時複数タスク実⾏
は出来ない
l オープンソースライセンスは、SSHのみ
l 30⽇間のトライアルライセンスをお申込いただけば、全ての機能が無料でお試し
できます
l JobSchedulerのマスターとエージェントは、異なるバージョンでも使⽤可能
2017/3/22 Copyright 2016(C) OSS Laboratories Inc. All Rights Reserved 23
24. スタンドアローン構成 クライアントサーバ構成
冗⻑構成 スーパーバイザー構成
システム構成例
2017/3/22 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 24
JobScheduler
マスター
JOCコックピット
JOE
JobScheduler
エージェント
RDBMS
JobScheduler
マスター
JOCコックピット
JOE
JobScheduler
エージェント
RDBMS
JobScheduler
マスター
JOCコックピット
JOE
JobScheduler
エージェント
JobScheduler
マスター
JobScheduler プラ
イマリーマスター
JOCコックピット
JOE
JobScheduler
エージェント
RDBMS
JobScheduler バッ
クアップマスター
JOCコックピット
管理PC
管理PC 管理PC
./live
フォルダ
共有ストレージ
./live
フォルダ
RDBMS
./live
フォルダ
RDBMS
25. 冗⻑構成(Passive Cluster)
l データベースと構成情報
(./config/live)ディレクトリは、
プライマリーとバックアップで共有
が必要
l バックアップは、スタンバイモード
で実⾏し、プライマリーを監視する
l プライマリーが障害時、すべての
ジョブの実⾏状況はバックアップに
引き継がれる
l エージェントで実⾏中のジョブは、
フェイルオーバーの影響を受けない
l Sshログインで実⾏中のジョブは、
フェイルオーバー時エラーとなる
25
JobScheduler
エージェント
JobScheduler
バックアップマスター
Windows/Linux
RDBMS
JobScheduler
エージェント
SSHノード
SSHノード
sshログイン
JobScheduler
プライマリーマスター
Windows/Linux
./config
/live
heartbeat
2017/3/22 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved
JOCコックピット
スタンバイ
Windows/Linux
JOCコックピット
プライマリ
Windows/Linux
VRRP/Keepalived
障害時⾃動切替
26. 冗⻑構成(Active Cluster)
l データベースと構成情報
(./config/live)ディレクトリは、全マ
スターで共有が必要
l ジョブスケジュールは全マスターで共有
され、負荷分散される
l マスターの⼀台が障害時、すべてのジョ
ブの実⾏状況は残りのマスターに引き継
がれる
l エージェントで実⾏中のジョブは、フェ
イルオーバーの影響を受けない
l Sshログインで実⾏中のジョブは、フェ
イルオーバー時エラーとなる
l JOCコックピットは両⽅で稼働するため、
ロードバランサが必要
26
JobScheduler
エージェント
JobScheduler
アクティブマスター
Windows/Linux
RDBMS
JobScheduler
エージェント
SSHノード
SSHノード
sshログイン
JobScheduler
アクティブマスター
Windows/Linux
./live
heartbeat
2017/3/22 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved
JOCコックピット
セカンダリ
Windows/Linux
JOCコックピット
プライマリ
Windows/Linux
ロードバランサ
負荷分散
27. エージェント・クラスター構成
l エージェントは、Process_classで
グループ化できる
l 1システム上に複数エージェントを
動かすことも可能
l Process_classでグループ化した
エージェントに、以下の⼆つの⽅法
でジョブの負荷分散が可能
(1)固定スケジュール
(Fixed Priority Scheduling)
l 最初に指定したエージェントが稼
働していれば常にそのエージェン
トで実⾏される
l そのエージェントが稼働していな
ければ、次に指定したエージェン
トで実⾏される
(2)ラウンドロビンスケジュール
(Round-Robin Scheduling)
l 指定したエージェントから、順番
にジョブが割り振られる
l クラスター構成のマスターと組み合
わせることも可能
27
JobScheduler
エージェント
JobScheduler
マスター
Windows/Linux
RDBMS
Process_class
JobScheduler
エージェント
JobScheduler
エージェント
JobScheduler
エージェント
JobScheduler
エージェント
JobScheduler
エージェント
Process_class
固定スケジュール
ラウンドロビン
スケジュール
2017/3/22 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved
JOCコックピット
Windows/Linux
29. ジョブの定義⽅法
l JOE (Job ObjectEditor)による定義例
l XMLファイルによる定義例
2017/3/22 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 29
<?xml version="1.0" encoding="ISO-8859-1"?>
<job >
<params />
<script language="shell">
<![CDATA[
#!/bin/sh
echo “$SCHEDULER_JOB_NSME is running”
echo “Current Timestamp `date`”
exit $?
]]>
</script>
</job>
30. ジョブの実⾏⽅法
l イベントによる実⾏
l ホットフォルダに作成/更新されたファイルを監視し、⾃動的にジョブ起動、ファイルを移
動/リネーム/削除/処理対象外に指定できる。
l また、メールの受信や、任意のプログラムやスクリプトでジョブを制御する事も可能である。
l カレンダによる計画実⾏
l 平⽇、休⽇、特定の休業⽇、毎週/毎⽉の特定⽇、など柔軟に指定でき、実⾏⽇が休業⽇や
特定⽇の場合、実⾏⽇時を翌営業⽇、前の営業⽇、または実⾏中⽌を指定できる。
l ジョブ実⾏時間を制限するタイムスロット機能
l 実⾏優先順位を制御するプライオリティ機能
l ジョブの排他制御のためのロック機能
l 複数ジョブの同時並⾏実⾏を制御する(待合わせ)シンクロナイズ機能
l ジョブ実⾏エラー時の再実⾏を制御するセットバック機能等、柔軟な
ジョブ実⾏制御機能を備えている。
2017/3/22 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 30
31. 内部API
l JobSchedulerは、プログラムからのジョブ制御を可能にするため、内部
APIと外部APIを備えている。
l 内部API
l Job定義の中で呼び出すことによって、様々なJobScheduler Engineの機能を
使い、動的にジョブやスケジュールの定義を操作できる。
l Java, JavaScript, Perl, JScript, VBScript, Powershell, javax.scriptのAPIが⽤意
されている。
l 内部APIを使って、動的にジョブやスケジュールの定義を操作できる。
l Javaの内部APIを使って、⾃分のホスト名をログに情報を出⼒した後、特定
ジョブを即時実⾏する例(scriptタグのCDATA内に記述)
// print my hostname
spooler_log.info(‘My hostname is ' + spooler.hostname());
// kick next job
spooler.job(‘path/to/job').start();
2017/3/22 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 31
32. 外部API(REST API)
l 外部APIを⽤いるとジョブ定義の動的追加や指定ジョブの即時実⾏などの操作を
外部プログラムからJobSchedulerに対して実施できる。
l 外部APIは、RESTまたはxmlコマンドからジョブの実⾏制御、実⾏状況の取得が
可能である。
l 例えば、localhostのポート4444にインストールされたJobScheudlerの特定ジョ
ブを実⾏するには下記URLにアクセスする。
http://localhost:4444/<start_job job="path/to/job"/>
l JobSchedulerからのレスポンスはリクエストと同様にJSON形式で返す。ブラウ
ザからアクセスした場合、JobSchedulerの状態を⽰すJSONがレスポンスとして
ブラウザの画⾯に表⽰される。
2017/3/22 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 32
33. Cronコンバータ
l JobSchedulerは、既存cronジョブを変換するために下記の⽅法を⽤意している。
※本機能を使⽤する場合は、JobSchedulerインストール時にcronパッケージを選択しておく
l 動的変換ジョブ
l JOC画⾯のStand alone Jobから、sos/cron/scheduler_cron_adopterジョブを実⾏すると、⾃動的に
crontab情報を読み込んでJobSchedulerのJobに変換される。
l Crontabには、事前に以下の設定追加が必要。
# job_name = my_cron_job ##JobSchedulerのJob名
# job_title = test cron job1##Jobのタイトル
# job_timeout = 1 ##Jobのタイムアウト値
*/5 * * * * rppt/usr/bin/hoge.sh
l 変換スクリプト
# cd /opt/sos-berlin.com/jobscheduler/[user-id]/bin/
l Stand alone Jobへの変換
# ./cronconverter.sh –crontab [crontab_name] –target [out_file]
l Job chainへの変換
# ./cronconverter.sh –crontab [crontab_name] –target [out_file] –createJobChains true
l ⽣成された定義ファイル(xml)を、登録するために分割する
# cd /opt/sos-berlin.com/jobscheduler/[user-id]/bin/
# java –jar lib/saxon9he.jar –s:”[変換元ファイル名]” –xsl:”scheduler_data/config/xml2live.xml”
sos.destination=“out_dir”
l out_dirに出⼒されたファイルを、config/liveに移動する
2017/3/22 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 33
35. JobSchedulerのエコシステム
l APIを使って、必要な機能を連携
2017/3/22 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 35
JobScheduler
ジョブ管理
Getinfo
⾃動情報取得
Zabbix/Nagios
監視
HyClops
JobMonitoring
vmware
オンプレミス
(物理・仮想マシン)
トリガー/
アクション
チケット
連携
構成情報
連携
チケット管理
サービスデスク
JOCコックピット
レポーティング
JADE
ファイル転送
HyClops
For Zabbix
構成管理
バージョン管理
36. HyClops JobMonitoring概要
2017/3/22 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 36
ジョブをZabbix監視アイテムに⾃動登録
l JobSchedulerにジョブを登録すると、⾃動的にZabbixに
ジョブ監視アイテムを設定
Zabbixからジョブのアラート監視
l ジョブ定義で指定したアラート(開始遅延、実⾏失敗
等)を監視
Zabbixからジョブの実⾏時間監視
l 各ジョブの実⾏時間履歴を監視、傾向グラフを表⽰
Zabbix監視閾値をジョブから⾃動変更
l 特定のジョブを実⾏する際に、cpu loadやmemory freeの
閾値を変更し、実⾏完了後元に戻す
38. サポートサービス
l 無償サービス
l GPL版ソフトウェアのダウンロード提供
l メーリングリスト/フォーラムでの応答
l SOS社ナレッジベース/ユーザーグループでの情報提供
l 有償サービス
l 年間サブスクリプションライセンスご契約者様には、下
記サービスを年間対応件数無制限にてサポート
§ 有償版ソフトウェアの提供
§ 導⼊⽅法、パラメータ、仕様についての質問
§ 新機能の早期提供
§ 障害調査
§ 発⽣現象の確認と過去事例の調査
§ バグフィックス/ワークアラウンドの提供
2017/3/22 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 38
39. プロフェッショナルサービス
l 年間サブスクリプションライセンスのご契約者様には、下記オプション
サービスを提供
l 拡張サポートサービス
l 標準サポートには含まれない、ジョブ設計/作成⽀援、性能チューニング等に関する、
QA及びアドバイス、ベストプラクティスの提供
l 可能であればお客様環境へのssh/vpnアクセス、調査
l SOS社エンジニアの直接対応も可能(英語のみ)
l マイグレーションサービス
l 他社ジョブ管理製品からの移⾏⽀援サービス
l お客様の既存ジョブ定義をご提供いただき、調査/分析の上お⾒積もりいたします
l トレーニングサービス
l JobScheduler初級トレーニング(4時間x2回)
l アーキテクチャ概要、システム構成、操作⽅法、ジョブ作成⽅法
l 詳細は、お問い合わせください
l お問い合わせフォーム
http://www.ossl.co.jp/jpn/node_184
2017/3/22 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 39
40. ⽇本JobSchedulerユーザーグループ
l 2013/4発⾜
l JobSchedulerいけるやん、という⼈の集まり
l 独SOSサイトにも掲載
“Company News : Japanese language JobScheduler user group on Facebook”
http://www.sos-berlin.com/modules/news/article.php?storyid=42
l 会則/会費ありません
l 会員資格ありません、Google Groupsに参加して下さい
https://groups.google.com/forum/?fromgroups#!forum/jobscheduler-ja
l JobSchedulerを使う上での疑問やノウハウの共有
l 勉強会と⾔う名の飲み会
2017/3/22 Copyright 2017(C) OSS Laboratories Inc. All Rights Reserved 40
42. 各種情報リンク
l ⽇本語紹介資料
http://www.ossl.co.jp/jpn/Products/infrastructure/JobScheduler
l ナレッジベース(英語) https://kb.sos-
berlin.com/display/PKB/Product+Knowledge+Base+Home
l JIRA(英語)
https://change.sos-berlin.com/secure/Dashboard.jspa
l User Forum(英語)
http://sourceforge.net/projects/jobscheduler/forums/forum/486122
l SOS社ホームページ http://www.sos-berlin.com
2017/3/22 Copyright 2016(C) OSS Laboratories Inc. All Rights Reserved 42