今のうちに復習しておくZabbix3.0の導入

# はじめに
2017年3月に予定されていたZabbix 3.4がまだリリースされず、Zabbix 3.2のサポート期限が終了してしまいました。（http://www.zabbix.com/jp/life_cycle_and_release_policy ）
個人で楽しむならともかく、仕事で使うとなるとZabbix 3.0 LTS以外の選択肢が無くなってしまった形です。
近いうちにリリースされるはずの3.4に期待しつつ、3.0 LTSの導入方法を再度勉強しておきます。

# 環境
## ホスト環境
Windows PC (Windows Home 7)
VirtualBox (5.1.22)
Vagrant (1.9.4)

## ゲスト環境
CentOS 7.3
Zabbix 3.0 LTS
Apache httpd
Maria DB

# 導入手順
## 1. 仮想マシン起動まで
予めVirtualBox (https://www.virtualbox.org/) とVagrant (https://www.vagrantup.com/ )を導入しておきます。

まずはゲストOS(CentOS7.3）作成用のディレクトリを適当に掘ります。Users\Jinnai73\MyVagrantの下辺りが良いのではないでしょうか。vagrantのboxは定番のbentoから貰って来ます。

```Powershell:Powershell
> mkdir zabbix30
> cd zabbix30
> vagrant init bento/centos-7.3
```

vagrantファイルが作成されました。殆どデフォルトのまま使うことができますが、ZabbixはWebインターフェースを持つために接続用にローカルIPアドレスを持たせる必要があります。OS起動後に設定でもいいですが、折角なのでvagrantファイルを少しいじっておきます。Vagrantファイル中の下記のコメントアウトされている箇所を有効にします。今回は第4オクテットを.30にしてみました。

```Ruby:Vagrantfile
  # config.vm.network "private_network", ip: "192.168.33.10"
  config.vm.network "private_network", ip: "192.168.33.30"
```

併せて、VirtualBoxのネットワークアダプタも確認しておきます。こちらは192.168.33.1とするのが良いでしょう。VirtualBoxマネージャー（GUI）でファイル＞環境設定＞ネットワーク＞ホストオンリーネットワークと進み、編集ボタンを押してIPを確認しておきます。こうなっていれば大丈夫。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/126284/852bac19-abf2-e802-8aa4-a3ef09a66f89.png)

準備が出来たら仮想マシンの起動です。最初は少し時間がかかります。

```Powershell:Powershell
vagrant up
```

※最新のVagrantはバグのため、SSH関連の接続エラーが出て仮想マシンの起動ができないことがあります。
参考：http://demandosigno.hatenablog.jp/entry/2017/04/29/172018

仮想マシンが起動したらターミナルソフトからSSHでログインします。この段階で設定することは殆どありませんが、yumのupdateとタイムゾーンの設定だけはしておきましょう。

``` Bash:Bash
[vagrant@localhost ~]$ sudo su -
[root@localhost ~]# yum update
[root@localhost ~]# timedatectl set-timezone Asia/Tokyo
[root@localhost ~]# timedatectl |grep 'Time zone'
       Time zone: Asia/Tokyo (JST, +0900)
```

## 2. 各パッケージの導入
### 2-1. SQLサーバとWebサーバの導入
Zabbixは監視設定と監視データの蓄積にSQLサーバを、またフロントエンドにWebサーバを必要とします。それぞれインストールまでは行っておきます。CentOS7からはMariaDBがデフォルトのSQLサーバになっていますので、MariaDBを導入しましょう。WebはApacheでOKです。

```Bash:Bash
[root@localhost ~]# yum install mariadb-server
[root@localhost ~]# yum install httpd
```

### 2-2. zabbix-server、zabbix-webの導入
Zabbixはマニュアルが非常に充実しています。マニュアルの通り導入を進めていけば特に詰まる点は無いでしょう。
https://www.zabbix.com/documentation/3.0/manual/installation/install_from_packages

まずはZabbixリポジトリの導入です。公式（http://repo.zabbix.com/ )からOSと導入したいZabbixバージョンを選んでリポジトリを導入しましょう。今回はZabbix3.0、Rhel7になります。

```Bash:Bash
[root@localhost ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
```

導入がうまくいけば、`yum search zabbix`でZabbix関連のパッケージを検索できるようになりますので、続けて本体をインストールしましょう。監視を行うコンポーネントがzabbix-server、zabbix-serverへのWebインターフェースがzabbix-webですので、この2つを導入します。使用するSQLサーバがMySQLかPostgresかで導入するパッケージが異なるので注意しましょう。MariaDBはMySQL系です。

```Bash:Bash
[root@localhost ~]# yum install zabbix-server-mysql zabbix-web-mysql
```

### 2-3. DBの作成
パッケージのインストールが終わりました。zabbix-serverの起動前にデータベースを作成しておく必要があります。まずはSQLサーバを起動させ、rootユーザでログインします。

```bash:Bash
[root@localhost ~]# systemctl is-active mariadb
unknown
[root@localhost ~]# systemctl start mariadb
[root@localhost ~]# systemctl is-active mariadb
active
[root@localhost ~]# mysql -uroot
```

ログインしたらデータベース作成、およびZabbix用ユーザを作成します。
DBName: zabbix
DBUser: zabbix
DBPassword: password
で作ってみましょう。

```sql:MariaDB
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'password';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> quit;
```

できました。続いて、初期設定用SQLを流し込みます。/usr/share/doc/zabbix-server-mysql-3.0.* 以下にある create.sql.gzというファイルをzabbixユーザで叩きます。

```bash:Bash
[root@localhost ~]# zcat /usr/share/doc/zabbix-server-mysql-3.0.9/create.sql.gz | mysql -uzabbix -p zabbix
Enter password: (password)を入力
[root@localhost ~]# 
```

これでzabbixデータベースの初期設定が終わりました。

## 2-4. zabbix-serverの起動
いよいよzabbix-server本体を起動します。先ほど作成したSQLサーバ内のzabbixデータベースへ、zabbix-serverが接続できるようにzabbix-serverの設定ファイルを記述します。

```text:/etc/zabbix/zabbix_server.conf
DBName=zabbix
DBUser=zabbix
DBPassword=password
```

なおデフォルトではDBNameとDBUserはzabbixになっているため、上記の設定だとDBPasswordのみをコメント外しすればOKです。起動しましょう。

```bash:Bash
[root@localhost ~]# systemctl start zabbix-server
[root@localhost ~]# systemctl is-active zabbix-server
active
```

最後にWebインターフェースのためのApacheを起動します。ここでは/etc/httpd/conf.d/zabbix.confのTimezoneだけを変更しましょう。

```text:/etc/httpd/conf.d/zabbix.conf
        # php_value date.timezone Europe/Riga
        php_value date.timezone Asia/Tokyo
```

```bash:Bash
[root@localhost ~]# systemctl start httpd
```

## 2-5. Webインターフェースへのログイン
ブラウザを開いて192.168.33.10/zabbixにアクセスします。以下のような画面が見れたらもう一息です。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/126284/642b5460-adc3-749d-754f-076374d90176.png)

DBPasswordを入力してログイン画面に進みます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/126284/0cf85826-0db1-1416-31b5-8a0d368692ad.png)
デフォルトのUsernameはAdmin、Passwordはzabbixです。

お疲れ様でした。