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


概要

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

0. 前提条件

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

1. VPCのセキュリティルール設定

  1. 「サービス」→「VPC」をクリックする。

  2. 左側メニューから「セキュリティグループ」をクリックする。

  3. 下側メニューから「インバウンドルール」をクリックする。

  4. 「ルールの編集」をクリックする。

  5. 下図のようにセキュリティルールを設定する。

    ※Zabbix serverからZabbix Agentに接続するには10050ポート、Zabbix agentからZabbix Serverに接続するには10051ポートを接続する必要があります。

2. EC2の立ち上げ

  1. 「サービス」→「EC2」をクリックする。

  2. 左側メニューから「インスタンス」をクリックする。

  3. 「インスタンスの作成」をクリックする。

  4. 「Amazon Linux 2 AMI (HVM), SSD Volume Type」を選択する。

  5. インスタンスタイプを選択し「次の手順:インスタンスの詳細の設定」をクリックする。

    ※本書では「t2.micro」のインスタンスタイプを使用します。

  6. 下記の項目を設定し「次の手順:ストレージの追加」をクリックする。

    • インスタンス数 : 2
    • ネットワーク : (セキュリティルールを設定したVPCを選択)
  7. サイズやボリュームタイプを選択し「次の手順:タグの追加」をクリックする。

  8. タグの設定が必要なければ「次の手順:セキュリティグループの設定」をクリックする。

  9. 「既存のセキュリティグループを選択する」を選択し「確認と作成」をクリックする。

  10. 設定した内容が正しいことを確認し「起動」をクリックする。

  11. インスタンスへのログインに必要であるキーペアの作成画面が表示される。「キーペア名」にプライベートキーの名前を入力し「キーペアのダウンロード」をクリックする。その後「インスタンスの作成」をクリックする。

    ※プライベートキーの再発行はできません。プライベートキーを紛失すると作成したEC2にログインできなくなるので、なくさないように厳重に管理してください。

  12. 「作成ステータス」画面が表示されたことを確認する。

  13. 下部の「インスタンスの表示」をクリックする。

  14. インスタンスが2台作成されたことを確認する。

3. RDSの作成

  1. 「サービス」→「RDS」をクリックする。

  2. 「データベース」をクリックする。

  3. 「データベースの作成」をクリックする。

  4. 「データベース設定」から「Standard Create」を選択する。

  5. 「エンジンのオプション」から下記の項目を選択する。

    • エンジンのタイプ : MySQL
    • バージョン: MySQL 5.7.26
  6. 「テンプレート」から使用する環境に合わせて選択する。

    ※本書では「無料利用枠」を選択します。

  7. 「設定」から下記の項目を入力する。

    • DBインスタンス識別子 : (AWSコンソール上で表示される名前)
    • マスターユーザー名 : (MySQLのログインユーザー名)
    • マスターパスワード : (MySQLのパスワード)
  8. 「DBインスタンスサイズ」からインスタンスサイズを選択する。

    ※本書では「db.t2.micro」を選択します。

  9. 「Storage」から容量を入力する。

  10. 「接続」からセキュリティルールを設定したVPCを選択する。

  11. 「データベースの作成」をクリックする。

  12. データベースが作成されている画面が表示される。

  13. データベースが正常に作成されたことを確認する。

4. Zabbix Server側の設定

(a) Teratermでログイン

  1. 作成したEC2のインスタンスを選択し「接続」をクリックする。

  2. 「スタンドアロンSSHクライント」を選択する。画面に表示されている「パブリックDNS」をコピーする。

  3. Teratermを起動し「ホスト」にコピーしたパブリックDNSをペーストする。その後「OK」をクリックする。

  4. 「セキュリティ警告」画面にて「続行」をクリックする。

  5. 「ユーザー名」をec2-user、「秘密鍵」にてダウンロードしたプライベートキーを選択し「OK」をクリックする。

  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」をクリックする。

  3. 「Check of pre-requisites」にてすべての項目が「OK」と表示されていることを確認する。その後「Next step」をクリックする。

  4. 「Configure DB connection」にて下記の項目を入力し「Next step」をクリックする。

    • Database host : (RDSのエンドポイント)
    • Password : (zabbixユーザのパスワード)
  5. 「Zabbix server details」にて「Next step」をクリックする。

  6. 「Pre-installation summary」にて正しい設定値であることを確認し「Next step」をクリックする。

  7. 「Congratulations! You have successfully installed Zabbix frontend.」と表示されたことを確認し「Finish」をクリックする。

  8. Zabbixのログイン画面が表示される。下記の初期ユーザ(Admin)・初期パスワード(zabbix)を入力し「Sign in」をクリックする。

  9. Zabbixのダッシュボードが表示されたことを確認する。

  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」の警告が消えたことを確認する。

(e) Zabbixの日本語化設定

  1. 右側上部の人型マークをクリックする。

  2. 「Language」を「Japanese (ja_JP)」に変更し「Update」をクリックする。

  3. 日本語に設定されたことを確認する。

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. ダッシュボードから「設定」をクリックする。

  2. 「ホスト」をクリックする。

  3. 「ホストの作成」をクリックする。

  4. 下記の項目を入力し「テンプレート」をクリックする。

    • ホスト名 : (分かりやすい名前を入力)
    • 表示名 : (分かりやすい名前を入力)
    • グループ : Linux servers
    • IPアドレス : (Zabbix Agent側のIPアドレスを入力)
  5. 「テンプレートのリンク」に「Template OS Linux」を設定し「追加」をクリックする。

  6. 「ホストを追加しました」と表示されたことを確認する。

  7. Zabbix Agent側の情報が取得できていることを確認する。

  8. <障害試験>Zabbix Agent側にてzabbix-agentを停止する。その後、Zabbixのダッシュボード画面にてZabbix Agent側と疎通できない警告が表示されたことを確認する。

最後に

AWSのEC2、RDSを利用してZabbix4.2を運用することができます。これによりクラウド上でインスタンスの死活監視ができます。

※実際に運用する際はt2.microではメモリが枯渇しますので、大容量のインスタンスタイプを選択して運用してください。