AWSのEC2とRDS(MySQL8)を使ってZabbix4を構築
AWSのEC2とRDS(MySQL8)を使ってZabbix4を構築:
AWSの初心者がAWSに触れる機会として何か構築しようと考えました。
前職の研修でZABBIXの構築経験があり、丁度ZABBIXとMysqlが新しいバージョンがリリースされ
話題になっていたので今回の内容となりました。
せっかくのAWSなので、RDSを使ったDB外だしをしてみようと思います。
※素人なので考慮漏れがあるかもしれませんのでご指摘いただけると幸いです。
AWS上にVPC、Elastic IP、EC2インスタンスの準備工程は省略します。
sshを用いてEC2へログイン頂き、root権限で以下を実行して下さい。
1 Install Repository with MySQL database
2 Install Zabbix server, frontend, agent
1 セキュリティグループにてDB用のものを作成。
MYSQLのサービスをZabbix構築するEC2のlocal IPもしくは
EC2のセキュリティグループに対して許可。
2 RDSのメニューからインスタンスを作成、上記セキュリティグループと
バージョンを8.0.11以外全部デフォルトで構築。
3 DBにログイン(EC2から以下のコマンド実行)
PWを聞かれるのでRDS構築時に設定したPW入力
↑ここでエラー
MySQL8からgrantではユーザ作成ができないらしい・・・
・MySQL8.0ではGRANT文でユーザを作らせない(代わりにロールがある)
・Zabbix4.0+MySQL8.0の構築
仕方がないのでユーザ作成と権限付与を分けて実行
mysql上での操作は完了したので、以下実行
mysql内にZABBIX用のDBは作成したけれど、中身が空っぽなので
必要なデータをDBに入力
1 zabbix_server.conf
バックアップをとっておき、
以下の項目を修正
・DBHost=RDSのエンドポイント
・DBPassword=password
2 zabbix.conf
バックアップをとっておき、
以下を追加
3 zabbixの起動と自動起動設定
4 ZABBIXをwebページから初期設定
URL:http://EC2のグローバルIPアドレス/zabbix
すべてOKになっているはず
database hostをRDSのエンドポイントへ
passwordもmysqlで設定したZABBIXのパスワード
すると・・・
どうやらMysql 8からセキュリティやら文字コードまわりの変更が
あったらしく、MYSQLのオプションを変更しないといけないらしい。
MySQL 8.0にアップデート!注意すべき点
AWSのRDSメニューからパラメータグループを選択し、
パラメータグループの作成。
作成された後、以下の項目を変更
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
1 RDSのメニューからインスタンスを作成。
失敗編で作成したDBのセキュリティグループとバージョンを8.0.11、DBのパラメータグループを上記で作成したものを選択して作成。
2 DBにログイン(EC2から以下のコマンド実行)
PWを聞かれるのでRDS構築時に設定したPW入力
ユーザ作成と権限付与を分けて実行
mysql上での操作は完了したので、以下実行
mysql内にZABBIX用のDBは作成したけれど、中身が空っぽなので
必要なデータをDBに入力
1 zabbix_server.conf
以下の項目を修正
・DBHost=RDSのエンドポイント(二つ目のRDS)
・DBPassword=password
2 zabbix.conf.php
/etc/zabbix/web/zabbix.conf.phpが存在すれば
存在しなければ、次へ。
3 ZABBIXをwebページから初期設定
URL:http://EC2のグローバルIPアドレス/zabbix
4初期設定後、ログイン画面
ID:Admin
PW:zabbix
ログインし、Zabbix server is runningがYesになって入れば
構築は完了です。
・MYSQLのコマンドを叩く際に-h RDSのエンドポイントのオプションが
必要
・MYSQLのユーザにDBの権限付与がzabbix公式手順でいけない
・MYSQL8のオプション変更が必要
・MYSQLのユーザ'%'の意味
躓きポイントをまとめたら、ZABBIX関係ありませんでした。
記事の入力に2時間超えていて、頭の整理とアウトプットに
こんなに時間を要するとは思ってませんでした。
AWSのサービスに限らず、今後も何かしら構築できればと考えています。
AWSのEC2とRDS(Mysql8)を使ってZabbix4を構築
構築目的と背景
AWSの初心者がAWSに触れる機会として何か構築しようと考えました。前職の研修でZABBIXの構築経験があり、丁度ZABBIXとMysqlが新しいバージョンがリリースされ
話題になっていたので今回の内容となりました。
せっかくのAWSなので、RDSを使ったDB外だしをしてみようと思います。
※素人なので考慮漏れがあるかもしれませんのでご指摘いただけると幸いです。
構築する構成
構築手順
AWS上にVPC、Elastic IP、EC2インスタンスの準備工程は省略します。
* 1 EC2へZabbixインストール
sshを用いてEC2へログイン頂き、root権限で以下を実行して下さい。1 Install Repository with MySQL database
rpm -i https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
2 Install Zabbix server, frontend, agent
yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent
* 2 RDSの準備 ※失敗編
1 セキュリティグループにてDB用のものを作成。MYSQLのサービスをZabbix構築するEC2のlocal IPもしくは
EC2のセキュリティグループに対して許可。
2 RDSのメニューからインスタンスを作成、上記セキュリティグループと
バージョンを8.0.11以外全部デフォルトで構築。
3 DBにログイン(EC2から以下のコマンド実行)
mysql -uroot -p -h RDSのエンドポイント
PWを聞かれるのでRDS構築時に設定したPW入力
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'password';
↑ここでエラー
MySQL8からgrantではユーザ作成ができないらしい・・・
・MySQL8.0ではGRANT文でユーザを作らせない(代わりにロールがある)
・Zabbix4.0+MySQL8.0の構築
仕方がないのでユーザ作成と権限付与を分けて実行
create user 'zabbix'@'%' identified by 'password';
grant all privileges on zabbix.* to zabbix@'%';
Query OK, 0 rows affected (0.10 sec)
mysql上での操作は完了したので、以下実行
mysql> quit;
mysql内にZABBIX用のDBは作成したけれど、中身が空っぽなので
必要なデータをDBに入力
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix -h RDSのエンドポイント
* 3 Zabbixのコンフィグ修正
1 zabbix_server.confバックアップをとっておき、
cp -p /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.conf.backup
以下の項目を修正
・DBHost=RDSのエンドポイント
・DBPassword=password
2 zabbix.conf
バックアップをとっておき、
cp -p /etc/httpd/conf.d/zabbix.conf /etc/httpd/conf.d/zabbix.conf.backup
以下を追加
php_value date.timezone Asia/Tokyo
3 zabbixの起動と自動起動設定
systemctl restart zabbix-server zabbix-agent httpd
systemctl enable zabbix-server zabbix-agent httpd
4 ZABBIXをwebページから初期設定
URL:http://EC2のグローバルIPアドレス/zabbix
すべてOKになっているはず
database hostをRDSのエンドポイントへ
passwordもmysqlで設定したZABBIXのパスワード
すると・・・
* 2 RDSの準備 ※成功編
エラーの原因
どうやらMysql 8からセキュリティやら文字コードまわりの変更があったらしく、MYSQLのオプションを変更しないといけないらしい。
MySQL 8.0にアップデート!注意すべき点
AWSのRDSメニューからパラメータグループを選択し、
パラメータグループの作成。
作成された後、以下の項目を変更
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
1 RDSのメニューからインスタンスを作成。
失敗編で作成したDBのセキュリティグループとバージョンを8.0.11、DBのパラメータグループを上記で作成したものを選択して作成。
2 DBにログイン(EC2から以下のコマンド実行)
mysql -uroot -p -h RDSのエンドポイント
PWを聞かれるのでRDS構築時に設定したPW入力
mysql> create database zabbix character set utf8 collate utf8_bin;
ユーザ作成と権限付与を分けて実行
create user 'zabbix'@'%' identified by 'password';
grant all privileges on zabbix.* to zabbix@'%';
Query OK, 0 rows affected (0.10 sec)
mysql上での操作は完了したので、以下実行
mysql> quit;
mysql内にZABBIX用のDBは作成したけれど、中身が空っぽなので
必要なデータをDBに入力
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix -h RDSのエンドポイント
* 3 Zabbixのコンフィグを再度修正
1 zabbix_server.conf以下の項目を修正
・DBHost=RDSのエンドポイント(二つ目のRDS)
・DBPassword=password
2 zabbix.conf.php
/etc/zabbix/web/zabbix.conf.phpが存在すれば
rm /etc/zabbix/web/zabbix.conf.php
にて削除存在しなければ、次へ。
3 ZABBIXをwebページから初期設定
URL:http://EC2のグローバルIPアドレス/zabbix
4初期設定後、ログイン画面
ID:Admin
PW:zabbix
ログインし、Zabbix server is runningがYesになって入れば
構築は完了です。
躓いたポイント
・MYSQLのコマンドを叩く際に-h RDSのエンドポイントのオプションが必要
・MYSQLのユーザにDBの権限付与がzabbix公式手順でいけない
・MYSQL8のオプション変更が必要
・MYSQLのユーザ'%'の意味
感想
躓きポイントをまとめたら、ZABBIX関係ありませんでした。記事の入力に2時間超えていて、頭の整理とアウトプットに
こんなに時間を要するとは思ってませんでした。
AWSのサービスに限らず、今後も何かしら構築できればと考えています。
コメント
コメントを投稿