AWSのEC2とRDSを利用してZabbix4.2を導入する

# 概要
AWS上でZabbix4.2を運用できるように構築します。AWS上でEC2とRDSを立ち上げ、立ち上げたEC2とRDSにZabbixをインストールします。<br>構成環境：EC2 2台 (OS : Amazon Linux)、RDS 1台(DB : MySQL)

## 0. 前提条件
* TeratermなどのSSHクライアントソフトをインストールしていること
* AWSのアカウントを作成していること
* <推奨>セキュリティの観点でAWSのアカウントに多要素認証・IAMの設定を実施していること<br>
※本書ではWindows10,Teratermを使用します。

## 1. VPCのセキュリティルール設定
1. 「サービス」→「VPC」をクリックする。
![001.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/5e9d3edd-d7b6-3e7a-957d-d6afd7ab05aa.jpeg)

2. 左側メニューから「セキュリティグループ」をクリックする。
![002.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/16ccb162-3638-f779-437a-91048f7702b6.jpeg)

3. 下側メニューから「インバウンドルール」をクリックする。
![003.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/fe146036-2fe7-5ced-babc-b8bd591539bb.jpeg)

4. 「ルールの編集」をクリックする。
![004.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/da8ac6ec-be96-04c8-3395-71b274daafa7.jpeg)

5. 下図のようにセキュリティルールを設定する。
<br>※Zabbix serverからZabbix Agentに接続するには10050ポート、Zabbix agentからZabbix Serverに接続するには10051ポートを接続する必要があります。
![セキュリティルール_更新版_改訂版.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/5d7e4a22-1094-4082-e727-7b855668fbd3.jpeg)

## 2. EC2の立ち上げ
1. 「サービス」→「EC2」をクリックする。
![006.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/66e5b882-d93e-ff14-44d7-9b378a46e13a.jpeg)

2. 左側メニューから「インスタンス」をクリックする。
![007.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/ca09e17a-bc1b-c99a-ee62-0157a2e6f111.jpeg)

3. 「インスタンスの作成」をクリックする。
![008.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/a60b2ef7-71aa-1014-38c4-1182cf8b3e1f.jpeg)

4. 「Amazon Linux 2 AMI (HVM), SSD Volume Type」を選択する。
![009.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/1dcef80e-cb39-1fd5-7f9d-bcc81d216534.jpeg)

5. インスタンスタイプを選択し「次の手順:インスタンスの詳細の設定」をクリックする。
<br>※本書では「t2.micro」のインスタンスタイプを使用します。
![010.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/2e69aca4-ac68-7daa-b56f-1bfe79623f2b.jpeg)

6. 下記の項目を設定し「次の手順:ストレージの追加」をクリックする。
 * インスタンス数 : 2
 * ネットワーク : (セキュリティルールを設定したVPCを選択)
![011.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/7b97897d-75a5-60b6-d9e7-ba3ab6584d1f.jpeg)

7. サイズやボリュームタイプを選択し「次の手順:タグの追加」をクリックする。
![012.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/a30d24d5-7b5e-272f-f166-9700ef2ea30b.jpeg)

8. タグの設定が必要なければ「次の手順:セキュリティグループの設定」をクリックする。
![013.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/b311545d-adb6-d9d3-c6b7-2a453f5c5963.jpeg)

9. 「既存のセキュリティグループを選択する」を選択し「確認と作成」をクリックする。
![014.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/9a0a3914-73ef-6509-3ef8-92418d53f252.jpeg)

10. 設定した内容が正しいことを確認し「起動」をクリックする。
![015.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/8747cd27-e496-13e1-cadc-13c0cadf8290.jpeg)

11. インスタンスへのログインに必要であるキーペアの作成画面が表示される。「キーペア名」にプライベートキーの名前を入力し「キーペアのダウンロード」をクリックする。その後「インスタンスの作成」をクリックする。
<br>※プライベートキーの再発行はできません。プライベートキーを紛失すると作成したEC2にログインできなくなるので、なくさないように厳重に管理してください。
![017.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/3381f85e-28be-d6a2-e74d-926fdf1484a1.jpeg)

