連載
» 2014年01月14日 18時00分 UPDATE

OSS「JobScheduler」で実現するこれからの運用自動化(4):ジョブの作成や管理に便利な付属ツール

今回はちょっと目先を変えて、ジョブの作成や管理に便利なJobSchedulerの付属ツールを幾つか紹介します。

[船井覚,@IT]

 連載第1回「JobSchedulerの機能と設定〜基礎編」ではJobSchedulerの特徴や主な機能について、第2回の「これからの運用自動化にJobSchedulerを活用する〜基礎編2」では、基本機能を用いた実際の活用例について、そして第3回の「排他制御などを活用して複雑なジョブ定義だってOK」では、ちょっと複雑なジョブの組み方について解説しました。

 今回はちょっと目先を変えて、JobSchedulerに付属している便利なツールを紹介します。

JobSchedulerの付属ツール

 JobSchedulerには、第1回で紹介した、ジョブの内容やスケジュールといったジョブに関連する定義を実装する際に用いるデスクトップアプリケーション「JobScheduler Object Editor」(JOE)以外にも、ジョブ作成/管理に便利なツールが付属しています。その幾つかを簡単に紹介しましょう。

JobScheduler Information Dashboard(JID)

 JOEと、オペレーション実施のためのWebアプリケーションである「JobScheduler Operations Center」(JOC)を統合した、複数のJobSchedulerエンジンを1カ所で管理できるデスクトップアプリケーションです。

jobscheduler04_fig01.png 図1

 JobSchedulerエンジンを複数のサーバーにインストールして使用する場合、JOCやJOEではサーバーごとにコンソールを開く必要があります。しかしJIDを使用すれば、複数のJobSchedulerエンジンのジョブ実行予定/履歴を一覧表示できます。

Cron Converter

 LinuxではOS標準のジョブスケジューリングツールであるcronを使用する場面が多々あると思います。追加インストールなどの作業を行うことなく、簡単にスケジュールを実行できるため便利ですが、管理するサーバーが増え、スケジュールが複雑になると記述が煩雑になってきます。

 そこでJobSchedulerには、既存のcronジョブをJobSchedulerに移行するため、以下の2種類のツールが用意されています。

・scheduler_cron_adapter

 指定したcrontab情報を読み取って、JobSchedulerの内部APIを使用してジョブを生成し、動的に追加するジョブです。

・cronconverter.sh

 指定したcronタブをJobScheduler用ジョブ定義ファイルに一括変換するコマンドラインツールです。

jobscheduler04_fig02.png 図2

 どちらを使う場合でも、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 Integrated Template Library(JITL)

 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 プログラムの実行

JobScheduler Advanced Data Exchange(JADE)/SOSftp

 JobSchedulerにアドオンできるファイル転送パッケージで、「FTP/SFTPをサポートする、Javaで作られたファイル転送クライアント」「SOS JobSchdulerのアドオン」「転送履歴参照用のPHPのWebアプリケーション」という3つのコンポーネントから構成されます。

 なおファイル転送を行う場合、CentOSでは別途vsftpdやsshd(sftp)などのサービスが必要です。単独でも使用できますが、JobSchedulerと連動することにより、いっそう高度な自動化が可能になります。

 また、JADEはSOSftpの後継製品で、下記の機能を提供しています。

  • FTP/SFTPによるファイル転送
  • さまざまな条件指定/操作(部分一致、リネーム、移動)
  • リモート側でのコマンド実行(SSH)
  • 実行結果ログ/転送履歴の保存、レポーティング、アラートメール
  • エラー処理(転送サイズチェックなど)
  • Jumpホスト(proxy)を使用したインターネット経由の実行

【関連リンク】

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ユーザーグループでは、そのような事例や使い方に関する勉強会を定期的に開催しています。興味を持たれた方はまず参加してみてはいかがでしょうか。

著者プロフィール

船井覚

OSSラボ株式会社 代表取締役

日本JobSchedulerユーザーグループ 代表

日本openQRMユーザーグループ 代表

1981年関西学院大学卒業。グループワンソフトウェア、ネットマークス、日本IBM、シークエントコンピューターズジャパン、バロースにおいて、PC、UNIX、SMPハイエンドサーバー、ERP、BI、無線技術、セキュリティ、ネットワークサービス、ソフトウェアと、扱うものは変わってきましたが、最先端の技術を追いかけてきました。現在は、HadoopやAsakusaなどの分散処理フレームワークから、分散仮想ストレージ、openQRMやOpenstackなどのクラウド管理システム、JobSchedulerやPuppet、fabric、ansibleなどの運用自動化基盤を企業向けに提供しています。


Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。