今回は、Hatoholのインストール方法と初期設定について解説します。もしうまくいかなかった場合にチェックすべきログについても紹介します。
今回は、Hatoholのインストール方法と初期設定について説明します。
連載第1回の「できぬなら作ってしまえ? OSS監視ツール「Hatohol」ができるまで」で解説したように、Hatoholは「サーバー」と「クライアント」の2つのコンポーネントによって構成されています。Hatoholクライアントは、Apache上で動作するDjangoフレームワークを利用しています。また、データベースサーバーとしてMySQLが使用されます。
これらのソフトウェアはそれぞれ別のコンピューターに配置することもできますが、本稿では図1に示した構成のように、これらを1つのコンピューターにインストールする手順を掲載します。なお、ZabbixおよびNagios(NDOUtilsを含む)は、既に設定されているものとします。
なお、本稿の動作確認に使用したマシンのスペックとソフトウェアは以下の通りです。
構成 | 詳細 |
---|---|
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のインストール手順を紹介します。基本的には以下のようにコマンドを入力していけばOKです。yumコマンドでインストールの可否を問うプロンプト(Is this ok [y/N]:)が表示された場合は、「y」を入力して処理を続行してください。
それぞれ以下のコマンドを実行します。
- 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クライアントのインストールに必要なコマンドは、以下のようになります。
- 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に反映します。
まず以下のようにして、サンプルファイルを任意のディレクトリにコピーします。ファイル名に制限はありませんので、ここでは末尾の.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が存在する場合、それを削除して再度作成します。そのため、いったん運用を開始した環境でその設定を維持したい場合には実行しないでください。
まず、以下のコマンドで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
/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」です。
Copyright © ITmedia, Inc. All Rights Reserved.