12. 「作成ステータス」画面が表示されたことを確認する。
![018.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/6f6f7992-311a-9478-5fae-ac4bdf7cd907.jpeg)

13. 下部の「インスタンスの表示」をクリックする。
![019.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/810b933c-5eb3-e693-7208-c7e4efb3fe77.jpeg)

14. インスタンスが2台作成されたことを確認する。
![034.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/d6ce4261-289b-736e-bca8-16070cbfa543.jpeg)

## 3. RDSの作成
1. 「サービス」→「RDS」をクリックする。
![021.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/5afef542-c640-ac65-9633-4f1698783c18.jpeg)

2. 「データベース」をクリックする。
![022.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/bfca21d4-00e0-67b8-1bc8-b41386fe6467.jpeg)

3. 「データベースの作成」をクリックする。
![023.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/f9bd8b13-2ba4-f618-5376-84403b84e39a.jpeg)

4. 「データベース設定」から「Standard Create」を選択する。
![024.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/f656b280-cf62-d9b1-3e20-aabee3186de8.jpeg)

5. 「エンジンのオプション」から下記の項目を選択する。
 * エンジンのタイプ : MySQL
 * バージョン: MySQL 5.7.26
![025.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/b34ce8ac-9604-f422-2c2f-d7feeba4eba0.jpeg)

6. 「テンプレート」から使用する環境に合わせて選択する。
<br>※本書では「無料利用枠」を選択します。
![026.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/0bdd0e8d-391e-6b20-9d83-2bcdfe1c38a9.jpeg)

7. 「設定」から下記の項目を入力する。
 * DBインスタンス識別子 : (AWSコンソール上で表示される名前)
 * マスターユーザー名 : (MySQLのログインユーザー名)
 * マスターパスワード : (MySQLのパスワード)
![027.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/471cb2ae-d161-2ff6-b960-6e7f47aafdfd.jpeg)

8. 「DBインスタンスサイズ」からインスタンスサイズを選択する。
<br>※本書では「db.t2.micro」を選択します。
![028.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/ca86ab77-9fc4-02c2-eddd-e40c04801bc7.jpeg)

9. 「Storage」から容量を入力する。
![029.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/3206a77b-0d25-c7fc-9819-155209f1c8c6.jpeg)

10. 「接続」からセキュリティルールを設定したVPCを選択する。
![030.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/3ee024ef-0684-cc2c-2097-46cca9c349e3.jpeg)

11. 「データベースの作成」をクリックする。
![031.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/d428ff60-43da-cc73-18f9-29f8109fe32f.jpeg)

12. データベースが作成されている画面が表示される。
![032.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/553cffea-40b1-f6f8-7a8c-90a1c8a23f51.jpeg)

13. データベースが正常に作成されたことを確認する。
![033.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/d7002821-647e-f310-25eb-4dd5d487777f.jpeg)

## 4. Zabbix Server側の設定
### (a) Teratermでログイン
1. 作成したEC2のインスタンスを選択し「接続」をクリックする。
![034 - コピー.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/c4320287-a182-5fba-97aa-11a3e321f3f9.jpeg)

2. 「スタンドアロンSSHクライント」を選択する。画面に表示されている「パブリックDNS」をコピーする。
![036.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/bf05cb37-e06e-a68a-3cbd-0a00d6530197.jpeg)

3. Teratermを起動し「ホスト」にコピーしたパブリックDNSをペーストする。その後「OK」をクリックする。
![037.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/832d3c73-0ae8-97d2-bfd5-da66e41bad7b.jpeg)

4. 「セキュリティ警告」画面にて「続行」をクリックする。
![038.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/ea8ecaea-4e32-893b-9200-3cef25414027.jpeg)

5. 「ユーザー名」をec2-user、「秘密鍵」にてダウンロードしたプライベートキーを選択し「OK」をクリックする。
![039.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/85d8f1a3-f469-be0c-6b4b-55b71f00d724.jpeg)

