Zabbix 5.0 対応 Amazon Linux / Amazon Linux 2 でのZabbix Server自動構築

Amazon Linux 向けの Zabbix Server 自動構築スクリプトを紹介します。

このスクリプトを利用する事により約2分でZabbix 環境を構築することができます。

デモサイトや機能検証はもちろん、
本番環境でも利用可能です。

#インスタンス作成
自動構築スクリプトを利用してZabbixServeインスタンスを構築して行きます。

1．マネージメントコンソールでインスタンス作成をクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/102020/d0a630db-bbf0-c187-fa6b-a97d86153329.png)

2．インスタンスOSの選択
今回のスクリプトはAmazon LinuxおよびAmazon Linux2に対応してます。
好みや要件に合わせて選択してください。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/102020/e41af270-7bf3-1589-582d-973ad0458d98.png)

3.インスタンスタイプの選択
インスタンス内でMySQL(MariaDB)が動作するため、インスタンスサイズは`t2.small`以上にしてください。本番利用の際はZabbixのチューニングパラメータを元に適切なインスタンスサイズを選択してください。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/102020/db3c3ef4-99ba-456e-059e-ec1ba016d451.png)

4．インターネットからパッケージを取得する必要があるので、インターネットアクセスが可能なサブネットに配置してください。
NATゲートウェイなどがあるのであればプライベートサブネットでもかまいません。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/102020/163f6180-5afb-ae81-7bdd-cea697aada71.png)

5．UserDataに`Launch-ZabbixServer-on-AmazonLinux.sh`の内容を張り付けてください。
[Launch-ZabbixServer-on-AmazonLinux.sh](https://github.com/qryuu/aws_on_zabbix/blob/master/UserData/Launch-ZabbixServer-on-AmazonLinux.sh)

6.パラメータの設定
今回はZabbix 4.0 構築が目的ですので、`version=`の値を`4.0` に設定してください。
`amazonlinux=` の値は選択したAmazon Linux AMIに合わせて
Amazon Linuxであれば `amzn1`に
Amazon Linux2であれば `amzn2` に設定してくだし。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/102020/5e34af85-7d4f-9a3f-5546-e4c1fc14d6c6.png)

その他のパラメーターはスクリプトのコメントを参考に必要があれば変更してください。
変更せずにローンチしても問題ありません。

7.デモサイトや機能評価目的であればディスクサイズは8GBのままで問題ありません。
本番利用などであれば、適宜サイズを拡張してください。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/102020/b908db9c-3bb1-e6cf-12bb-e5d63c4d59d1.png)

8.タグは機能に影響しませんので、適宜設定してください。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/102020/793dd921-f39e-14e3-9509-dd2ec296c9ae.png)

9.フロントエンドアクセスのため80番ポートおよび、Zabbixの10051番ポートを開けてください。
SSHアクセスは要件に合わせて選択してください。
ZabbixServerを構築するだけであればSSHアクセスは不要です。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/102020/a34f852a-26cb-46ca-cf12-5e82a3a62dba.png)

10.将来のメンテナンスやチューニングに合わせてキーペアを設定するか、セッションマネージャーなどの利用のためキーペア無しで構築するかはポリシーに合わせて選択してください。
今回の構築でキーペアを利用する事はありません。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/102020/d6ec9efa-1970-9b37-7256-2cbe8224da2d.png)

11.インスタンスが作成されたら、UserDataの処理が完了するまで2分ほどお待ちください。
（スクリプト自体は67秒程度で完了しますが、OSの起動、再起動時間を含めると2分程度かかります）

#Zabbix初期設定
1．`http://<インスタンスIP>/zabbix`にアクセスします。
Zabbixの初期設定画面が表示されます。`Next Step`をクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/102020/b8f5503c-eff3-cb92-331e-2281c2f49317.png)

2.全てのチェック項目が`OK` になっていますので`Next Step`をクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/102020/51a12d40-2664-58cb-d622-61bcbacbdeba.png)

3.DB接続情報を入力します。

```bash:Userdata抜粋
dbname=zabbix #ZabbixDB名
dbuser=zabbix #ZabbixDBユーザ名
dbpassword=zabbix #ZabbixDBパスワード
```
UserDataに入力したパラメータの値をDB接続情報に入力します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/102020/367162f6-6670-366e-742d-f4b307685620.png)
デフォルトでは
Database name`zabbix`
User `zabbix`
Password `zabbix`
です。　入力したら `Next Step`をクリックします。

