LoginSignup
8
3

More than 3 years have passed since last update.

AWSでZabbixを作成する際の注意点

Last updated at Posted at 2020-08-10

はじめに

AWSのEC2とRDSを利用してZabbix4.2を導入するを参照しながら作成したが、当方が初心者のため一部詳細が書かれていない箇所でどうやったらいいのか戸惑ったり、Macを使っているので一部作業内容が違った。
そのため本項でその点を補足しつつ、説明していきたい。
(すでに作成したため、初めて作成する場合と画像が一部異なる可能性がございますが、ご了承ください。)

手順

AWS側の設定

セキュリティグループの作成

VPC>セキュリティグループ>セキュリティグループを作成をクリックする。
スクリーンショット 2020-08-10 12.23.08.png
セキュリティグループ名、説明を入力する。今回は「security-sg」とする。
VPCは今回デフォルトのものとする。

スクリーンショット 2020-08-10 12.28.42.png
インバウンドルールやアウトバウンドルールはそのままで「セキュリティグループを作成」を押す。
スクリーンショット 2020-08-10 12.30.32.png
セキュリティグループで先ほど作成したものをチェックを入れて、下のインバウンドルールをクリック。画像のようなインバウンドルールになるように「インバウンドルールを編集をクリック」する。(あらかじめ作成しているので、すでに入っている状態ですが、本来はこの時点ではインバウンドルールは空です。)
スクリーンショット 2020-08-10 12.34.03.png
インバウンドルールを編集で、以下のように編集していく。

タイプ ポート範囲 ソース 説明
HTTP 80 マイIP http
SSH 22 マイIP ssh
カスタムTCP 10051 先ほど作ったセキュリティグループ Zabbix agent-Zabbix server
MYSQL/Aurora 3306 先ほど作ったセキュリティグループ MySQL
カスタムTCP 10050 先ほど作ったセキュリティグループ Zabbix server-Zabbix agent
HTTPS 443 マイIP https

追加できたら「ルールの保存」を押す。
(セキュリティグループを作成した直後だと保存できないことがあるため、うまくいかなかったら少し時間をおいてやると保存できる。)

EC2の作成

EC2>「インスタンスの作成」をクリック。
スクリーンショット 2020-08-10 12.34.03.png
「Amazon Linux 2 AMI (HVM), SSD Volume Type」を選択する。
スクリーンショット 2020-08-10 16.38.42.png
インスタンスタイプを選択。特にこだわりなければ、無料利用枠の対象のものを選ぶ。「次のステップ:インスタンスの詳細の設定」を押す。
スクリーンショット 2020-08-10 16.39.46.png
インスタンス数は2、ネットワークはセキュリティルールで設定したVPCを選択。
(今回はデフォルトとする。)「次のステップ:ストレージの追加」ボタンを押す。
スクリーンショット 2020-08-10 17.35.35.png
特にこだわりがなければデフォルトのままで、「次のステップ:タグの追加」をクリックする。
スクリーンショット 2020-08-10 17.39.44.png
タグの追加の必要がなければ、「次の手順:セキュリティグループの設定」を押す。
スクリーンショット 2020-08-10 17.41.35.png
「既存のセキュリティグループを選択する」で先ほど作成したセキュリティグループを選択し、「確認と作成」を押す。
スクリーンショット 2020-08-10 17.57.44.png
インスタンス作成の確認で内容を確認し、「起動」を押す。
スクリーンショット 2020-08-10 18.15.35.png
既存のキーペアを選択するか、新しいキーペアを作成する。完了したらインスタンスの作成を押す。
スクリーンショット 2020-08-10 18.17.34.png

EC2のインスタンスの画面に戻り、作成できたか確認する。

RDSの作成

RDS>データベースの作成を押す。
「データベース作成方法を選択」>「標準作成」を押す。
スクリーンショット 2020-08-10 18.27.05.png

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

エンジンのタイプ : MySQL
バージョン: MySQL 5.7.26

スクリーンショット 2020-08-10 18.28.01.png
「テンプレート」>「無料利用枠」を押す。
スクリーンショット 2020-08-10 18.28.18.png
「設定」から下記の項目を入力する。

DBインスタンス識別子 : (AWSコンソール上で表示される名前)
マスターユーザー名 : (MySQLのログインユーザー名)
マスターパスワード : (MySQLのパスワード)
スクリーンショット 2020-08-10 18.34.13.png
DB インスタンスサイズはデフォルトの「db.t2.micro」を選択する。(無料利用枠だとdb.t2.microしか選択できないようだ。)
スクリーンショット 2020-08-10 18.36.25.png
「ストレージ」から下記のように設定する。
・ストレージタイプ:「汎用(SSD)」
・ストレージ割り当て:20
・ストレージの自動スケーリングを有効にする:チェックを外す
スクリーンショット 2020-08-10 18.37.56.png
「接続」でセキュリティグループで設定したVPCを選択する。(今回はデフォルトを選択する。)
スクリーンショット 2020-08-10 18.43.36.png
内容を確認し、「データベースの作成」を押す。
スクリーンショット 2020-08-10 18.51.40.png

Zabbix Server側の設定

今回はMacのterminalでインスタンス接続を行う。

EC2を作成した際に作った鍵の置き場所とEC2のインスタンスの説明でIPv4 パブリックIPを確認して、ssh接続を行う。

ssh -i  鍵の置き場所 ec2-user@IPv4 パブリックIP

Zabbixのインストール