6. Amazon Linuxにログインしたことを確認する。

### (b) Zabbixのインストール

1. アップデート可能な全パッケージをアップデートする。

    ```
    $ sudo yum -y update
    ```

2. 永続的にSELinuxを無効化する。

    ```
    $ sudo vi /etc/selinux/config
    SELINUX=disabled
    $ sudo reboot
    ```

3. Zabbix4.2のリポジトリをインストールする。

    ```
    $ sudo rpm -Uvh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-2.el7.noarch.rpm
    ```
4. zabbix-server-mysql,zabbix-web-mysql,zabbix-web-japanese,zabbix-agentをインストールする。

    ```
    $ sudo yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-web-japanese zabbix-agent
    ```

### (c) MySQLの設定

1. MySQLクライアントをインストールする。

    ```
    $ sudo yum -y install mysql mysql-devel
    ```

2. RDSに接続する。

    ```
    $ sudo mysql -h RDSのエンドポイント -P 3306 -u ユーザ名 -p
    ```

3. Zabbixのデータベースを作成する。

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

4. Zabbixユーザを作成する。

    ```
    > grant all on zabbix.* to zabbix@`%` identified by 'パスワード';
    ```

5. MySQLからログアウトする。

    ```
    > quit;
    ```

6. Zabbixの初期データを登録する。

    ```
    $ sudo zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -h RDSのエンドポイント -P 3306 -u ユーザ名 -p zabbix
    ```

7. /etc/zabbix/zabbix_server.confにDB情報を登録する。

    ```
    $ sudo vi /etc/zabbix/zabbix_server.conf
    DBHost=RDSのエンドポイント
    DBPassword=RDSのパスワード
    ```

8. zabbix-serverの起動・自動起動を設定する。

    ```
    $ systemctl start httpd
    $ systemctl enable httpd
    $ systemctl start zabbix-server
    $ systemctl enable zabbix-server
    ```

### (d) Zabbixの設定

1. ブラウザにて「http://(インスタンスのパブリックIP)/zabbix」に接続する。

2. 「Welcome to Zabbix 4.2」と表示されたことを確認する。その後「Next step」をクリックする。
![041.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/866f79e3-a571-c487-a343-6c380eca1159.jpeg)

3. 「Check of pre-requisites」にてすべての項目が「OK」と表示されていることを確認する。その後「Next step」をクリックする。
![042.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/35e1cad2-376c-b36e-b6c9-aa9c96a747c7.jpeg)

4. 「Configure DB connection」にて下記の項目を入力し「Next step」をクリックする。
 * Database host : (RDSのエンドポイント)
 * Password : (zabbixユーザのパスワード)
![043.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/3a60c26c-7cd7-80a3-2f6a-11fa3437469f.jpeg)

5. 「Zabbix server details」にて「Next step」をクリックする。
![044.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/9898b33e-34aa-357d-2969-91a6b93e6921.jpeg)

6. 「Pre-installation summary」にて正しい設定値であることを確認し「Next step」をクリックする。
![045.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/ebdeb305-d673-243e-2bdc-78895fb84e78.jpeg)

7. 「Congratulations! You have successfully installed Zabbix frontend.」と表示されたことを確認し「Finish」をクリックする。
![046.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/4e5b791b-a4a6-ce5d-8c81-a38b48924ba7.jpeg)

8. Zabbixのログイン画面が表示される。下記の初期ユーザ(Admin)・初期パスワード(zabbix)を入力し「Sign in」をクリックする。
![047.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/fd90b4de-ff36-35ad-a2b9-bc8251367a2a.jpeg)

9. Zabbixのダッシュボードが表示されたことを確認する。
![048.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/4deb717e-b605-8cf9-cc25-dad9e73427d7.jpeg)

10. 「Zabbix agent on Zabbix server is unreachable for 5 minutes」の警告を消すためにzabbix-agentを起動する。

    ```
    $ sudo systemctl start zabbix-agent
    $ sudo systemctl enable zabbix-agent
    ```

