AWSのEC2(Ubuntu)にZabbix5.0を構築


【自分用メモ】

# 概要

AWSのEC2にZabbixサーバーを構築してみました。
OSはUbuntuとし、ZabbixとMySQLをインストールします。
AWSの無料枠でサーバーを立てることができます。
　※メモリの枯渇で運用はできません。

**大まかな流れ**

1. AWSの設定。EC2からUbuntuを立ち上げてOSを用意します。
1. [Download and install Zabbix](https://www.zabbix.com/download)を参照し、terminalから立ち上げたOSにZabbix, MySQL, Apacheをインストールします。

**環境**

|  |  |
|:-:|:-:|
| Zabbix  | 5.0 LTS  |
| OS  | Ubuntu 20.04  |
| Database  | MySQL  |
|  Web Server | Apache  |
|  ホストOS | mac  |



## 手順

### 1. AWSの設定

> 1. インスタンスを起動し、Ubuntu20.04を選択します。
![photo01](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2180999/4e0da317-40a2-8c05-67b1-8f2a4c8c1866.png)
![photo02![スクリーンショット 2021-10-16 23.01.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2180999/14a7fc4d-855f-d637-54dc-88b14c6295d2.png)
](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2180999/6bbd514d-fcc0-3bc5-a845-33aeaea1be7d.png)

<br>

> 2\. インスタンスタイプは無料枠を利用します。
(Zabbixの構築後に確認ができますが、無料枠の1メモリではZabbix上でメモリの使用率が高騰しているとアラートが出ます。が、今回は構築方法の検証なので、割愛します。)
![スクリーンショット 2021-10-16 22.58.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2180999/5af41429-096d-c151-0b49-0898ef531b5a.png)

<br>

> 3\. VPCとサブネットを作成します。値は任意。
自動割り当てパブリックIPは有効に設定します。
![スクリーンショット 2021-10-17 13.54.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2180999/62f42ce9-25f5-0062-0185-ec1763ef497e.png)
![スクリーンショット 2021-10-16 23.01.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2180999/a1a71650-baa5-93b2-08e9-878143bf6ded.png)
![スクリーンショット 2021-10-17 13.49.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2180999/7b4756f5-f5b3-cf51-cd1b-dbec77eabd98.png)
![スクリーンショット 2021-10-17 14.03.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2180999/7cf9ac5f-36a4-15c3-ada4-82e3b31d7d3f.png)
![スクリーンショット 2021-10-17 14.06.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2180999/b5303ebe-52f0-f1b9-9b73-fdf717125b13.png)

<br>

> 4\. タグとセキュリティグループ(SG)の設定は任意。今回はセキュリティに関しては考慮していません。
(SGには後でHTTPを付与しますがここで設定しても構いません。)
![スクリーンショット 2021-10-17 14.07.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2180999/c2dad608-8e55-a80e-cfbf-6292e6429cca.png)
![スクリーンショット 2021-10-17 14.10.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2180999/e22d0c1e-1e49-47c4-4c39-ddda3c0f7d4d.png)
![スクリーンショット 2021-10-17 14.13.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2180999/c5d39e42-5377-900f-8a0c-12a3a2864202.png)
![スクリーンショット 2021-10-17 14.14.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2180999/50ed9694-a76d-9507-7006-9f0be00c0b29.png)
![スクリーンショット 2021-10-17 14.17.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2180999/a9e9b765-9312-10bc-5b36-1410cd600268.png)

<br>

> 5\. インターネットゲートウェイ(IGW)を作成します。
作成したIGWを先ほど作成したVPCにアタッチします。
![スクリーンショット 2021-10-17 14.25.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2180999/5085ae04-082c-e2ba-d315-3d3a3884f9c3.png)
![スクリーンショット 2021-10-17 14.26.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2180999/422b5b57-058f-eaa5-3078-00ad4f6b1b03.png)
![スクリーンショット 2021-10-17 14.28.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2180999/7e69505d-4c50-734c-4d8b-036e0cbab217.png)
![スクリーンショット 2021-10-17 14.29.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2180999/b92175d2-4734-f9f3-fb13-40b2386b4f06.png)

<br>

> 6\. VPCを作成した際に自動的にルートテーブルも作成されます。
ルートテーブルのルートを編集し、先ほど作成したIGWを追加します。
![スクリーンショット 2021-10-17 14.48.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2180999/e574ff03-20ad-7b48-ce8f-14cb4819ddea.png)
![スクリーンショット 2021-10-17 14.50.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2180999/abee12a8-3341-6197-4f2e-524f512713c2.png)
![スクリーンショット 2021-10-17 14.53.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2180999/6be39d59-5dfc-2788-dd01-3fc123b639eb.png)
![スクリーンショット 2021-10-17 14.55.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2180999/c76f4cb1-115e-e170-d3b6-d05f22c656ca.png)
![スクリーンショット 2021-10-17 15.32.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2180999/bede0634-c82c-5d11-7d60-1605f77ca297.png)
以上でAWSの設定は終了です。次からterminalでの操作を行います。
パブリックIPを使用します。

### 2. terminalでの設定

terminalを起動します。

> 1. 作成したインスタンスにSSH接続をします。  
`ssh -i  キーペアのパス ユーザー名@パブリックIP`  
今回の例では以下となります。

```
ssh -i  ./Downloads/keypair.pem ubuntu@13.231.254.188
```

> 2\. [Download and install Zabbix](https://www.zabbix.com/download)の手順に従ってterminal上にコマンドを入力します。
rootユーザーにスイッチしてからコマンドを入力します。
![スクリーンショット 2021-10-18 21.28.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2180999/b9a45222-618e-1e32-1cdf-5b77c04e1339.png)

```
ubuntu@ip-192-168-0-190:~$ sudo su -
root@ip-192-168-0-190:~# wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
root@ip-192-168-0-190:~# dpkg -i zabbix-release_5.0-1+focal_all.deb
root@ip-192-168-0-190:~# apt update
root@ip-192-168-0-190:~# apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-agent
Do you want to continue?[Y/n] y
```

> 3\. MySQLの初期設定を行います。
MySQLのルートユーザーパスワード<パスワード1>を設定した後、余分なデータを削除します。

```
root@ip-192-168-0-190:~# sudo apt install mysql-server
Do you want to continue?[Y/n] y
root@ip-192-168-0-190:~# sudo mysql_secure_installation
Press y|Y for Yes, any other key for No:
Please set the password for root here.
New password: <パスワード1>
Re-enter new password: <パスワード1>
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
root@ip-192-168-0-190:~# service mysql status
● mysql.service - MySQL Community Server
     Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2021-10-20 05:58:34 UTC; 9min ago
```

以上で初期設定は終了です。

> 4\. MySQLの設定
```mysql -u root -p```と入力するとパスワードが求められます。
MySQLのユーザーパスワード<パスワード2>を設定します。
Zabbixのパスワード<パスワード3>を設定します。

```
root@ip-192-168-0-190:~# mysql -uroot -p
Enter password: <パスワード2>
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix@localhost identified by '<パスワード3>';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> quit;
root@ip-192-168-0-190:~# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
Enter password: <パスワード3>
```

> 5\. 念の為、MySQLの設定を確認します。

```
root@ip-192-168-0-190:~# mysql
mysql> show databases;
mysql> use zabbix;
mysql> show tables;
mysql> quit;
```

> 6\. Zabbix ServerにMySQLのパスワードを組み込みます。
(nanoエディタは「Ctrl+x」-「y」-「エンターキー」で抜けられます。)

```
root@ip-192-168-0-190:~# nano /etc/zabbix/zabbix_server.conf
### Option: DBPassword
#       Database password.
#       Comment this line if no password is used.
#
# Mandatory: no
# Default:
DBPassword=<パスワード3>

```

> 7\. Zabbixのタイムゾーンを東京時間に修正します。

```
root@ip-192-168-0-190:~# nano /etc/zabbix/apache.conf
    <IfModule mod_php5.c>
        php_value max_execution_time 300
        php_value memory_limit 128M
        php_value post_max_size 16M
        php_value upload_max_filesize 2M
        php_value max_input_time 300
        php_value max_input_vars 10000
        php_value always_populate_raw_post_data -1
        # php_value date.timezone Europe/Riga
    </IfModule>
    <IfModule mod_php7.c>
        php_value max_execution_time 300
        php_value memory_limit 128M
        php_value post_max_size 16M
        php_value upload_max_filesize 2M
        php_value max_input_time 300
        php_value max_input_vars 10000
        php_value always_populate_raw_post_data -1
→       php_value date.timezone Asia/Tokyo
    </IfModule>
```

> 8\. Zabbix Serverを起動します。

```
root@ip-192-168-0-190:~# systemctl restart zabbix-server zabbix-agent apache2
root@ip-192-168-0-190:~# systemctl enable zabbix-server zabbix-agent apache2
root@ip-192-168-0-190:~# nano /etc/zabbix/zabbix_server.conf
     Active: active (running) since Wed 2021-10-20 11:23:41 UTC; 32s ago
```

### 3. AWSの設定

> ブラウザに**http://<パブリックIP>/zabbix**と入力しZabbixに接続します。
その前に【1. AWSの設定】でSGにHTTPの通信許可をしていないので許可設定をします。
![スクリーンショット 2021-10-17 16.37.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2180999/dcf79039-bab5-bdd0-f4a1-fb5c9bc3b053.png)
![スクリーンショット 2021-10-17 16.33.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2180999/6310702e-4c6f-dc23-e8fb-6cb466113b77.png)
![スクリーンショット 2021-10-17 16.35.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2180999/15cbf26f-f839-ab1e-31d2-1dd8fb34e702.png)
![スクリーンショット 2021-10-17 16.34.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2180999/1149f0e1-00d8-9e8c-ddb4-7289192860f9.png)
![スクリーンショット 2021-10-17 16.35.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2180999/5e352e5c-66f9-0260-cc07-347b6023ab90.png)

### 4. Zabbixの設定

> 1. Passwordは<パスワード3>を入力します。
![スクリーンショット 2021-10-17 16.38.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2180999/0c607130-1cd7-2918-f5aa-c157abe2ff6e.png)
![スクリーンショット 2021-10-17 16.38.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2180999/28077c81-e774-05a5-8b4f-59699789c39b.png)
![スクリーンショット 2021-10-17 16.38.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2180999/d3cbe006-c686-3909-7aba-99f871e78bfc.png)
![スクリーンショット 2021-10-17 16.38.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2180999/c49baab0-f54d-ac35-fd03-94b67bb6f6ed.png)
![スクリーンショット 2021-10-17 16.39.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2180999/f2265fd1-ad6d-4cf3-605a-774f036a8f2d.png)

<br>

> 2\. Zabbixのログイン画面が表示されます。
デフォルトでログインの設定は以下となります。
Username: Admin
Password: zabbix
![スクリーンショット 2021-10-17 16.40.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2180999/de60f59e-37ad-d66c-af16-d4bbec55ee66.png)
![スクリーンショット 2021-10-17 16.41.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2180999/b68c08f2-eca2-1077-e3fa-e4b420c8448b.png)

以上でZabbixのログインが完了します。