Más contenido relacionado La actualidad más candente (20) Similar a Jtf13 ossジョブ管理システムによる運用自動化事例 (20) Jtf13 ossジョブ管理システムによる運用自動化事例 1. 1
OSS ジョブ管理システムに
よる運用自動化事例
2013 年 7 月 14 日
日本 JobScheduler ユーザグループ
(代表)船井 覚( @satoruf )
井上 研一( @inoccu )
秋穂 賢( @ken_aio )
JTF2013 #techfesta
2013/07/14 JTF2013 #techfesta
2. 2
アジェンダ
• JobScheduler の概要
• JobScheduler の基本機能
• 想定シナリオのデモ
• JobScheduler 事例紹介
• 日本 JobScheduler ユーザーグループ紹介
2013/07/14 JTF2013 #techfesta
3. 自己紹介
• 秋穂 賢(あきほ すぐる)
• 某 Sier 所属
• メインフレーム歴:4年
• OSS 歴: 5 ヶ月
• JobScheduler イケてる!と思ってる一人
3
2013/07/14 JTF2013 #techfesta
5. 5
JobScheduler とは
• OSS の Job 管理製品( GNU Public License )
– ドイツの Software- und Organisations-Service
製
– 2003 年に商用版・ 2005 年に OSS 版をリリース
• Web ブラウザ (JOC) ・ JOE (デスクトップ)と
いった GUI ツールで Job の監視や管理を実施
• Windows, Linux, Solaris( 商用版のみ ), AIX( 商用版
のみ ), HP-UX( 商用版のみ ) に対応
• リモートジョブ実行、冗長化機能、ロードバラン
ス、外部認証等、エンタープライズ向け大規模シ
ステム対応
2013/07/14 JTF2013 #techfesta
7. 7
JobScheduler の概要 - 機能
-
• ジョブ定義
• ジョブ実行(時間指定 / 繰り
返し)
• スケジュール
• 多重実行・排他制御
• 先行・後続制御
• 優先度設定
• イベント監視
• メール通知
• 外部パラメータ設定
• 開始 / 終了遅延検知
• クライアント / サーバ
• バックアップクラスタ
• 負荷分散クラスタ
• SOAP/REST の外部 API
• 独自の内部 API
• Javascript / Perl / Java / Shell
Script / Powershell /
VBScript / javax.script での
ジョブ定義
高度なジョブ管理機能
Dev の使い慣れた言語での Job 定義
2013/07/14 JTF2013 #techfesta
8. 8
クライアント / サーバ
JOCJOC JIDJID
JobScheduler
Engine
JobScheduler
EngineRDBMSRDBMS
JobScheduler の
稼働サーバ
JOEJOE
JobScheduler の
管理端末
JobScheduler
Agent
JobScheduler
Agent
ジョブの稼働サーバ
JobScheduler の基本的な構成
2013/07/14 JTF2013 #techfesta
10. 10
JobScheduler のジョブ
Standalone Job
Job Chain
Schedule
• JobScheduler の特徴
– ジョブ関連の全ての定義が XML ファイルで管理
– 様々な操作を行うジョブが SOS 社から提供されている
• ファイル操作、ファイル転送、 DB 制御、 SQL 操作、エージェントレ
ス実行、
メール制御、レポーティング機能 などなど
• Standalone Job
– 単体で稼動するジョブを定義
• Job Chain
– 複数ジョブに対して順序関係を考慮し
て組み合わせるジョブ (order job) を定
義
• Schedule
– ジョブの稼動予定を定義
• ジョブ定義は shellscript, windows bat
以外に Java,JavaScript,VBScript,
javax.script で定義可能
Order Job
Order Job
2013/07/14 JTF2013 #techfesta
11. 11
定義ファイル例( XML )
Order Job order_job.job.xml⇒
<?xml version="1.0" encoding="ISO-8859-1"?>
<job order="yes" stop_on_error="no">
<script language="shell">
<![CDATA[
echo $SCHEDULER_JOB_NAME
]]>
</script>
<run_time/>
</job>
Standalone Job simple.job.xml⇒
<?xml version="1.0" encoding="ISO-8859-1"?>
<job name=“simple">
<script language="shell">
<![CDATA[
echo $SCHEDULER_JOB_NAME
]]>
</script>
<run_time schedule="my_schedule" />
</job>
Job Chain my_job_chain.job_chain.xml⇒
<?xml version="1.0" encoding="ISO-8859-1"?>
<job_chain orders_recoverable="yes" visible="yes">
<job_chain_node state="test" job=“order_job"/>
</job_chain> Schedule my_schedule.schedule.xml⇒
<?xml version="1.0" encoding="ISO-8859-1"?>
<schedule >
<period single_start="10:00"/>
</schedule>
2013/07/14 JTF2013 #techfesta
12. 12
ジョブ定義例 ( スクリプト )
処理をして次のジョブをキックするジョブ
// print my hostname
spooler_log.info(‘Hello World. I run at ' + spooler.hostname());
// kick next job
spooler.job(‘path/to/kicked').start();
• Java class※ 定義などを省略し、簡単化しています
# print my hostname
$spooler_log->info(' Hello World. I run at ' . $spooler->hostname);
# kick next job
$spooler->job('path/to/kicked')->start();
• Perl
// print my hostname
spooler_log.info(‘Hello World. I run at ' + spooler.hostname);
// kick next job
spooler.job(‘path/to/kicked').start();
• JavaScript
2013/07/14 JTF2013 #techfesta
13. 13
WEB API
PHP のライブラリが SOS より提供
⇒ プログラマブルにジョブ管理可能
# curl 'http://localhost:4444/<start_job%20job="sos/dailyschedule/CreateDaysSchedule
"%20/>'
<?xml version="1.0" encoding="ISO-8859-1"?>
<spooler>
<answer time="2013-07-08 17:51:19.202">
<ok>
<task job="/sos/dailyschedule/CreateDaysSchedule" id="27" task="27" state="none"
name="" enqueued="2013-07-08 17:51:19.211" start_at="2013-07-08 17:51:19.203"
steps="0" log_file="/home/scheduler/sos-
berlin.com/jobscheduler/scheduler/logs/scheduler-2013-07-08-161409.scheduler.log"
force_start="yes">
<log level="info"/>
</task>
</ok>
</answer>
</spooler>
2013/07/14 JTF2013 #techfesta
14. 14
ジョブ管理も CI ・ CD
JobScheduler の定義ファイルは全て XML
ジョブのプログラムやジョブ定義を
開発開発したジョブをバージョ
ン
管理システムに反映
バージョン管理システム
より
CI サーバへ取り込み
継続的にテスト・デプロイを
実施
2013/07/14 JTF2013 #techfesta
20. 自己紹介
• 井上 研一
– Twitter : @inoccu
– Facebook : kenichi.inoue
• アルティザンエッジ合同会社 代表社員
CEO
– 2012 年 7 月 7 日、個人事業主として設立
– 2013 年 7 月 5 日、会社になりました!
– http://artisanedge.jp
– http://artisanedge.jp/solution/jobscheduler/
• Dev 側の人です
2013/07/14 JTF2013 #techfesta
20
21. 導入企業
• 国内製造業 A 社
o 流通・小売業向けの各種機器を製造
o 機器導入先のエンドユーザー企業で、機器の
保守のほか、ネットワーク監視、運用監視
サービスも併せて提供している
2013/07/14 JTF2013 #techfesta
21
22. 背景
• 監視システムのリプレースプロジェクト
o Nagios を監視エンジンとして使用したシステムを開
発・導入
o 2012 年 1 月開発開始、同年 9 月から本稼働
o フロントエンドは CakePHP で開発
o 監視対象ノードは現在 6,000 を超える
• 監視対象
o 疎通やサーバの生死等のネットワーク監視
o 業務運用系の監視 ←これは Nagios だけでは難し
い
店舗レジの開閉店処理の実施有無
マスタファイルの送信処理の成否
2013/07/14 JTF2013 #techfesta
22
23. 業務運用系の監視の特徴
• 監視内容
o 基本的にはファイル(ログ)監視
o エンドユーザー企業によって、監視の方法や
要求レベルは異なる
o ネットワーク環境等もいろいろ( ISDN や
PHS も)
o 常に 24x365 監視ではなく、土日や年末年始
は監視しないといったこともある
• 監視規模
o 1 つのエンドユーザー企業で、数百店舗(=
ノード)の監視が必要となることも2013/07/14 JTF2013 #techfesta
23
24. どう実現するか?
<いままでは>
• シェルや Perl スクリ
プトで監視
• 店舗マスタを CSV 連
携
• cron で監視実行、 at
でリトライ
• 監視結果はログファ
イルとして監視シス
テムに連携
<これからは>
• JobScheduler !
• ワンストップのフロ
ントエンドシステム
で、複雑な監視スケ
ジュールを制御
• JobScheduler のジョ
ブで Nagios に連携
2013/07/14 JTF2013 #techfesta
24
31. JobScheduler を採用したメ
リット
• 監視システムとのワンストップのフロント
エンドシステムを開発できた
o JobScheduler は API が提供されているので、フ
ロントエンドを独自に開発できる
• 既存の監視スクリプトを流用できた
o JobScheduler は何でも実行できる
Shell / Perl / Java / JavaScript ...
• Nagios への連携ジョブを共通化できた
o JobScheduler はジョブチェーンが組めるので、
共通ジョブを開発しておけば便利
• オープンソース!
2013/07/14 JTF2013 #techfesta
31
35. 自己紹介
• PC8001
• オフコン、ビジコン
• メインフレーム
• ミニコン
• スーパーミニコン
• ミニスーパーコン
• ワークステーション
• RISC vs CISC
• 紙テープ、パンチカード
• テープ、ディスクパック
• CP/M, MS-DOS2.0
• ISAM 、階層型、ネットワー
ク型データベース
• RDBMS 、並列プログラミン
グ
• SMP, MPP, NUMA
• ネットワーク
• セキュリティサービス
35
コンピュータ屋歴 32年
エンタープライズ向け OSS インテグレーション
コンピュータ屋歴 32年
エンタープライズ向け OSS インテグレーション
2013/07/14 JTF2013 #techfesta
36. 日本 JobScheduler ユーザーグルー
プ
• 2013/4 発足
• JobScheduler いけるやん、という人の集まり
• 独 SOS サイトにも掲載
“Company News : Japanese language JobScheduler user group on Facebook”
http://www.sos-berlin.com/modules/news/article.php?storyid=42
• 会則/会費ありません
• 会員資格ありません、 Google Groups に参加して下
さい
https://groups.google.com/forum/?fromgroups#!forum/jobscheduler-ja
• 現在メンバー16名
• JobScheduler を使う上での疑問やノウハウの共有
• 勉強会と言う名の飲み会
2013/07/14 JTF2013 #techfesta
36
37. 活動内容
• 勉強会
– 5/2 第0回開催、
– 今後の活動内容について
相談
– 6/7 第 1 回開催、 JTF 参加について相談
• LT :某製造業事例、 fabric を使った
JobScheduler 全自動インストール
– 月 1 回くらいで情報交換
2013/07/14
37
JTF2013 #techfesta
40. 最後に
• Please join us!!
https://groups.google.com/forum/?
fromgroups#!forum/jobscheduler-ja
2013/07/14
40
JTF2013 #techfesta
Notas del editor 複雑な制御はプログラミングをする 一部は JITL で提供されている ALEX