CentOS8でZabbix5をインストールし、Zabbix Agentを監視する

# 概要
本書ではCentOS8にZabbix5をインストールします。その後、別のCentOS8にZabbix Agentをインストールし、監視ができるように設定します。

## 検証環境
ハードウェア : MacBook Air 2019
仮想化ソフト : VirtualBox
仮想OS : CentOS Linux release 8.1.1911 (Core)

## 1. Zabbix Server側

### a. SELinux無効化

下記のコマンドを実施し、SELinuxを無効化する。

```
# vi /etc/selinux/config
SELINUX=disabled
```

### b. MariaDBのインストール

1. MariaDBをインストールする。

    ```
    # dnf install mariadb mariadb-server
    ```

2. MariaDBを起動・自動起動設定を実施する。

    ```
    # systemctl start mariadb
    # systemctl enable mariadb
    ```

3. MariaDBのrootユーザーの初期パスワードを設定する。

    ```
    # /usr/bin/mysql_secure_installation
    (下記メッセージにて設定・確認項目のみ抜粋)
    Enter current password for root (enter for none): 
    OK, successfully used password, moving on...
    
    Setting the root password ensures that nobody can log into the MariaDB
    root user without the proper authorisation.
    
    Set root password? [Y/n] y
    New password: 
    Re-enter new password: 
    Password updated successfully!
    ```

### c. phpのインストール

1. php,php-fpmをインストールする。

    ```
    # dnf install php php-fpm
    ```

2. php.iniの時刻設定を編集する。

    ```
    # vi /etc/php.ini
    date.timezone ="Asia/Tokyo"
    ```

### d. Apacheのインストール
下記コマンドを実行してApacheをインストールする。

   ```
   # dnf install httpd
   ```

### e. Zabbix5のインストール

1. Zabbix5のリポジトリをインストールする。

    ```
    # rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm
    ```

2. dnfキャッシュをクリアする。

    ```
    # dnf clean all
    ```

3. Zabbix5をインストールする。

    ```
    # dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-agent
    ```

### f. Zabbixのデータベース設定

1. MariaDBにログインする。

    ```
    # mysql -uroot -p
    ```

2. zabbixデータベースを作成する。

    ```
    mysql> create database zabbix character set utf8 collate utf8_bin;
    ```

3. zabbixユーザーを作成する。

    ```
    mysql> create user zabbix@localhost identified by 'password';
    ```

4. zabbixユーザーに全ての権限を与える。

    ```
    mysql> grant all privileges on zabbix.* to zabbix@localhost;
    ```

5. MariaDBから抜ける。

    ```
    mysql> quit;
    ```

6. zabbix初期データをデータベースに入れる。

    ```
    # zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
    ```

### g. zabbix_server.confの編集

下記のコマンドを実行し、zabbixデータベースのパスワードを編集する。

```
# vi /etc/zabbix/zabbix_server.conf
DBPassword=password
```

### h. zabbix.confの編集

下記のコマンドを実行し、タイムゾーンを編集する。

```
# vi /etc/php-fpm.d/zabbix.conf
php_value[date.timezone] = "Asia/Tokyo"
```

### i. firewalldの設定

http,Zabbix Agentの通信を許可するために下記のコマンドを実行する。

```
# firewall-cmd --add-port=10051/tcp --zone=public --permanent
# firewall-cmd --add-service=http --zone=public --permanent
# systemctl restart firewalld
```

### j. Zabbixサービス起動

下記のコマンドを実行し、Zabbixや各種サービスを起動・自動起動設定を実施する。

```
# systemctl restart zabbix-server zabbix-agent httpd php-fpm
# systemctl enable zabbix-server zabbix-agent httpd php-fpm
```

### k. Zabbix5初期設定

1. ブラウザを開き、http://[IPアドレス]/zabbixに遷移する。

2. 「Next step」をクリックする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/56f3fed9-2a0b-8166-c682-d9ab01136d1e.png)

3. phpの設定値を確認し、「Next step」をクリックする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/a9715326-655b-5ac2-83ff-81c166ad1a8d.png)

4. データベース設定を入力し、「Next step」をクリックする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/8f87bc04-cf17-5340-da30-146316cb9dc1.png)

5. 「Next step」をクリックする。(ポート番号は変更しない)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/fa779030-c8e7-bfc6-ead6-763fba0e9e44.png)

