ククログククログ監視統合ビューアHatoholのセットアップ方法はじめに最近、クリアコードではHatoholというソフトウェアの開発に参加しています。Hatoholは複数の統合監視システムの情報を一括して表示することを可能とするソフトウェアです。現在対応している統合監視システムはZabbixおよびNagiosです。他の監視システムに対応することも検討しています。このようなシステムが必要なのかといった背景や、Hatoholの概要については、ミラクル・リナックス社のサイトや、OSCでのミラクル・リナックス社のセミナー資料などが詳しいので、今回の記事では割愛します。Hatoholプロジェクトでは広く開発者を募集していますが、Hatoholを動かす前提として、最低でも一つのZabbixあるいはNagiosを用意しておく必要があり、またHatohol自体をソースからインストールして利用するまでの手順もまだこなれていないため、開発に参加するまでのハードルはやや高いと感じています。そこで今回は、Hatoholをソースからのビルドしてインストールする方法について紹介します。6.4用にはRPMパッケージも提供しています。ソースからビルドする気力はないが、とりあえずインストールして使ってみたいという方はこちらを利用する方が簡単でしょう。RPMでのインストール方法については、別途ドキュメントを用意していますので、そちらを参照して下さい。Hatoholの構成Hatoholは大きく分けて以下の2つの部分で構成されています。(Djangoアプリケーション)今回の記事では「Hatoholクライアント」と呼称しますソースパッケージは一つにまとめられているので両者は一緒にインストールされますが、使用のための設定はそれぞれ施す必要があります。12.04に対するインストール方法を紹介します。3以上ZabbixあるいはNagiosは別途用意する必要があります*2。APIにアクセスできるアカウントが必要です。http://192.168.1.10/zabbix/)Nagiosを使用する場合は、NDOUtilsを用いてNagiosのデータをMySQLで管理し、そこから監視情報を取得します。HatoholのインストールHatoholのインストール方法は、ソース内の以下のドキュメントにも記されています。server/README.mdclient/README.md今回は要点のみをかいつまんで紹介します。依存パッケージのインストールまず、Hatoholサーバのビルドに必要なパッケージをインストールします。uuid-dev次に、Hatoholクライアントの実行に必要なパッケージをインストールします。Djangoの動作に必要なPythonのパッケージはpipでインストールします。Bootstarpのインストールについては後述します。Hatoholのソースコードの取得HatoholのソースコードはGitHubで公開しています。以下のコマンドで、GitHubから最新のコードを取得して下さい。https://github.com/project-hatohol/hatohol最新のコードではビルドに失敗するなどの問題がある場合は、リリース時点のコードをチェックアウトして試して下さい。13.12ビルド手順ソースディレクトリ下で以下の手順を実行してビルド・インストールします。/sbin/ldconfigBootstrapのインストールHatoholクライアントの実行にはBootstrapが必要ですが、Hatoholのソースには含まれていませんので別途インストールする必要があります。2.3.2を取得して下さい*3。取得後、zipアーカイブ内の「css」「img」「js」以下のファイルをそれぞれHatoholクライアントの対応するディレクトリ下にコピーします。/usr/local/libexec/hatohol/client/static/上記ではインストール先である/usr/local以下にコピーしていますが、Hatoholクライアントはソースディレクトリから直接実行することもできます。開発中はこちらから実行する方が手軽でしょう。その場合はソースディレクトリ以下にコピーします。/path/to/hatohol/client/static/Hatoholサーバのセットアップおよび実行Hatoholは以下の2種類のDBを使用します。監視データのキャッシュ用それぞれ、Hatohol用のDBおよびディレクトリを用意する必要があります。設定の準備MySQLへのDB作成および設定の投入は、hatohol-config-db-creatorというコマンドで行うことができます。投入する設定は、テキストファイルで記述します。ソースツリー内の以下のパスにサンプルがありますので、これをコピーして必要な箇所を修正して下さい。server/tools/hatohol-config.dat.exampleいくつか設定項目がありますが、ひとまず必要なのは、監視するZabbixあるいはNagiosの設定でしょう。以下に該当行のサンプルを示します。"は設定カテゴリ名ですので、このまま記述します。以降はカンマ区切りで各設定項目を記述します。各項目の意味は、順に以下の通りです。Nagios)ホスト名IPアドレスニックネームポートポーリング間隔(秒)接続エラー時のリトライ間隔(秒)ユーザー名パスワードDB名(Nagiosのみ)設定ファイルの準備ができたら、hatohol-config-db-creatorで設定を投入します。監視データ(SQLite3のDBファイル)を格納するディレクトリは、デフォルトでは/tmpを使用します。任意のディレクトリに変更することもできますので、変更したい場合はあらかじめディレクトリを作成しておきます。以上でHatoholサーバの最低限の準備は完了です。準備が整ったら、以下のコマンドでhatoholサーバを起動します。hatohol上記のように何もオプションを指定しない場合、hatoholはデーモンモードで起動します。開発中の場合はコンソールにログを表示しながら実行するのが便利です*4。「--foreground」オプションを付けてhatoholを起動すると、hatoholをフォアグラウンドで実行することができます。--foregroundキャッシュディレクトリを変更したい場合は、環境変数HATOHOL_DB_DIRを与えてhatoholを起動します。--foregroundより詳細なデバッグログを出力したい場合は、環境変数MLPL_LOGGER_LEVEL=DBGを与えます。--foreground動作確認HatoholサーバはRESTインターフェースを提供していますので、wgetなどで動作を確認することができます。http://localhost:33194/hello.htmlただし、Hatoholサーバ上のリソースを取得するためには認証が必要なため、単純に上記のようなアクセス方法ではエラーが返されます。{"apiVersion":3,"errorCode":22}ひとまずHatoholサーバが動作していることは上記でも確認できているため、ここではこれ以上深入りしません。Hatoholクライアントのセットアップおよび実行セットアップ方法Hatoholクライアントは、自身の設定をHatoholサーバとは別にMySQLに保持します。このDBについても事前に用意しておく必要があります。'hatohol';DB作成後、Hatoholクライアントディレクトリ下で以下のコマンドを実行してテーブルを作成します。syncdbHatoholクライアントの実行HatoholクライアントはApacheなどのWebサーバを使用して動作させることを想定していますが、開発中はDjangoの開発サーバを使用するのが手軽です。Hatoholクライアントディレクトリ下で以下のコマンドを実行してWebサーバを起動します。runserver動作確認Webブラウザでhttp://localhost:8000/viewer/にアクセスし、起動していることを確認します。hatohol-config.datでユーザーの設定を特に変更していない場合、初期の管理者アカウントは以下になります。hatoholまとめHatoholプロジェクトへの参加者が増えてくれることを期待して、Hatoholのインストールおよび実行方法について駆け足で説明しました。Hatoholは開発がはじまってまだ間もないソフトウェアですので、ソフトウェア自体の完成度の面でも、プロジェクト体制の面でも足りていない部分が多々あります。今回の記事をきっかけに、Hatoholに興味を持って協力して頂ける方が一人でも多く現れてくれることを願っています。Hatoholプロジェクトの現状や、より詳しい情報ついては、また機会を設けて紹介する予定です。13.10ですので、厳密にこのバージョンでなければ動かないというわけではありません。今回の記事ではこれらのセットアップ方法については扱いませんので、環境が無い場合はWeb上の他の記事などを参照して下さい。近い将来に3系に移行するはずです。デーモンモードの場合、ログはsyslogに記録されます。4.0とGFDLのデュアルライセンスで自由に利用できます。クリアコードはプログラミングが楽しいソフトウェア開発者を1名募集しています。クリアコードは「クリアコードをいい感じにする人」を1名募集しています。クリアコードはフリーソフトウェア開発で培った技術力を提供しています。Thunderbird)とRubyとGroonga(全文検索)に関連した開発を得意としています。