Zabbix4.4を構築してみた話

#はじめに
Zabbixを触ってみたいなと思い、せっかくならGCPで、かつ構築した時点（2020年2月）でZabbix最新版の4.4で構築してみました。

#構成
まずはZabbixサーバ用のインスタンスを作成します。
以下のように作成しました。
マシンスペックに関しては監視対象の数や登録する監視項目の数で必要なスペックが変わってきますが、
今回はテストなので適当です。

| 項目 | 内容 |
|:--|:--|
|インスタンス名   |zabbix-server	   |
|リージョン   |us-central1	   |
|ゾーン   |us-central1-f	   |
|マシンタイプ   |n1-standard-2（vCPU x 2、メモリ 7.5 GB）   |
|ブートディスク   |CentOS 7   |
|IPアドレス  |静的IPアドレスを作成   |

使用した環境は以下になります。

| 項目 | 内容 |
|:-:|:-:|
|OS   |CentOS 7.7   |
|ミドルウェア   |Apache <br>  MariaDB <br> PHP  |
|Zabbix server   |4.4  |
|Zabbix agent   |4.4   |

#手順

**参考にさせていただいたサイト一覧**

- [Zabbix 公式ドキュメント](https://www.zabbix.com/documentation/current/manual/installation/install_from_packages/rhel_centos)
- QiitaのZabbix関連の記事

##1. 必要なパッケージのインストール

Zabbixリポジトリの追加します。
新しいバージョンが公開されている場合は以下の公式リポジトリから確認してください。
> [Zabbix Official Repository](https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/)

リポジトリ構成パッケージをインストールします。

```bash
$ rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
```


次に、前提として必要なパッケージをインストールしていきます。
phpについては `groupinstall`を使い関連パッケージも一緒にインストールします。

```bash
# 必要パッケージのインストール
$ yum install httpd

$ yum install mariadb mariadb-server

$ yum groupinstall php
```
次にZabbixサーバに必要なパッケージをインストールします。
`yes/no`を何度か聞かれますがすべて`y`で進めてください。面倒でしたら発行コマンドに`-y`をつけて実行しますと、すべて`y`で実行されます。

```bash

$ yum install zabbix-web-mysql zabbix-web-japanese zabbix-server-mysql
```

##2.もろもろ設定していく

まずはZabbix serverの設定から行います。

```bash

# 設定ファイルの編集 - 該当行のコメントアウトを外し、DBのパスワードを設定する
$ vi /etc/zabbix/zabbix_server.conf
以下変更内容
-------------------------------------------------
# DBPassword=
↓
DBPassword=xxxxxxxxxx <---ここに任意のパスワードを記載
-------------------------------------------------
```
次にDBの設定を行います。

```bash
# 自動起動設定を有効にする
$ systemctl enable mariadb
# サービスの起動
$ systemctl start mariadb

# DBの初期設定を実施 
# yes/noを何度か聞かれますがすべて[y]で進めてください。パスワードはzabbix_server.confで設定したものと同じものにしました。
$ mysql_secure_installation

# DBへログイン
$ mysql -u root -p <パスワード>

# データベースzabbix文字セットutf8 collat​​e utf8_binを作成します。
MariaDB [(none)]> CREATE DATABASE zabbix character set utf8 collate utf8_bin;

MariaDB [(none)]> CREATE USER zabbix@localhost IDENTIFIED BY '<パスワード>';

MariaDB [(none)]> GRANT ALL ON zabbix.* TO zabbix@localhost;

MariaDB [(none)]> quit
Bye

```

Zabbix用のスキーマファイルをデータベースに読み込みます。

```bash
$ zcat /usr/share/doc/zabbix-server-mysql-4.4.*/create.sql.gz | mysql -u zabbix -p zabbix
Enter password:  ←DBユーザzabbixのパスワードを入力
```

SELinuxの設定を無効化し、OSを再起動します。

```bash
$ vi /etc/sysconfig/selinux
#変更箇所
SELINUX=enforcing
↓
SELINUX=disabled

#再起動
$ reboot
```

ファイアウォール設定（zabbixサーバ側）

```bash

$ firewall-cmd --add-port=10051/tcp --zone=public --permanent
success
$ firewall-cmd --add-service=http --zone=public --permanent
success
$ firewall-cmd --reload
success
```

Apacheの自動起動設定とサービス起動を行います。

```bash
$ systemctl enable httpd
$ systemctl start httpd
```

ざっくり最低限Zabbixサーバ側の設定は以上です。

##3. 監視対象の設定

ここからは監視対象側での設定となります。


zabbix-agentのインストール

```bash

# Zabbixリポジトリの追加
$ rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm

$ yum install zabbix-agent
```

設定ファイルの編集

```bash
$ vi /etc/zabbix/zabbix_agentd.conf
# リモートコマンド監視の有効化, コメントアウトを外して、値を1に変更する
#以下変更箇所
# EnableRemoteCommands=0
↓
EnableRemoteCommands=1

# 監視を許可するサーバIPアドレス
# ZabbixサーバのIPアドレスに変更する
Server=127.0.0.1
↓
Server=xxx.xxx.xxx.xxx

# アクティブチェック監視データの送信先サーバIPアドレス
# ZabbixサーバのIPアドレスに変更する
ServerActive=127.0.0.1
↓
ServerActive=xxx.xxx.xxx.xxx

# OS上のホスト名ではなく、Zabbix監視設定上のホスト名なので注意
Hostname=Zabbix server
↓
Hostname=myhost01
```

zabbix-agentの自動起動設定とサービス起動を行います。

```bash
$ systemctl enable zabbix-agent

$ systemctl start zabbix-agent
```

ファイアウォール設定（被監視サーバ側）

```bash

$ firewall-cmd --add-port=10050/tcp --zone=public --permanent

$ firewall-cmd --add-source=<ここにZabbixサーバのIPアドレス> --zone=public --permanent

$ firewall-cmd --reload
```

ざっくり最低限Zabbix-agent側の設定は完了です。

管理画面を見てみましょう！

http://ZabbixサーバのIPアドレス/zabbix/

画面の説明に沿って初期設定を進めていく
![スクリーンショット 2020-02-04 16.17.01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110334/6c455dd7-29ae-4a3c-111d-9e2a8032c406.jpeg)

ダッシュボードが表示される事を確認、これで初期設定は完了です。
![スクリーンショット 2020-07-03 22.03.38（2）.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110334/204ca0b6-0eed-076f-35f2-2a3241e4be99.jpeg)

ここまでで監視が取れるまでの設定は完了です。お疲れ様でした。

余談になりますが、個人的にはテーマは目に優しいダークテーマがおすすめです。
以下より設定が可能です。
![スクリーンショット 2020-07-03 22.10.01（2）.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110334/39dd577e-fa69-09b1-f53f-d6416f38415a.jpeg)

ダッシュボードはこんな感じ
![スクリーンショット 2020-07-03 22.10.36（2）.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110334/5c55def7-6158-dfec-d159-59e1653a7b12.jpeg)

#まとめ

このあと以前に構築したマイクラサーバとdiscord-bot用サーバを監視してみましたが、
Zabbixいいですね、かなり気に入りました^^

Zabbixをもっと使えるように色々試して勉強していきたいと思いました。
それではまた！