yumのパッケージをアップデートする。

$ sudo yum -y update

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

$ sudo vi /etc/selinux/config
SELINUX=disabled
$ sudo reboot
(getenforceコマンドでdisabledになったか確認できる。)

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

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

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

MySQLの設定

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

$ sudo yum -y install mysql mysql-devel

RDSに接続する。

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

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

> create database zabbix character set utf8 collate utf8_bin;

Zabbixユーザを作成する。

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

MySQLからログアウトする。

> quit;

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

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

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

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

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

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

Zabbixの設定

ブラウザにて「http://(インスタンスのIPv4 パブリックIP)/zabbix」に接続する。
「Welcome to Zabbix 4.2」表示されたら、「Next step」を押す。
スクリーンショット 2020-08-10 19.22.20.png
以下の画面ですべてOKになってるか、確認する。NGになっている箇所があった場合は表示されるメッセージに従い修正。
私の場合はdata.timezoneでNGになっていたので、zabbix インストール時のTimezone for PHP is not set. Please set "date.timezone" option in php.ini.の記事を参考にして修正した。
全てOKになったら、「Next Step」を押す。
スクリーンショット 2020-08-10 19.25.23.png

「Configure DB connection」にて下記の項目を入力し「Next step」を押す。

Database host : (RDSのエンドポイント)
Password : (zabbixユーザのパスワード)
スクリーンショット 2020-08-10 19.30.05.png

「Zabbix server details」にてデフォルトのままで「Next step」をクリックする。
スクリーンショット 2020-08-10 19.36.02.png
「Pre-installation summary」にて正しい設定値であることを確認し、「Next step」を押す。
スクリーンショット 2020-08-10 19.36.44.png
「Install」にて下記のように表示されたら無事インストールできたので、「Finish」を押す。
スクリーンショット 2020-08-10 19.40.42.png

usernameとpasswordを入力し、ログインする。初期状態で設定されているユーザーは、usernameが「Admin」、Passwordが「zabbix」。
スクリーンショット 2020-08-10 20.50.57.png
ダッシュボードが表示される。
スクリーンショット 2020-08-10 20.52.22.png

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

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

Zabbixの日本語化設定

右上のユーザーのマークをクリックし、「ユーザープロファイル: Zabbix Administrator」で言語を日本語に変更。「更新」ボタンを押す。
スクリーンショット 2020-08-10 20.58.37.png

Zabbix Agent側の設定

Zabbix Server側の設定方法を参考にして、2台目のEC2インスタンスにTerminalでログインする。

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

$ sudo yum -y update

永続的にSELinuxを無効化する。(ちなみに私の場合はzabbix-erverで無効化したら、後はdisabledになっていて特に変更する必要がなかった。)

$ sudo vi /etc/selinux/config
SELINUX=disabled
$ sudo reboot
(getenforceコマンドでdisabledになったか確認できる。)

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

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

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

$ sudo yum install -y zabbix-agent

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

$ sudo vi /etc/zabbix/zabbix_agentd.conf
Server=(Zabbix Server側のIPアドレス)
ServerActive=(Zabbix Server側のIPアドレス)

zabbix-agentの起動・自動起動を設定する。

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

Zabbix(GUI)でZabbix Agentの登録

設定>ホスト>ホストの作成を押す。
スクリーンショット 2020-08-10 21.08.05.png

下記の項目を入力し「テンプレート」を押す。

ホスト名 : (分かりやすい名前を入力)
表示名 : (分かりやすい名前を入力)
グループ : Linux servers
IPアドレス : (Zabbix Agent側のIPアドレスを入力)

スクリーンショット 2020-08-10 21.09.20.png
「新規テンプレートをリンク」で「Template OS Linux」を検索し、2つある追加ボタンのうちの上のボタンをクリック。「テンプレートのリンク」に追加されたら、下の「追加」ボタンを押す。
スクリーンショット 2020-08-10 21.10.20.png
「ホストを追加しました」と表示されたら、監視データ>グラフを押す。
右上の「グラフ」で「CPU jumps」を選択すると、グラフが表示される。
スクリーンショット 2020-08-10 21.37.31.png

エラーが出たら

最初に作成した時、System informationが表示されなかった。
Zabbix Server側の原因の場合下記のようにファイルのメッセージを確認すると原因が特定できる場合がある。

vi /var/log/zabbix/zabbix_server.log

そうすると私の場合下記のようなメッセージが表示された。

 Connection to database 'zabbix' failed: [1045] Access denied for user 'zabbix'@'localhost' (using password: YES)

Zabbix Serverの設定において/etc/zabbix/zabbix_server.confのDBPasswordに設定したパスワードとMySQLのzabbixデータベースに設定したパスワードがどうやら一致しないようだ。パスワードの不一致が解決せず、結局作り直した。

下記URLに詳しいトラブルシュート等が載せられている。
https://www.atmarkit.co.jp/ait/articles/0909/29/news103_4.html

注意点のまとめ

・最初にセキュリティグループの基本的な詳細のみ入力して作成し、その後インバウンドルールを追加する。(作成したセキュリティグループを使用できるので、混乱が少なかった。)
・MacとWindowsでssh接続の仕方が違う。
・data.timezoneでNGが出るので、適宜修正する。
・グラフの種類を指定しないと、表示されないので注意。
・Zabbix Server側でエラーが発生したら、vi /var/log/zabbix/zabbix_server.logでファイルのメッセージを確認すると良い。

8
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
3