#はじめに
AWSのEC2とRDSを利用してZabbix4.2を導入するを参照しながら作成したが、当方が初心者のため一部詳細が書かれていない箇所でどうやったらいいのか戸惑ったり、Macを使っているので一部作業内容が違った。
そのため本項でその点を補足しつつ、説明していきたい。
(すでに作成したため、初めて作成する場合と画像が一部異なる可能性がございますが、ご了承ください。)
#手順
##AWS側の設定
###セキュリティグループの作成
VPC>セキュリティグループ>セキュリティグループを作成をクリックする。
セキュリティグループ名、説明を入力する。今回は「security-sg」とする。
VPCは今回デフォルトのものとする。
タイプ | ポート範囲 | ソース | 説明 |
---|---|---|---|
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>「インスタンスの作成」をクリック。
「Amazon Linux 2 AMI (HVM), SSD Volume Type」を選択する。
インスタンスタイプを選択。特にこだわりなければ、無料利用枠の対象のものを選ぶ。「次のステップ:インスタンスの詳細の設定」を押す。
インスタンス数は2、ネットワークはセキュリティルールで設定したVPCを選択。
(今回はデフォルトとする。)「次のステップ:ストレージの追加」ボタンを押す。
特にこだわりがなければデフォルトのままで、「次のステップ:タグの追加」をクリックする。
タグの追加の必要がなければ、「次の手順:セキュリティグループの設定」を押す。
「既存のセキュリティグループを選択する」で先ほど作成したセキュリティグループを選択し、「確認と作成」を押す。
インスタンス作成の確認で内容を確認し、「起動」を押す。
既存のキーペアを選択するか、新しいキーペアを作成する。完了したらインスタンスの作成を押す。
EC2のインスタンスの画面に戻り、作成できたか確認する。
###RDSの作成
RDS>データベースの作成を押す。
「データベース作成方法を選択」>「標準作成」を押す。
「エンジンのオプション」から下記の項目を選択する。
エンジンのタイプ : MySQL
バージョン: MySQL 5.7.26
DBインスタンス識別子 : (AWSコンソール上で表示される名前)
マスターユーザー名 : (MySQLのログインユーザー名)
マスターパスワード : (MySQLのパスワード)
DB インスタンスサイズはデフォルトの「db.t2.micro」を選択する。(無料利用枠だとdb.t2.microしか選択できないようだ。)
「ストレージ」から下記のように設定する。
・ストレージタイプ:「汎用(SSD)」
・ストレージ割り当て:20
・ストレージの自動スケーリングを有効にする:チェックを外す
「接続」でセキュリティグループで設定したVPCを選択する。(今回はデフォルトを選択する。)
内容を確認し、「データベースの作成」を押す。
##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」を押す。
以下の画面ですべてOKになってるか、確認する。NGになっている箇所があった場合は表示されるメッセージに従い修正。
私の場合はdata.timezoneでNGになっていたので、zabbix インストール時のTimezone for PHP is not set. Please set "date.timezone" option in php.ini.の記事を参考にして修正した。
全てOKになったら、「Next Step」を押す。
「Configure DB connection」にて下記の項目を入力し「Next step」を押す。
Database host : (RDSのエンドポイント)
Password : (zabbixユーザのパスワード)
「Zabbix server details」にてデフォルトのままで「Next step」をクリックする。
「Pre-installation summary」にて正しい設定値であることを確認し、「Next step」を押す。
「Install」にて下記のように表示されたら無事インストールできたので、「Finish」を押す。
usernameとpasswordを入力し、ログインする。初期状態で設定されているユーザーは、usernameが「Admin」、Passwordが「zabbix」。
ダッシュボードが表示される。
「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」で言語を日本語に変更。「更新」ボタンを押す。
##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の登録
設定>ホスト>ホストの作成を押す。
下記の項目を入力し「テンプレート」を押す。
ホスト名 : (分かりやすい名前を入力)
表示名 : (分かりやすい名前を入力)
グループ : Linux servers
IPアドレス : (Zabbix Agent側のIPアドレスを入力)
#エラーが出たら
最初に作成した時、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
でファイルのメッセージを確認すると良い。