できぬなら作ってしまえ? OSS監視ツール「Hatohol」ができるまで:Hatoholで実現する分散監視(1)(1/2 ページ)
スケールアウトできる監視能力を備え、かつ拠点などに複数設置されている異なる監視システムの情報を一元的に把握でき、しかもオープンソース……そんなツールが欲しくて、作ってしまいました。
始めに〜ないならば作ってみよう
いまやZABBIXをはじめとして、コンピューターやネットワーク機器監視用のオープンソースソフトウェアも十分に実用的な機能を提供し、データセンターなどさまざまな場所で活用されています。
昨今、筆者の周辺では、さらなる高次元の利用のための要望がしばしば聞かれるようになりました。それらは大きく2つに分類できます。
1つは、クラウド、IaaS、ビッグデータ分析の普及などに伴って、データセンター内の機器が増加した場合に、それに対応すべく監視能力がスケールアウトすること。もう1つは、異なる拠点などに複数設置されている監視システムの情報を一元的に把握することです。後者の場合、監視システムごとに異なる種類やバージョンのソフトウェアが使用されていることもあります。
筆者らは、オープンソースでこのようなことが実現できるソフトウェアを調べましたが、要求にマッチするものを見つけることができませんでした。「それならば、満足できるものを自分たちで作ってみよう」という思いで、このような機能を持つソフトウェア「Hatohol」(はとほる)の開発を2013年の初頭に開始しました。
もちろん、オープンソースの監視ソフトウェアを補完する存在ですので、Hatoholもオープンソースとして公開し、誰でも容易に参加できるようにGithub(注1、注2)を使って開発を進めています。いまのところ、MIRACLE LINUXの有志のエンジニアがコードを追加することが多いですが、それでも、これまでに貢献した方のおおよそ半数はそれ以外の所属です。
2013年6月に最初のバージョン0.1をリリースし、その後、3カ月ごとに定期リリースを行っています。機能的にやや物足りなくても、積極的に公開して、ユーザーの要求や提案を受け入れながらの開発を進めることを基本的なポリシーとしています。
例えば2013年9月のリリースでは、アクション機能を追加しました。2013年12月のリリースでは、ユーザーごとのアクセス制限機能や監視サーバーの動的な追加・削除も備え、徐々に充実させています。
また、2013年12月のリリースからは、バージョンの命名ルールを、Ubuntuのようにリリース年月に合わせるスタイル(例「13.12」)にしました。定期的にリリースするならば、この方が分かりやすいと考えたからです。本稿では、執筆時点での最新版であるバージョン13.12をベースに説明します。
注1:https://github.com/project-hatohol/hatohol
注2:Githubは、パッチのマージ要求をWebからの操作で行うpull requestという機能を提供することで、容易かつ効率的なオリジナル開発レポジトリへのフィードバックを実現しています。
Hatoholの概要
Hatoholを用いたシステム構成例を図1に示します。
この図では、2つの拠点にあるZABBIXサーバー2台とNagiosサーバー1台のデータがHatoholで集約され、その統合された監視データがオペレーターのPCに送信されています。
オペレーターは、Hatoholの提供するWebインターフェースでデータの閲覧や操作が可能です。Webインターフェースを通じて利用可能な主な機能は、次の通りとなります。ご覧になればお分かりのように、多くの概念がZABBIXに影響を受けています。
なお本稿では、ZABBIXサーバーやNagiosサーバーを「監視サーバー」と呼びます。
ダッシュボード
異常が発生している機器数などを全体、および各監視サーバーごとに集計して表示します。
トリガー
ZABBIXやNagiosで登録されている監視対象項目を表示します。深刻度、ステータス、監視サーバー、監視対象ホストで表示項目を抽出できます。
アイテム
監視対象項目の現在の値を表示します。監視サーバー、監視対象ホストで表示項目を抽出できます。
イベント
「監視対象項目がしきい値を超えた」などの事象履歴を表示します。深刻度、ステータス、監視サーバー、監視対象ホストで表示項目を抽出できます。
アクション
イベントが発生した際に、実行するコマンドやスクリプトの追加、削除を行います。実行条件として、深刻度、ステータス、監視サーバー、監視対象ホスト、トリガー項目の組み合わせを指定できます。
ユーザー
ユーザーの追加、削除を行います。ユーザーごとに、閲覧可能な監視サーバーを設定できます。また、各ユーザーは、管理者かゲストの属性を持ちます。管理者は全ての操作が可能ですが、ゲストは主に許可された監視対象の閲覧のみに制限されます。
サーバー
ZABBIXサーバー、または、Nagiosサーバー(厳密には、後述するようにNDOUtilsのDBを管理するMySQLサーバー)の表示、追加、削除を行います。
図2は、HatoholのWebインターフェースでのトリガー情報の表示例です。
「サーバー」列の値は、監視サーバーを示しており、testNagios1とtestZbxSv1では、それぞれNagiosとZABBIXサーバーが稼働しています。1つの画面で、Nagiosで監視しているホスト(localhost)とZABBIXサーバーで監視しているホスト(Zabbix_server1)にそれぞれ障害が発生していることを把握可能なことがお分かりいただけると思います。
サポートされている監視サーバーソフトウェアと、Hatohol実行用Linuxディストリビューションは、以下の通りです。
監視サーバー
- Zabbix 2.0系
- Nagios 3系
実行用Linuxディストリビューション
- CentOS 6.4(x86_64)
- Ubuntu Server 12.04.2 LTS(64- bit)
- Ubuntu 13.10(64-bit)※次のバージョン(14.04)がリリースされるまで
Copyright © ITmedia, Inc. All Rights Reserved.