Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Hinemos Deep Dive~ジョブ編~

1,296 views

Published on

Hinemos World2018の公開資料です。

Published in: Lifestyle
  • Be the first to comment

  • Be the first to like this

Hinemos Deep Dive~ジョブ編~

  1. 1. © 2018 NTT DATA INTELLILINK Corporation Hinemos Deep Dive ~ジョブ編~ NTTデータ先端技術株式会社
  2. 2. © 2018 NTT DATA INTELLILINK Corporation 2 はじめに  本セッションでは、Hinemos6.1のジョブ機能を利用した運用 設計をおこなう方をメインターゲットとして、以下をご紹介します  ジョブ実行時の各コンポーネントの役割と処理内容  ジョブ設計時のFAQ
  3. 3. © 2018 NTT DATA INTELLILINK Corporation 3 ジョブ実行時の通信内容 • ジョブ実行時のマネージャ・エージェント間では 以下の処理がおこなわれます ③情報取得 ④ジョブ開始 ⑥ジョブ終了 ②起動指示 ⑤コマンド実行 ① : ジョブセッションを作成、開始 ② : エージェントへのジョブ起動指示情報を作成 ②‘: エージェントに情報を作成したことを連絡 ③ : ジョブ起動指示の取得 ④ : コマンド開始を送信 ⑤ : 起動指示に基づくコマンドの実行 ⑥ : ジョブ実行結果の送信 マネージャ エージェント ①ジョブセッション開始 順番に詳細をみていきましょう ②’ 情報作成連絡
  4. 4. © 2018 NTT DATA INTELLILINK Corporation 4 ジョブセッション開始 • ジョブが起動(クライアントで実行ボタン押下、スケジュー ル等)すると、ジョブセッションを作成 • ジョブセッション作成では、ジョブ定義を実行用にコピー • ジョブセッション作成後に、ジョブ定義を変更しても 実行中のジョブの動作(実行するコマンド等)には影響なし ③情報取得 ④ジョブ開始 ⑥ジョブ終了 ②起動指示 ⑤コマンド実行 マネージャ エージェント ①ジョブセッション開始 内部DB 登録されているジョブ定義 コピー 登録 ジョブ実行時の情報 ②’情報作成連絡
  5. 5. © 2018 NTT DATA INTELLILINK Corporation 5 エージェントへの起動指示 • エージェントに対するジョブ起動指示情報を作成 • この時点では、まだエージェントではコマンドは未実行 • ジョブ[ノード詳細]ビューのメッセージに「エージェント 応答待ち」と表示 開始・再実行日時が 空欄 メッセージが エージェント応答待ち ③情報取得 ④ジョブ開始 ⑥ジョブ終了 ②起動指示 ⑤コマンド実行 マネージャ エージェント ①ジョブセッション開始 ②’情報作成連絡
  6. 6. © 2018 NTT DATA INTELLILINK Corporation 6 起動指示の取得 • エージェントは以下のタイミングでマネージャに接続し、 ジョブ起動指示が存在しないかチェック • 一定間隔(30秒間隔) • エージェントの即時反映用ポート(UDP24005)にパケット受信時 • 起動指示作成後、マネージャは、エージェントの即時反映 用ポートにパケットを送信 • エージェントはすぐにジョブ起動指示を受けとり、ジョブを実行 UDP24005 定期的に 情報取得 マネージャ エージェント すぐに情報取 得 ③情報取得 ④ジョブ開始 ⑥ジョブ終了 ②起動指示 ⑤コマンド実行 マネージャ エージェント ①ジョブセッション開始 ②’情報作成連絡
  7. 7. © 2018 NTT DATA INTELLILINK Corporation 7 コマンドの開始 • エージェントは、ジョブ起動指示を受信すると、実行前に マネージャにジョブを開始することを通信 • マネージャはその時刻をもとに、ジョブ[ノード詳細] ビューの開始日時を設定、メッセージを「エージェント応 答待ち」から「コマンド終了待ち」に変更 • 本通信成功後、エージェントでコマンドを実行 開始・再実行日時が 設定される メッセージが コマンド終了待ち ③情報取得 ④ジョブ開始 ⑥ジョブ終了 ②起動指示 ⑤コマンド実行 マネージャ エージェント ①ジョブセッション開始 ②’情報作成連絡
  8. 8. © 2018 NTT DATA INTELLILINK Corporation 8 コマンドの実行 • 起動指示に含まれるコマンドをエージェントが実行 • 実行したコマンドはエージェントの子プロセスとして実行 • コマンド実行中にエージェントを再起動した場合、ジョブは停止 に遷移 Hinemosエージェントが停止しました ③情報取得 ④ジョブ開始 ⑥ジョブ終了 ②起動指示 ⑤コマンド実行 マネージャ エージェント ①ジョブセッション開始 ②’情報作成連絡
  9. 9. © 2018 NTT DATA INTELLILINK Corporation 9 実行結果の送信 • コマンドが終了後、エージェントはコマンド実行結果(戻り 値、標準出力、標準エラー出力)をマネージャに送信 • マネージャは、その時刻をもとに、ジョブ[ノード詳細]の 終了日時を設定し、メッセージにコマンドの標準出力 (stdout=...)と標準エラー出力(stderr=...)を表示 • 以上でジョブの処理は終了です 終了・中断日時が 設定される メッセージに標準出 力を設定 実行状態が終了 戻り値が設定される ③情報取得 ④ジョブ開始 ⑥ジョブ終了 ②起動指示 ⑤コマンド実行 マネージャ エージェント ①ジョブセッション開始 ②’情報作成連絡
  10. 10. © 2018 NTT DATA INTELLILINK Corporation 10 ジョブ実行後マネージャに接続できない場合は? • エージェントでコマンド実行し、結果をマネージャに送信 • エージェントからマネージャの通信ができない場合 エージェントはジョブの結果の送信を7日間リトライ • それでもマネージャとの接続が復旧しない場合、ジョブ実行結果 を破棄 • 保持期間は、エージェント設定で変更可能 マネージャ エージェント 7日間マネージャに 再接続できない ・ ・ ・ ジョブ結果 を破棄 ③情報取得 ④ジョブ開始 ⑥ジョブ終了 ②起動指示 ⑤コマンド実行 マネージャ エージェント ①ジョブセッション開始 マネージャ 停止 コマンド 終了 ②’情報作成連絡
  11. 11. © 2018 NTT DATA INTELLILINK Corporation 11 Hinemosエージェントでジョブが実行されない場合は? • Hinemosエージェントから、ジョブ開始の通信がおこなわ れない(④の通信がない)場合、マネージャは毎分エージェ ントへの実行指示をリトライ • デフォルトでは10回起動指示をおこなっても、ジョブが開 始されない場合にはタイムアウトエラーで終了 メッセージが Agent Timeout Error (数字)は試行回数設定 エージェント 停止 ③情報取得 ④ジョブ開始 ⑥ジョブ終了 ②起動指示 ⑤コマンド実行 マネージャ エージェント ①ジョブセッション開始 リトライ回数は ジョブ定義で指定 ②’情報作成連絡
  12. 12. © 2018 NTT DATA INTELLILINK Corporation 12 応用編 ジョブFAQ
  13. 13. © 2018 NTT DATA INTELLILINK Corporation 13 応用編 FAQ ここからは、ジョブFAQと題して プロフェッショナルサービスの中で、設計・運用時に よくある質問をピックアップしてご紹介します!!!!!
  14. 14. © 2018 NTT DATA INTELLILINK Corporation 14 ジョブ実行中にどうしても再起動したい • 原則ジョブの実行中に、サービスの再起動は避けましょう ③情報取得 ④ジョブ開始 ⑥ジョブ終了 ②起動指示 ⑤コマンド実行 マネージャ エージェント ①ジョブセッション開始 • Hinemosマネージャ • 起動が完了したジョブは、いつマネージャを再起動しても実行に影響はあ りません • 起動済みのマネージャ側のジョブの情報は、内部DBに保持されている ため、再起動しても失われません • マネージャの停止中、エージェントが接続できなくても、通信のリトラ イ機構により、7日間以内にマネージャが復旧すれば、ジョブの実行結 果は失われません • Hinemosエージェント • エージェントでコマンド実行中は再起 動は避けてください • コマンド実行中にエージェントを再起 動すると、コマンドの結果に依らず、 終了に遷移してしまいます ②’情報作成連絡
  15. 15. © 2018 NTT DATA INTELLILINK Corporation 15 (補足)マネージャ停止中にスケジュールされたジョブは? • マネージャ停止中に実行予定だったスケジュールは、 実行予定時刻からの経過時間が閾値以内の場合、 マネージャ起動直後に実行されます。 • デフォルトでは1時間以内の場合 • つまり、短時間内での再起動であれば、スケジュール の実行漏れは発生しません Hinemosマネージャ停止中 時刻 1時間 スケジュール A スケジュール B スケジュール B • スケジュールBはマネージャ 起動直後に実行される • スケジュールAは実行されない マネージャ起動
  16. 16. © 2018 NTT DATA INTELLILINK Corporation 16 ジョブが期待の時間に終了せず、状況を切り分けたい • ジョブ[ノード詳細]ビューのメッセージを確認しましょう • 「エージェント応答待ち」 or 「コマンド終了待ち」 • コマンドがまだ実行されていないのか、コマンドが終了し ていないのか、原因を切り分けることができます • マネージャに接続しているエージェントは、リポジトリ [エージェント]ビューでもチェックできます • Hinemosエージェント監視で定期チェックも可能 マネージャに接続している エージェントの一覧と 起動時刻・最終接続時刻がわかる
  17. 17. © 2018 NTT DATA INTELLILINK Corporation 17 メッセージの表示内容が途切れている メッセージ全体が途切れる マネージャの設定値をオーバー ジョブの出力内容のみ途切れる エージェントの設定値をオー バー
  18. 18. © 2018 NTT DATA INTELLILINK Corporation 18 メッセージが途切れる •最大値はそれぞれHinemosプロパティと Agent.propertiesで設定します … … job.message.length=1024 … … Hinemosプロパティ Agent.properties マネージャ エージェント 2016-11-17 12:00:00 abcdef… 2016-11-17 11:30:00 コマンド終了待ち 2016-11-17 11:29:00 エージェント応答待ち StdOut = abcdef… 実行結果の送信 xxxバイトまで取得 xxx文字保存 ※極端に大きくすると、通信量の増大に繋がるので 変更する場合でも適度なサイズにしてください。 プロパティ job.message.max.lengthを追加
  19. 19. © 2018 NTT DATA INTELLILINK Corporation 19 ジョブが失敗した場合にリトライしたい • 「ジョブを繰り返し実行する」にチェックすると、ジョブ の終了状態が指定したものになるまで、もしくは規定の回 数、ジョブ/ジョブネットを繰り返し実行可能です マネージャ エージェント 起動指示 情報取得 ジョブ開始 ジョブ終了 コマンド実行 ジョブ起動 例:ジョブの終了状態が 正常以外 起動指示 情報取得 ジョブ開始 ジョブ終了 コマンド実行 sleep 情報作成連絡 情報作成連絡
  20. 20. © 2018 NTT DATA INTELLILINK Corporation 20 ジョブが失敗した場合にリトライしたい 繰り返しの実行状況は、ジョブ履歴から確認可能です 実行回数 それぞれの実行結果が追記
  21. 21. © 2018 NTT DATA INTELLILINK Corporation 21 前のジョブの実行結果を使いたい! • 先行ジョブの実行結果(リターンコード、標準出力内容)は、 以降のジョブで利用することができます
  22. 22. © 2018 NTT DATA INTELLILINK Corporation 22 前のジョブの実行結果を使いたい! JOB1 hostB 変 数 RESULT に RESULT=(.*)を格納 実行されたノードごとに変数に格納されます hostA リターンコード: 0 標準出力: RESULT=abc リターンコード: 1 標準出力: RESULT=xyz 先行ジョブのリターンコード #[RETURN:ジョブID:ファシリティID] #[RETURN:JOB1:hostA] → 0 #[RETURN:JOB1:hostB] → 1 #[RESULT:hostA] → abc #[RESULT:hostB] → xyz 先行ジョブの標準出力 #[変数名:ファシリティID] 変数値はコマンドの引数ほか 待ち条件にも利用可能
  23. 23. © 2018 NTT DATA INTELLILINK Corporation 23 まとめ
  24. 24. © 2018 NTT DATA INTELLILINK Corporation 24 まとめ 本セッションでは以下についてご紹介しました  ジョブ実行時の各コンポーネントの役割と処理内容  ジョブ設計時のFAQ Hinemosをより便利に使ってください
  25. 25. © 2018 NTT DATA INTELLILINK Corporation

×