Hatohol16.04をCentOS7.2にインストール&Zabbix設定するまでまとめ。


Hatohol16.04から、従来のHatoholのインストール手順や設定方法が大幅に変わっていたのでメモがてらインストールからZabbixの登録までをまとめる。

ちなみにHatohol16.04からは監視情報を収集したいor連携したいツールに対してHAPIと呼ばれるプラグインのインストールが必須となった。HAPIプラグインは公開されている仕様に従い自作するか、Hatoholが提供しているものを使用することができるみたい。

*提供されているプラグインはgithubなどから確認できる。
https://github.com/project-hatohol/hatohol-packages/tree/master/RPMS/16.04/16.04-1


なお、今回はConoHaのVPSを借りてまっさらな環境へとインストールを行う。
使用OSはContOS7.2。

#環境構築

## まずはおまじない
###ポート開け。
AWSなんかのクラウド環境を使用する際はクラウド側でもポートの受信規則が必要な場合があるため要確認。

```
# firewall-cmd --add-port=5672/tcp --zone=public --permanent
# firewall-cmd --add-port=5672/tcp --zone=public
# firewall-cmd --zone=public --add-port=80/tcp --permanent
# firewall-cmd --zone=public --add-port=80/tcp
```
###SELinux殺し。
ConoHaのイメージでは最初からDisabledになっていましたが有効になっていた場合はsetenforce 0 などで一時的に無効化するかConfを編集して無効化しましょう

```
# getenforce
Disabled
```

##気を取り直してごそっとインストール
まっさらな環境なのでMariaDBもインストール。
rabbitmq-serverなんかは前記のHAPIプラグインが使用します。

```
# wget -P /etc/yum.repos.d/ http://project-hatohol.github.io/repo/hatohol-el7.repo

# yum install -y epel-release
# yum install -y hatohol-server hatohol-web rabbitmq-server mariadb-server hatohol-hap2-zabbix
```

##DBの設定
*通常は '' の部分にMariaDBで設定したユーザ/パスワードを入れて初期化。
今回は使い捨てなんでカラで。

```
# systemctl enable mariadb
# systemctl start mariadb
# hatohol-db-initiator --db-user '' --db-password ''
# mysql
  MariaDB> CREATE DATABASE hatohol_client DEFAULT CHARACTER SET utf8;
  MariaDB> GRANT ALL PRIVILEGES ON hatohol_client.* TO hatohol@localhost IDENTIFIED BY 'hatohol';
  MariaDB> exit
# /usr/libexec/hatohol/client/manage.py syncdb
```

##rabbitmq-serverの設定
add_vhost
add_user オプションには任意の文字列を指定します
set_permissions -p オプションでは \<vhost> \<user>の順で入力。

```
# systemctl enable rabbitmq-server
# systemctl start rabbitmq-server
# rabbitmqctl add_vhost hatohol
# rabbitmqctl add_user hatohol hatohol
# rabbitmqctl set_permissions -p hatohol hatohol ".*" ".*" ".*"
```

Hatoholサーバの起動

```
# systemctl enable hatohol
# systemctl start hatohol
# systemctl enable httpd
# systemctl start httpd
```

#Hatohol に Zabbixを連携させる

HatoholのWEB画面へログインし、Zabbixのイベントを収集できるよう設定します。
WEB UIへのアクセスはWEBブラウザから
<ul>http://\<Hatohol のIP>/hatohol</ul>
でアクセスできます。ログインを求められるのでadmin/hatoholでログイン。

ログインしたら画面上部の「設定▼」をクリックし、プルダウンの中から「監視サーバ」を選択。
![image01.png](https://qiita-image-store.s3.amazonaws.com/0/105928/33d2eb61-a1f6-1d3d-585e-970b9093cf3f.png)

画面左上の「監視サーバー追加」をクリック。
![image00.png](https://qiita-image-store.s3.amazonaws.com/0/105928/0e996f2b-a117-4908-5191-df13cfd92a21.png)
「監視サーバータイプ」をクリックし、プルダウンから「Zabbix(HAPI2)」を選択。各項目を入力する。
![Hatohol_qiita_01.png](https://qiita-image-store.s3.amazonaws.com/0/105928/1898cab5-5489-03be-ff35-813737299d9d.png)


![image02.png](https://qiita-image-store.s3.amazonaws.com/0/105928/d62c6d4a-94be-3923-b33f-9ecbd866178f.png)


各設定値はこんな感じ

| 項目名 | 内容 |
|:-----------|------------:|
|ニックネーム |任意のニックネーム|
Zabbix API URL|Zabbix API を使用するためのURL
ユーザー名|Zabbixログイン時のユーザ名
パスワード|Zabbixログイン時のパスワード
ポーリング間隔(秒)|任意の秒数
リトライ間隔(秒)|任意の秒数
パッシブモード|チェックしない
ブローカーURL|ブローカURL（フォーマットは下記）
静的キューアドレス|入力不要
TLSクライアント証明書のパス|作成した証明書のパス
TLSクライアントキーのパス|作成したクライアントキーのパス
TLS CA証明書のパス|作成したCA証明書のパス

ブローカURLのフォーマット
amqp://ユーザ:パスワード@rabbitmqサーバのIP/vhost名

TLSは今回は未設定。https://www.miraclelinux.com/tech-blog/hapi2.0de この記事に使用法が乗っているので試してみるかも。

設定が完了したらHatoholの「イベント」画面に移動。ここに登録したZabbixのイベントが出てきたら設定完了!