初心者にも分かる、Hatoholのインストールと初期設定Hatoholで実現する分散監視(2)(1/2 ページ)

今回は、Hatoholのインストール方法と初期設定について解説します。もしうまくいかなかった場合にチェックすべきログについても紹介します。

» 2014年03月13日 18時00分 公開
[大和一洋@IT]

はじめに

 今回は、Hatoholのインストール方法と初期設定について説明します。

 連載第1回の「できぬなら作ってしまえ? OSS監視ツール「Hatohol」ができるまで」で解説したように、Hatoholは「サーバー」と「クライアント」の2つのコンポーネントによって構成されています。Hatoholクライアントは、Apache上で動作するDjangoフレームワークを利用しています。また、データベースサーバーとしてMySQLが使用されます。

 これらのソフトウェアはそれぞれ別のコンピューターに配置することもできますが、本稿では図1に示した構成のように、これらを1つのコンピューターにインストールする手順を掲載します。なお、ZabbixおよびNagios(NDOUtilsを含む)は、既に設定されているものとします。

図1 今回説明するHatoholのインストール構成

 なお、本稿の動作確認に使用したマシンのスペックとソフトウェアは以下の通りです。

構成 詳細
OS CentOS 6.5(x86_64)(注1)
CPU Core i7(2.8GHz)
メモリ 2GBytes
HDD 80GBytes
Hatohol バージョン 13.12

注1:以下にオフィシャルのドキュメントがあります。この資料はCentOS 6.4向けですが、本稿のように、6.5でも同様の手順でインストールできます。

https://github.com/project-hatohol/hatohol/blob/master/doc/install/hatohol13.12-centos6.4-ja.md


Hatoholのインストール手順

 では早速、Hatoholのインストール手順を紹介します。基本的には以下のようにコマンドを入力していけばOKです。yumコマンドでインストールの可否を問うプロンプト(Is this ok [y/N]:)が表示された場合は、「y」を入力して処理を続行してください。

Hatoholサーバーのインストール

 それぞれ以下のコマンドを実行します。

- mysqlサーバー

# yum install mysql-server

- json-glib

# yum localinstall https://github.com/project-hatohol/json-glib-for-distribution/raw/master/RPMS/x86_64/json-glib-0.12.6-1PH.x86_64.rpm

- Hatoholサーバー

# yum localinstall https://github.com/project-hatohol/hatohol-packages/raw/master/RPMS/13.12/hatohol-13.12-1.el6.x86_64.rpm

ヒント

上記のyum localinstallコマンドで、インストールされる主な依存パッケージは、次の通りです。

        libsoup, libuuid, mysql, mysql-server


Hatoholクライアントのインストール

 続けて、Hatoholクライアントのインストールに必要なコマンドは、以下のようになります。

- bootstrap

# yum localinstall https://github.com/project-hatohol/bootstrap-for-hatohol/raw/master/RPMS/x86_64/bootstrap-for-hatohol-2.3.2-1PH.x86_64.rpm

 このbootstrapは、Hatoholクライアントが使用するCSSファイルです。Hatoholコミュニティが、インストールパスなどをHatohol用に調整したパッケージを用意しています。上記でもそれを利用しています。

- Django

# yum localinstall https://github.com/project-hatohol/Django-for-distribution/raw/master/dist/Django-1.5.3-1.noarch.rpm

- Hatoholクライアント本体

# yum localinstall https://github.com/project-hatohol/hatohol-packages/raw/master/RPMS/13.12/hatohol-client-13.12-1.el6.x86_64.rpm

ヒント

上記のyum installコマンドで、インストールされる主な依存パッケージは、次の通りです。

        mysql, mysql-server, MySQL-python, mod_wsgi, httpd


 これでインストール作業は完了しました。

初期設定

 次に、初期設定に必要なファイルと処理の流れを図2に示します。初期設定用サンプルファイルを任意のディレクトリにコピーし、その内容をテキストエディターで編集します。その後、コマンドによってその内容をDBに反映します。

図2 初期設定が反映されるまでの流れ

初期設定ファイルの作成

 まず以下のようにして、サンプルファイルを任意のディレクトリにコピーします。ファイル名に制限はありませんので、ここでは末尾の.exampleを削除しています。

# cp /usr/share/hatohol/hatohol-config.dat.example hatohol-config.dat

初期設定ファイルの編集

 コピーしたhatohol-config.datをテキストエディターで開きます。このファイルで設定可能な項目は幾つかありますが、ここでは、通常設定が必要な監視サーバーの指定方法を説明します。

 なお、監視サーバーの設定は、後からWebUIで行うこともできます(注2)。その場合、サンプルとして記載してある「server:」行を削除するか、行頭に「#」を挿入してコメントアウトし、次節の「初期設定の有効化」に進んでください。

注2:Hatohol 13.12では、動的にサーバーを追加した場合、もともと存在するサーバーの過去のイベントと、新規に追加されたサーバーの過去のイベントが時刻順にソートされない不具合が発見されています。これを回避するには、初期設定ファイルでサーバーを指定してください。また本問題は、次リリース14.03で解決される予定です。


 設定ファイル中では、“server:”から始まる1行につき1つの監視サーバーのための設定が記載されます。書式は次の通りです。

