今回はちょっと目先を変えて、ジョブの作成や管理に便利なJobSchedulerの付属ツールを幾つか紹介します。
連載第1回「JobSchedulerの機能と設定〜基礎編」ではJobSchedulerの特徴や主な機能について、第2回の「これからの運用自動化にJobSchedulerを活用する〜基礎編2」では、基本機能を用いた実際の活用例について、そして第3回の「排他制御などを活用して複雑なジョブ定義だってOK」では、ちょっと複雑なジョブの組み方について解説しました。
今回はちょっと目先を変えて、JobSchedulerに付属している便利なツールを紹介します。
JobSchedulerには、第1回で紹介した、ジョブの内容やスケジュールといったジョブに関連する定義を実装する際に用いるデスクトップアプリケーション「JobScheduler Object Editor」(JOE)以外にも、ジョブ作成/管理に便利なツールが付属しています。その幾つかを簡単に紹介しましょう。
JOEと、オペレーション実施のためのWebアプリケーションである「JobScheduler Operations Center」(JOC)を統合した、複数のJobSchedulerエンジンを1カ所で管理できるデスクトップアプリケーションです。
JobSchedulerエンジンを複数のサーバーにインストールして使用する場合、JOCやJOEではサーバーごとにコンソールを開く必要があります。しかしJIDを使用すれば、複数のJobSchedulerエンジンのジョブ実行予定/履歴を一覧表示できます。
LinuxではOS標準のジョブスケジューリングツールであるcronを使用する場面が多々あると思います。追加インストールなどの作業を行うことなく、簡単にスケジュールを実行できるため便利ですが、管理するサーバーが増え、スケジュールが複雑になると記述が煩雑になってきます。
そこでJobSchedulerには、既存のcronジョブをJobSchedulerに移行するため、以下の2種類のツールが用意されています。
・scheduler_cron_adapter
指定したcrontab情報を読み取って、JobSchedulerの内部APIを使用してジョブを生成し、動的に追加するジョブです。
・cronconverter.sh
指定したcronタブをJobScheduler用ジョブ定義ファイルに一括変換するコマンドラインツールです。
どちらを使う場合でも、JobSchedulerインストール時に「JobPackage:Cron」の指定が必要となります。使用方法については以下の情報を参考にしてください。
SOS社のマニュアル(英語)
http://www.sos-berlin.com/doc/en/scheduler_cron_converter.pdf
JobSchedulerユーザーグループでの発表資料
http://www.slideshare.net/SuguruAkiho/job-scheduler-cronjobscheduler
JobSchedulerをインストールすると同時に標準でインストールされるテンプレートジョブです。
インストールパスは、ユーザーデータインストール先の
/home/インストールユーザ名/sos-berlin.com/jobscheduler/scheduler/jobs
となり、下記のものが含まれます。
分類 | 備考 | テンプレート名 | 内容 |
---|---|---|---|
ファイル操作 | 正規表現やタイムスタンプ、生成時間などさまざまな条件指定ができる、OSに依存しないファイル操作コマンド | JobSchedulerCanWrite | ファイル監視、移動/リネーム |
JobSchedulerCleanupFiles | 一時ファイル削除 | ||
JobSchedulerCopyFile | ファイルコピー | ||
JobSchedulerExistsFile | ファイル存在確認 | ||
JobSchedulerNotExistsFile | ファイル非存在確認 | ||
JobSchedulerRemoveFile | ファイル削除 | ||
JobSchedulerRenameFile | ファイルリネーム | ||
JobSchedulerTextProcessor | テキストファイル編集 | ||
JobSchedulerFolderTree | ファイル情報取得 | ||
ファイル転送 | OSに依存せずにファイル転送、リモート側でのコマンド実行、ファイル操作、実行結果ログ/転送履歴の保存、エラー処理(転送サイズチェックなど)が行える | JobSchedulerFTPReceive | ftp受信 |
JobSchedulerFTPSend | ftp送信 | ||
JobSchedulerSCPJob | scpでのファイル転送 | ||
JobSchedulerHttpPostJob | Post files via HTTP | ||
エージェントレスジョブ | エージェントをインストールせずにジョブを実行する | SOSSSHJob2JSAdapter | sshでのジョブ実行 |
JobSchedulerSCPJob | Scpでのファイル転送 | ||
インストーラー | GUIを使用しないサイレントインストーラー | JobSchedulerAgentBatchInstaller | エージェントインストーラー |
JSBatchInstaller | エンジンインストーラー | ||
ジョブ管理 | ジョブ実行状況などの監視 | JobSchedulerCheckBlacklist | Order実行状況監視 |
JobSchedulerCheckRunHistory | Job実行履歴監視 | ||
JobSchedulerCheckSlaves | JobSchedulerスレーブ監視 | ||
JobSchedulerCheckUpdates | JobSchedulerアップデート監視 | ||
ハウスキーピング | JobSchedulerエンジン稼働環境の管理 | JobSchedulerCleanupHistory | ジョブ実行履歴の定期削除 |
JobSchedulerRotateLog | JobSchedulerのログファイルローテーション | ||
JobSchedulerCheckSanity | JobScheduler稼働に必要なディスク空き容量、メモリの監視 | ||
Job Chain制御 | Job Chainなどの制御 | JobSchedulerSynchronizeJobChains | 待ち合わせ制御 |
JobSchedulerRemoteCommandJob | スレーブJobSchedulerへのジョブ投入 | ||
JobSchedulerRestart | JobSchedulerの再起動 | ||
メール制御 | JobSchedulerから送信されるメールの制御 | JobSchedulerDequeueMailJob | メールキューの再送信 |
JobSchedulerMailBounceHandler | 送信失敗時のメール制御 | ||
SOSMailReadInbox | 受信メールによるジョブ実行 | ||
JobSchedulerSendMailJob | メールキューの再送信 | ||
JobSchedulerManagedMailJob | メール作成、送信 | ||
イベント制御 | ジョブ実行の契機となるイベントを制御 | JobSchedulerEventJob | イベント処理 |
JobSchedulerDequeueEventsJob | イベントキューの再実行 | ||
JobSchedulerExistsEventJob | イベント存在確認 | ||
JobSchedulerSubmitEventJob | イベント発行 | ||
JobSchedulerSubmitEventMonitor | イベント監視 | ||
DB管理ジョブ | DBの管理 | JobSchedulerCreateSequence | DB上にシーケンス番号を生成 |
JobSchedulerMySQLMaintenanceMonitor | MySQLのANALYZE TABLE, OPTIMIZE TABLE, REPAIR TABLEを実行 | ||
JobSchedulerMySQLReplicationMonitor | MySQLレプリケーション状態監視 | ||
Oracleジョブ | Oracle操作 | SOSSQLPlusJob | SQL*Plusの実行 |
JobSchedulerPLSQLJob | PL/SQLの実行 | ||
マイグレーション | マイグレーション、変換 | JobSchedulerCronAdapter | Cronを動的に変換 |
JobSchedulerExtractJob | DBに格納されたデータやCSVファイルをフォーマット変換しCSV出力 | ||
レポーティング | ジョブ実行結果のレポーティング | JobSchedulerLogAnalyser | JobSchedulerのログを監視し、キーワードマッチしたログをDBに格納 |
JSReportAllParameters | JasperReportでのレポート生成 | ||
JobSchedulerTimetableJob | 期間指定したジョブ実行計画をDBに格納する | ||
マネージドジョブ | Oracle DBMS_JOBのようなDB上で管理できるジョブ | JobSchedulerManagedDatabaseJob | SQLの実行 |
JobSchedulerManagedDBReportJob | ジョブ実行履歴をXML出力 | ||
JobSchedulerManagedExecutableJob | プログラムの実行 | ||
JobSchedulerManagedMailJob | Orderによって任意のメールを送信 | ||
JobSchedulerManagedStarter | ジョブ起動 | ||
JobSchedulerManagedUserJob | スケジュール監視監視 | ||
JobSchedulerManagedCustomReportJob | カスタムレポート生成 | ||
その他 | その他 | JobSchedulerProcessPreparationJob | Orderのパラメーターを初期化 |
JobSchedulerProcessSubprocessJob | プログラムの実行 | ||
SOS社の解説(英語)
JobSchedulerにアドオンできるファイル転送パッケージで、「FTP/SFTPをサポートする、Javaで作られたファイル転送クライアント」「SOS JobSchdulerのアドオン」「転送履歴参照用のPHPのWebアプリケーション」という3つのコンポーネントから構成されます。
なおファイル転送を行う場合、CentOSでは別途vsftpdやsshd(sftp)などのサービスが必要です。単独でも使用できますが、JobSchedulerと連動することにより、いっそう高度な自動化が可能になります。
また、JADEはSOSftpの後継製品で、下記の機能を提供しています。
SOS社のFAQ(英語)
http://www.sos-berlin.com/mediawiki/index.php/JADE_/_SOSFTP_FAQ
Blue21さんのSOSftp解説記事(日本語)
http://blue21.ddo.jp/server_koutiku/server-centos6/cos6_sosftp.html
第4回ではJobSchedulerに付随するツールを紹介しましたが、ここで紹介できなかったJobSchedulerの機能はまだまだあります。
次回は、JobSchedulerのAPIを利用して、実際の運用監視システムにJobSchedulerを組み込む事例を紹介します。JobSchedulerの最大の特徴は豊富なAPIとツール群であり、単なるジョブ管理にとどまらず、DevOpsのツールチェーンの一部としてさまざまな運用ツールと組み合わせ、業務に組み込めることが大きなメリットとなります。その実例をご紹介する予定です。
なお、日本JobSchedulerユーザーグループでは、そのような事例や使い方に関する勉強会を定期的に開催しています。興味を持たれた方はまず参加してみてはいかがでしょうか。
日本語紹介資料
http://www.ossl.co.jp/jpn/Products/infrastructure/JobScheduler
日本JobSchedulerユーザーグループ
https://sites.google.com/site/jobschedulerja/
SOS ホームページ
SOS コミュニティポータル
http://www.sos-berlin.com/mediawiki/index.php/JobScheduler:Community_portal
FAQs and HowTos
http://www.sos-berlin.com/mediawiki/index.php/JobScheduler_FAQ
User Forum
http://sourceforge.net/projects/jobscheduler/forums/forum/486122
Developer FAQs
http://www.sos-berlin.com/mediawiki/index.php/Developer_FAQs
ロードマップ
JIRA
http://www.sos-berlin.com/jira/secure/Dashboard.jspa
船井覚
OSSラボ株式会社 代表取締役
日本JobSchedulerユーザーグループ 代表
日本openQRMユーザーグループ 代表
1981年関西学院大学卒業。グループワンソフトウェア、ネットマークス、日本IBM、シークエントコンピューターズジャパン、バロースにおいて、PC、UNIX、SMPハイエンドサーバー、ERP、BI、無線技術、セキュリティ、ネットワークサービス、ソフトウェアと、扱うものは変わってきましたが、最先端の技術を追いかけてきました。現在は、HadoopやAsakusaなどの分散処理フレームワークから、分散仮想ストレージ、openQRMやOpenstackなどのクラウド管理システム、JobSchedulerやPuppet、fabric、ansibleなどの運用自動化基盤を企業向けに提供しています。
Copyright © ITmedia, Inc. All Rights Reserved.