4.ZabbixServerプロセスへの接続情報を入力します。
変更項目はありません。`Name`は複数のZabbixServerを見る際に見分けられる名前を入力してください。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/102020/a2b4efce-1198-2b67-169b-a38336a2648b.png)
`Next Step` をクリックします。

5.設定項目を確認したら `Next Step` をクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/102020/cfc70f3f-d219-b2d1-892f-5075ae185504.png)

6．初期設定は完了しました。 `Finish`をクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/102020/219b4afa-187a-9a11-d573-10f4b66d3ea6.png)

#Zabbixログイン

1.Zabbixのログイン画面が表示されます。
Username`Admin`
Password`zabbix`を入力して
`Sine In`をクリックしてください。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/102020/afeead0b-05eb-8350-b41f-cda2ceb3abb6.png)

2．Zabbix 4.0 のダッシュボードが表示されます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/102020/12d71949-8074-c1d7-bcef-c7260100c657.png)

#日本語表示への変更
1.`Administration`-`Users`を選択します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/102020/c92d11b3-b9c8-58f4-305a-aeb110455f28.png)

2．`guest`ユーザを選択します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/102020/8cb41a16-1236-428e-46d4-18c0ec937a15.png)

3．`guest` ユーザの`Language`を`Japanese(ja_JP)`に変更して
`Updete`をクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/102020/b8c060fb-ea36-aed0-8595-48a49353db7f.png)
これにより、ログイン画面の表示が日本語になります。

4.Adminもguestと同様に`Language`を`Japanese(ja_JP)`に変更します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/102020/a8caaad0-eddb-5eb4-7d06-d091594817ca.png)

5.任意のページをリロードすれば日本語表示に切り替わります。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/102020/e2b96e97-48e4-4481-bfb6-686ce786ebb0.png)

#今回のスクリプトについて
これで Zabbix 4.0 環境が構築されました。
UserDataのみでZabbix 4.0 の環境が構築されました。

今回のスクリプトは Zabbix 4.0 だけではなく、 Zabbix 3.0 3.4 4.0 4.2 4.4 5.0に対応していますので、 機能比較や機種転換手順書の作成などにもご利用いただけます。

Zabbix 4.0 のスムースな導入にぜひご活用ください。

##Zabbix 5.0 での注意点
Zabbix 5.0 ではphp7.2以降が必要です。
このためAmazon LinuxではAgentのみが提供しています。
Server を構築するには Amazon Linux2が必要です。
また、`amazon-linus-extras` をから php 7.2 をインストールする必要があります。

```bash:amazon-linus-extras
amazon-linux-extras install lamp-mariadb10.2-php7.2 epel php7.2 -y 
```

自動構築スクリプトの中では 上記のコマンドでphp7.2をインストールしています。

#本番向け対応
今回のスクリプトではEC2 on MySQLにてZabbix Serverを構築しています。
本番環境など、より可用性が必要な環境では今回のスクリプトでZabbixServerを構築いただいたあと、一旦AMIを作成してください。

作成したAMIから再度EC2インスタンスをローンチする際に
[Zabbix-for-RDS.sh](https://github.com/qryuu/aws_on_zabbix/blob/master/UserData/Zabbix-for-RDS.sh)をUserDataに張り付けてローンチを行ってください。

Zabbix-for-RDS.shを利用する事により、EC2無いのZabbixDatabaseのdumpデータを作成し、RDS for MySQLに対してデータ移行を実施し、zabbix_server.confおよびwebフロントエンドのdb接続情報をRDSに変更して起動します。

ユーザによる変更操作は必要ありません。

#まとめ
Launch-ZabbixServer-on-AmazonLinux.shをご利用いただくことで、2分で任意のバージョンのZabbixServerを構築していただく事が可能です。

テストから本番環境に移行する際には
Zabbix-for-RDS.shスクリプトを利用して頂く事で、ユーザーの操作無くRDSをバックエンドとしたZabbixServerを構築することができます。

お手軽快適なZabbixライフを満喫してください。

なお各スクリプトではヒストリテーブルの圧縮設定などある程度のチューニング済の状態でローンチされるようになっています。