6. 確認画面が表示される。設定値確認後、「Next step」をクリックする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/a8b039a0-9e5b-87d1-8617-12fc81fe9bce.png)

7. インストール成功画面が表示される。「Finish」をクリックする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/423120b9-4535-90b8-a0ff-4aa98e9e55bb.png)

8. ログイン画面が表示される。初期ユーザー名「Admin」、初期パスワード「zabbix」を入力し「Sign in」をクリックする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/1bb25ad8-43f9-bd08-fccb-ab64a23827d1.png)

9. モニタリング画面が表示されることを確認する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/a0f264af-e64f-9978-9ca9-9d986d0ec94c.png)

### m. Zabbix5の日本語設定

1. 下記の順序で言語を日本語に設定する。
 * 「User settings」をクリックする。
 * Languageから「Japanese (ja_JP)」を選択する。
 * 「Update」をクリックする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/941f529f-81af-2369-1e5d-7f4958305d76.png)

2. 日本語設定が反映されたことを確認する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/cb31827e-faef-c3d8-650b-96864f33e883.png)

3. グラフ画面など、日本語設定による文字化けが発生した場合はzabbix-web-japaneseをインストールする。

    ```
    # dnf install zabbix-web-japanese
    ```

## 2. Zabbix Agent側

### a. SELinux無効化

下記のコマンドを実施し、SELinuxを無効化する。

```
# vi /etc/selinux/config
SELINUX=disabled
```

### b. Zabbix Agentのインストール

1. Zabbix5のリポジトリをインストールする。

    ```
    # rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm
    ```

2. dnfキャッシュをクリアする。

    ```
    # dnf clean all
    ```

3. Zabbix Agentをインストールする。

    ```
    # dnf install zabbix-agent
    ```

### c. Zabbix Agentの設定

zabbix_agentd.confを編集する。

```
# vi /etc/zabbix/zabbix_agentd.conf
Server=[Zabbix ServerのIPアドレス]
ServerActive=[Zabbix ServerのIPアドレス]
Hostname=[自身のホスト名]
```

### d. firewalldの設定

Zabbix Agentの通信を許可するために下記のコマンドを実行する。

```
# firewall-cmd --add-port=10051/tcp --zone=public --permanent
# systemctl restart firewalld
```
### e. Zabbix Agentの起動

下記のコマンドを実行しZabbix Agentを起動・自動起動設定を実施する。

```
# systemctl start zabbix-agent
# systemctl enable zabbix-agent
```

### f. Zabbix Server側にてZabbix Agentを認識する

1. Zabbix Serverのブラウザ画面に戻り、「設定」→「ホスト」→「ホストの作成」をクリックする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/030e8d0b-02db-1019-3324-6b908f9bcaae.png)

2. 下記の項目を入力し、「テンプレート」タブをクリックする。
 * ホスト名 : Zabbbix Agentのホスト名を入力
 * 表示名 : Zabbix管理画面に表示される名前を入力
 * グループ : 「選択」をクリックし、「Linux Servers」を選択
 * インターフェース : Zabbix Agentのホスト名・DNS名を入力
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/17bf51e8-c2b8-4468-627f-08e36d7bbe84.png)

3. 「新規テンプレートをリンク」から「Template OS Linux by Zabbix Agent」を選択し、「追加」をクリックする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/630ff11b-e9a2-e3af-587d-0b47c4a25901.png)

4. Zabbix Agentのホストが追加されたことを確認する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/54b48d1f-e986-1279-d0d1-bf301704078f.png)

5. Zabbix AgentのCPU使用率やメモリ使用率などが取得できていることを確認する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/0cb375cd-82a3-7efd-7fd1-cff2f2bfa51a.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/b824f338-669a-d013-bf66-ef6da7bac440.png)

6. Zabbix Agent側のCentOS8を停止させる。その後、Zabbix Server管理画面にて障害が発生していることを確認する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/f9188a9f-893f-6d09-a8bd-7fa316cbcbab.png)

## 最後に
CentOS8にZabbix5、Zabbix Agentをインストールすることで監視対象のCPUやメモリ使用率を監視することができます。また監視対象のOSが急に停止した場合、Zabbix Server管理画面でZabbix AgentをインストールしているOSと疎通できないことを確認することができ、急なOSの異常に気付くことができます。