写真●Hinemosの開発プロジェクトを率いたNTTデータ 基盤システム事業本部 オープンソース開発センタ 技術開発担当の藤塚勤也シニアスペシャリスト(右)と西川治氏
写真●Hinemosの開発プロジェクトを率いたNTTデータ 基盤システム事業本部 オープンソース開発センタ 技術開発担当の藤塚勤也シニアスペシャリスト(右)と西川治氏
[画像のクリックで拡大表示]
図●Hinemosの特徴は、ノードを業務やハード種別など、さまざまなグループ単位で管理できること
図●Hinemosの特徴は、ノードを業務やハード種別など、さまざまなグループ単位で管理できること
[画像のクリックで拡大表示]
画面●Hinemosを操作する「クライアント」では、ジョブ管理に加え性能管理も可能。Eclipse RCPとグラフ表示用ライブラリのJFreeChartを利用して開発した
画面●Hinemosを操作する「クライアント」では、ジョブ管理に加え性能管理も可能。Eclipse RCPとグラフ表示用ライブラリのJFreeChartを利用して開発した
[画像のクリックで拡大表示]

 「コストを自社で持ち出してでも企業情報システムで利用できるレベルまで引き上げたかった」----。NTTデータの基盤システム事業本部 オープンソース開発センタは現在、オープンソース・ソフトウエア(OSS)の運用管理ツール「Hinemos(ひねもす) ver.2」をsourceforgeで公開している。この3月にバージョンアップしたHinemosは、実システムで利用できる水準に達し、2006年末に稼働する実システムでの採用が決まった。「ジョブ管理ができるオープンソースの運用管理ツールとしては、日本発で世界初だ」と胸を張るHinemosについて、開発の中心となった同センタ 技術開発担当の藤塚勤也シニアスペシャリストと西川治氏に聞いた(写真)。

----Hinemosの開発のきっかけは?
 ないから作ろう、というものでした。LAMP(Linux、Apache、MySQL、PHP)を初めとして、OSSの活用が企業に浸透してきています。しかしジョブの終了条件にしたがって後続ジョブを制御するといった、ジョブ管理ツールがOSSでは存在しませんでした。単機能の運用管理ツールなら、OSSでもあります。例えば、トラフィックの監視機能では「MRTG(Multi Router Traffic Grapher)」、サーバーのサービス監視機能は「Nagios」、といった具合です。今後、OSSを利用したシステム構築がより一層増えてくる中、日本人のきめ細かいジョブ運用手法を反映して、性能管理も一元化できるツールの存在が欠かせないと考えました。
 ただ、開発するにはコストがかかります。そこでHinemosの企画を独立行政法人情報処理推進機構(IPA)の「2004年度下期オープンソースソフトウェア活用基盤整備事業」に応募しました。結果、「分散ファシリティ統合マネージャ」のテーマとして採用されて2004年12月から2005年8月までからIPAからの委託という形で開発を進めました。

----その後もバージョン・アップを実施したようですが
 はい。この3月31日にver.2をリリースしました。正直に言って、IPAの委託開発版(ver.1)は、企業利用に耐えられないものでした。これは「商用ツールに負けない機能をまず作る」というIPAとの合意の元、ユーザー認証や権限管理などのセキュリティ機能を実装しなかったためです。
 今回のバージョンアップでは、自社のコストでそれら不足機能を追加しました。これで企業で使っていただけるレベルに達したと思います。今後、開発コストをどう回収するかは頭の痛いところですが(笑)。

----Hinemosはどのような機能がありますか
 大きく三つあります。まず「商用に負けないコアな機能」として実装したのが「一括制御機能」です(図)。管理対象のコンピュータを業務やハード種別などさまざまなグループに分類して一括管理できます。例えば複数台あるWebサーバーだけを対象に、ソフトをインストールしたりできます。Webサーバーをスケールアウトして利用するようなWebアプリケーションの運用管理で役立つと想定しています。次に「監視管理・性能管理機能」です。SNMPでのネットワーク機器監視、SQL文の発行によるテーブル監視、各ノードのプロセス監視などが可能です。三つ目が「ジョブ管理機能」です。カレンダに実行時間を設定できるなど、ジョブの設計と運用を容易にできるようにしています。
 そのほかユーザーのアクセス権限管理などセキュリティ面にも配慮しています。

----Hinemos自体もほかのOSSで作られているそうですね
 Hinemos開発の裏の目的は「OSSでここまでできるんだ」という事例を示したかったことです。Hinemosのアーキテクチャは三つに分かれます。運用オペレータが作業するためのクライアント・ソフト「クライアント」、運用管理の各機能を提供するエンジンとデータを格納するリポジトリを内包するサーバー・ソフトである「マネージャ」、そして管理対象のコンピュータである「管理対象ノード」です。
 「クライアント」と「マネージャ」、そして「管理対象ノード」にインストールするエージェント・ソフトを、すべてOSSで構築しました。特に、クライアントの操作画面の基盤にEclipse RCP(Rich Client Platform)を使ったことと、マネージャの実行エンジンとしてJBossを採用したことに注目してもらいたいです。実際、開発側としてもプラグインで機能をどんどん拡張できるEclipse RCPの新しい可能性には驚きました(画面)。今でしたらSpring Frameworkなどで作るのでしょうが、Hinemosを使うユーザーにもOSSの可能性を感じてもらえればと思います。

----今後の機能拡張の予定は?
 時期は未定ですが、日本の運用には欠かせない帳票系のサポートと、ITIL(ITインフラストラクチャ・ライブラリ)でいうところインシデント管理の機能追加を計画しています。またWindowsプラットフォームでも稼働できるようにしたいと思っています。
 ただこうした機能拡張を成功させるには、綿密なテストが必要です。正直に言えば現状のマンパワーでは限界があるので、今後コミュニティを立ち上げるなどして、オープンソースらしい開発を進めていこうと思っています。現在、開発者ブログとsourceforge内にメーリングリストを立ち上げています。
 Hinemosという名前は、柳生宗矩の「兵法家伝書」の中に書いてあった終日(ひねもす)からヒントを得ました。24時間、つまり終日が当たり前になったシステム運用業務を支えるツールでありたい、さらに与謝蕪村の有名な句である「春の海 終日のたり のたりかな」から連想されるように、ゆとりあるシステム運用業務になるように手助けしたいという想いをこめました。ライセンスはGNU GPL(General Public License)で公開しており、日本語と英語のマニュアル作成にも力を入れました。ぜひ多くの現場で使ってもらい、そして多くのフィードバックを寄せてもらえればと思っています。