server: 監視サーバータイプ, ホスト名, IPアドレス, ニックネーム, ポート番号, 監視間隔, リトライ間隔, ユーザー名, パスワード[, DB名]


 各パラメーターの設定内容は、表1に示す通りとなります。

表1 監視サーバーの設定パラメーター

項目 設定可能値 説明
監視サーバータイプ 0または1 監視サーバーがZabbixの場合0、Nagiosの場合1を設定します
ホスト名 ホスト名 Zabbixサーバー、または、NDOUtilsが使用するMySQLサーバーのホスト名
IPアドレス IPv4アドレス Zabbixサーバー、または、NDOUtilsが使用するMySQLサーバーのIPv4アドレス
ニックネーム 任意の文字列 監視サーバーの分かりやすい名称を指定します。主に表示のために使用されます
ポート番号 0〜65535 Zabbixサーバー、または、NDOUtilsが使用するMySQLサーバーのポート番号。後者のケースで0の場合、MySQLのデフォルトポート番号が使用されます
監視間隔 数値 ZabbixまたはNagiosのデータを読み出す間隔を秒単位で指定します
リトライ間隔 数値 ZabbixまたはNagiosのデータ読み出しが失敗した際のリトライ間隔を秒単位で指定します
ユーザー名 文字列 Zabbixサーバー、または、NDOUtilsのデータを保存するMySQLサーバーへアクセスするためのユーザー名
パスワード 文字列 Zabbixサーバー、または、NDOUtilsのデータを保存するMySQLサーバーへアクセスするためのパスワード
DB名 文字列 NDOUtilsが使用するデータベース名です。Zabbixの場合は、必要ありません

 以下は、図1に示した構成のための監視サーバーの設定例です。サンプルとしてもともと記述されていたserver:行を削除し、代わりに以下の行を追加します。

server: 0, zabbixsv1, 192.168.0.10, Compute group 1, 80, 30, 10, Admin,    zabbix
server: 0, zabbixsv2, 192.168.0.20, Compute group 2, 80, 30, 10, Admin,    zabbix
server: 1, nagios1,   192.168.0.50, Nagios 1,   0,  30, 10, ndoutils, admin, ndoutils

初期設定の有効化

 上記の設定内容を記述し終えたら、その内容を有効化します。まず、MySQLサーバーを起動します。

# service mysqld start

 次いで以下のように入力し、初期設定ファイルの内容をDBに反映します。

# hatohol-config-db-creator hatohol-config.dat 
(省略)
Please input the root password for the above server."(If you've not set the root password, just push enter)
:   ←Hatohol用マシンのMySQLのrootパスワードを入力します。 
FaceRest port: 0
SERVER: TYPE: 0, HOSTNAME: zabbixsv1, IP ADDR: 192.168.0.10, NICKNAME: Compute group 1, PORT: 80, POLLING: 30, RETRY: 10, USERNAME: Admin, PASSWORD: zabbix, DB NAME: 
SERVER: TYPE: 0, HOSTNAME: zabbixsv2, IP ADDR: 192.168.0.20, NICKNAME: Compute group 2, PORT: 80, POLLING: 30, RETRY: 10, USERNAME: Admin, PASSWORD: zabbix, DB NAME: 
SERVER: TYPE: 1, HOSTNAME: nagios1, IP ADDR: 192.168.0.50, NICKNAME: Nagios 1, PORT: 0, POLLING: 30, RETRY: 10, USERNAME: ndoutils, PASSWORD: admin, DB NAME: ndoutils
USER: ID: 1, name: admin, flags: 1023
USER: ID: 2, name: guest, flags: 0

注意

上記コマンドを実行すると、既にConfig DBが存在する場合、それを削除して再度作成します。そのため、いったん運用を開始した環境でその設定を維持したい場合には実行しないでください。


Hatoholクライアント用DBのセットアップ

 まず、以下のコマンドでDBを作成します。

$ mysql -uroot -p
(省略)
mysql> CREATE DATABASE hatohol_client;
mysql> GRANT ALL PRIVILEGES ON hatohol_client.* TO hatohol@localhost IDENTIFIED BY 'hatohol';

 次いで、以下のコマンドでテーブルを作成します。

# /usr/libexec/hatohol/client/manage.py syncdb

DBディレクトリの設定

Cache DBおよびData DB

 /etc/hatohol/initrcというファイルを作成し、以下の例のように、その中にHATOHOL_DB_DIR環境変数の設定を記載してください。

export HATOHOL_DB_DIR=/var/lib/hatohol

 上記で指定したディレクトリが存在しない場合、以下のように作成してください。

# mkdir /var/lib/hatohol

 なお、デフォルトでは、/tmp以下にCache/Data用のDBファイルが作成されます。このディレクトリ内のファイルは起動するたびに削除されますので注意してください。

 Config DBについてはMySQLが管理しますので、MySQLのDBディレクトリの変更方法を公式ドキュメントなどを参照して変更してください。なお、Hatoholが使用するDBの名称は「hatohol」および「hatohol_client」です。

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

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

メールマガジン登録

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