最終回となる今回は、JobSchedulerの日本での活用事例を紹介し、さらにJobSchedulerを組み込んだ簡単なシステムを実際に開発してみようと思います。
これまで4回にわたった連載で、JobSchedulerの機能についてかなり詳細なレベルで理解できたのではないでしょうか。
最終回となる今回は、JobSchedulerの日本での活用事例を紹介し、さらにJobSchedulerを組み込んだ簡単なシステムを実際に開発してみようと思います。読者の皆さんの日々の業務や、所属される会社のビジネスの中で、「こういう風にJobSchedulerを活用すれば運用の自動化が図れるのではないか?」と思い浮かべながら、読み進めていただければ幸いです。
主に小売店や飲食店で使用する機器を製造、販売している国内製造業のA社において、JobSchedulerと、オープンソースのネットワーク/サーバーの監視ソフトウェアである「Nagios」を組み合わせ、監視/運用システムを構築した事例を紹介します。
A社の機器は日本全国で使用されています。これら機器の保守サービスを行うため、A社は全国各地にサービスマンを配置し、さらに顧客の各店舗に導入された機器を東京の監視・運用センターにVPNで接続し、監視サービスを提供しています。全体で7000ノードを超える対象機器に対し、Nagiosを使用した監視システムを構築し、24時間365日体制で監視を行っています。
A社は最初、Nagiosだけを使用して監視システムを構築していました。しかし、顧客の中には、複雑なシステムを構築し、その中にA社の機器を組み入れているケースがあり、NagiosによるPingやSNMPでの、いわゆるネットワーク監視だけでは十分ではないことが見えてきました。
例えば、機器の特定のディレクトリにあるログファイルをFTPでダウンロードした上で、その内容をチェックするといった場合には、Nagiosでは対応しき切れません。また、ネットワーク監視で一般的な「5分おき」「10分おき」といった定期的な間隔で監視するのではなく、監視自体は開店前と閉店後の1日2回でも、その時点で特定の処理が行われていないと監視を繰り返すといった複雑なスケジュールの設定も必要でした。
A社はそうした複雑な要件に応じた監視を実現するため、JobSchedulerを使って監視ジョブを実行することにし、Nagiosはその監視結果をパッシブで受け取るのみ、という構造を作り出しました。
この事例では、既に構築済みの監視システムに、後からJobSchedulerを組み込みました。なぜこのような形を取ったのでしょうか?
まず挙げられるメリットは、上記のような複雑な監視に対応できるようになったことです。しかしこれは最低限の達成事項に過ぎません。それを実現した上で、監視内容の設定から異常発見時の対応に至るプロセスを、JobSchedulerを組み込む前の状態と同じワンストップシステムとして構築できたことが重要です。
このシステムを利用するA社の社員は、A社で製造販売している機器についてはプロフェッショナルでも、ITのプロフェッショナルというわけではありません。そのため、「あるときはNagiosの画面、またあるときはJobSchedulerの画面を使う」といった煩雑な操作は望まれません。あくまで1つのシステムであることが重要です。
A社が最初に構築した監視システムにはもともと、CakePHPで開発した画面(監視クライアント)がありました。そのため、ユーザーはNagiosの画面を直接参照する必要もなければ、Nagiosの設定ファイルを書く必要もありません。JobSchedulerによるジョブ実行機能を追加する際にも、その使い勝手を変えないことが求められました。
これから説明するように、JobSchedulerはAPIが充実しており、ジョブ実行機能を組み込んだシステムを容易に開発できます。そのため、「JobSchedulerに対するジョブチェーンの実行指示」「実行スケジュールとパラメーターの設定」「実行ログの参照」については、CakePHPで開発した画面に機能を追加する形で対応できました(なお、ジョブやジョブチェーンの定義自体はプログラミングの要素が含まれるため、JobSchedulerが提供する画面などを使って行います)。
もちろんこの事例は、監視/運用業務そのもので利益を得るという特殊なビジネスを対象としているので、もともとJobSchedulerのようなジョブ管理システムとは相性が良かったのかもしれません。しかし、売上管理や給与計算といった定番の業務システムにもバッチ処理は付きものです。
例えば、ERPパッケージの中には、バッチ処理の実行を目的としたジョブ管理の仕組みが組み込まれているものがあります。そこまでいかなくとも、cronなどの標準的な仕組みを使ってバッチ処理を実行している業務システムは数多くあるでしょう。
JobSchedulerはこうしたシステムにおいて、cronなどの代わりとして使用するだけでも十分な効果が期待できます。そのことは、第4回までの記事で既に感じられたのではないかと思います。
ここではさらに一歩踏み込み、「JobSchedulerを何らかのシステムに組み込む」ことを提案します。この「組み込む」という視点を持つことで、活用の度合いは一気に大きくなるのではないでしょうか。皆さんの会社のシステムの中にも、JobSchedulerを組み込み、活用できるポイントはきっとあるはずです。
Copyright © ITmedia, Inc. All Rights Reserved.