11. 「Zabbix agent on Zabbix server is unreachable for 5 minutes」の警告が消えたことを確認する。
![049.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/3a56fdd7-d9a0-9810-412f-ed2b6e2ad52d.jpeg)

### (e) Zabbixの日本語化設定

1. 右側上部の人型マークをクリックする。
![050.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/f6100e69-143b-8d9e-9101-e7d5d15c5717.jpeg)

2. 「Language」を「Japanese (ja_JP)」に変更し「Update」をクリックする。
![051.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/ff1a9a26-a070-ffd0-9d9b-b94187f889f4.jpeg)

3. 日本語に設定されたことを確認する。
![052.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/45331524-031a-b31f-3123-5c3bc573c010.jpeg)

## 5. Zabbix Agent側の設定
### (a) Zabbix-agentのインストール

1. 前章の設定方法を参考にして、2台目のEC2インスタンスにターミナルソフトでログインする。

2. アップデート可能な全パッケージをアップデートする。

    ```
    $ sudo yum -y update
    ```
3. 永続的にSELinuxを無効化する。

    ```
    $ sudo vi /etc/selinux/config
    SELINUX=disabled
    $ sudo reboot
    ```

4. Zabbix4.2のリポジトリをインストールする。

    ```
    $ sudo rpm -Uvh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-2.el7.noarch.rpm
    ```

5. zabbix-agentをインストールする。

    ```
    $ sudo yum install -y zabbix-agent
    ```

6. /etc/zabbix/zabbix_agentd.confにZabbix Server側のIPアドレスを入力する。

    ```
    $ sudo vi /etc/zabbix/zabbix_agentd.conf
    Server=(Zabbix Server側のIPアドレス)
    ServerActive=(Zabbix Server側のIPアドレス)
    ```
7. zabbix-agentの起動・自動起動を設定する。

    ```
    $ sudo systemctl start zabbix-agent
    $ sudo systemctl enable zabbix-agent
    ```

### (b) Zabbix(GUI)でZabbix Agentの登録
1. ダッシュボードから「設定」をクリックする。
![052.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/2e1b45c5-87b7-6e2e-2b89-3f41ef5cde41.jpeg)

2. 「ホスト」をクリックする。
![054.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/73a32ac2-e912-5993-db58-e6470103f621.jpeg)

3. 「ホストの作成」をクリックする。
![055.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/8fec796a-27da-b3b0-344a-e420c4a8b1df.jpeg)

4. 下記の項目を入力し「テンプレート」をクリックする。
 * ホスト名 : (分かりやすい名前を入力)
 * 表示名 : (分かりやすい名前を入力)
 * グループ : Linux servers
 * IPアドレス : (Zabbix Agent側のIPアドレスを入力)
![056.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/2cbbfab2-0d16-e419-6f8a-e4c76a98781f.jpeg)

5. 「テンプレートのリンク」に「Template OS Linux」を設定し「追加」をクリックする。
![057.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/14459c7f-0394-1f01-87a9-ce3097a431bd.jpeg)

6. 「ホストを追加しました」と表示されたことを確認する。
![058.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/1b7a98b8-2bc6-80d3-a14f-aaf88dd16c4b.jpeg)

7. Zabbix Agent側の情報が取得できていることを確認する。
![059.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/e65f21ec-844b-eda1-831c-f28de1ed9c80.jpeg)

8. <障害試験>Zabbix Agent側にてzabbix-agentを停止する。その後、Zabbixのダッシュボード画面にてZabbix Agent側と疎通できない警告が表示されたことを確認する。
![060.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307261/ac5d3f4a-870c-eb10-5460-ba45a0878dbf.jpeg)

# 最後に
AWSのEC2、RDSを利用してZabbix4.2を運用することができます。これによりクラウド上でインスタンスの死活監視ができます。
<br>※実際に運用する際はt2.microではメモリが枯渇しますので、大容量のインスタンスタイプを選択して運用してください。