【自分用メモ】
概要
AWSのEC2にZabbixサーバーを構築してみました。
OSはUbuntuとし、ZabbixとMySQLをインストールします。
AWSの無料枠でサーバーを立てることができます。
※メモリの枯渇で運用はできません。
大まかな流れ
- AWSの設定。EC2からUbuntuを立ち上げてOSを用意します。
- Download and install Zabbixを参照し、terminalから立ち上げたOSにZabbix, MySQL, Apacheをインストールします。
環境
Zabbix | 5.0 LTS |
OS | Ubuntu 20.04 |
Database | MySQL |
Web Server | Apache |
ホストOS | mac |
手順
1. AWSの設定
2. インスタンスタイプは無料枠を利用します。
(Zabbixの構築後に確認ができますが、無料枠の1メモリではZabbix上でメモリの使用率が高騰しているとアラートが出ます。が、今回は構築方法の検証なので、割愛します。)
4. タグとセキュリティグループ(SG)の設定は任意。今回はセキュリティに関しては考慮していません。
(SGには後でHTTPを付与しますがここで設定しても構いません。)
6. VPCを作成した際に自動的にルートテーブルも作成されます。
ルートテーブルのルートを編集し、先ほど作成したIGWを追加します。
以上でAWSの設定は終了です。次からterminalでの操作を行います。
パブリックIPを使用します。
2. terminalでの設定
terminalを起動します。
- 作成したインスタンスにSSH接続をします。
ssh -i キーペアのパス ユーザー名@パブリックIP
今回の例では以下となります。
ssh -i ./Downloads/keypair.pem ubuntu@13.231.254.188
2. Download and install Zabbixの手順に従ってterminal上にコマンドを入力します。
rootユーザーにスイッチしてからコマンドを入力します。
ubuntu@ip-192-168-0-190:~$ sudo su -
root@ip-192-168-0-190:~# wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
root@ip-192-168-0-190:~# dpkg -i zabbix-release_5.0-1+focal_all.deb
root@ip-192-168-0-190:~# apt update
root@ip-192-168-0-190:~# apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-agent
Do you want to continue?[Y/n] y
3. MySQLの初期設定を行います。
MySQLのルートユーザーパスワード<パスワード1>を設定した後、余分なデータを削除します。
root@ip-192-168-0-190:~# sudo apt install mysql-server
Do you want to continue?[Y/n] y
root@ip-192-168-0-190:~# sudo mysql_secure_installation
Press y|Y for Yes, any other key for No:
Please set the password for root here.
New password: <パスワード1>
Re-enter new password: <パスワード1>
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
root@ip-192-168-0-190:~# service mysql status
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2021-10-20 05:58:34 UTC; 9min ago
以上で初期設定は終了です。
4. MySQLの設定
mysql -u root -p
と入力するとパスワードが求められます。
MySQLのユーザーパスワード<パスワード2>を設定します。
Zabbixのパスワード<パスワード3>を設定します。
root@ip-192-168-0-190:~# mysql -uroot -p
Enter password: <パスワード2>
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix@localhost identified by '<パスワード3>';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> quit;
root@ip-192-168-0-190:~# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
Enter password: <パスワード3>
5. 念の為、MySQLの設定を確認します。
root@ip-192-168-0-190:~# mysql
mysql> show databases;
mysql> use zabbix;
mysql> show tables;
mysql> quit;
6. Zabbix ServerにMySQLのパスワードを組み込みます。
(nanoエディタは「Ctrl+x」-「y」-「エンターキー」で抜けられます。)
root@ip-192-168-0-190:~# nano /etc/zabbix/zabbix_server.conf
### Option: DBPassword
# Database password.
# Comment this line if no password is used.
#
# Mandatory: no
# Default:
DBPassword=<パスワード3>
7. Zabbixのタイムゾーンを東京時間に修正します。
root@ip-192-168-0-190:~# nano /etc/zabbix/apache.conf
<IfModule mod_php5.c>
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value max_input_vars 10000
php_value always_populate_raw_post_data -1
# php_value date.timezone Europe/Riga
</IfModule>
<IfModule mod_php7.c>
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value max_input_vars 10000
php_value always_populate_raw_post_data -1
→ php_value date.timezone Asia/Tokyo
</IfModule>
8. Zabbix Serverを起動します。
root@ip-192-168-0-190:~# systemctl restart zabbix-server zabbix-agent apache2
root@ip-192-168-0-190:~# systemctl enable zabbix-server zabbix-agent apache2
root@ip-192-168-0-190:~# nano /etc/zabbix/zabbix_server.conf
Active: active (running) since Wed 2021-10-20 11:23:41 UTC; 32s ago
3. AWSの設定
ブラウザにhttp://<パブリックIP>/zabbixと入力しZabbixに接続します。
その前に【1. AWSの設定】でSGにHTTPの通信許可をしていないので許可設定をします。
4. Zabbixの設定
2. Zabbixのログイン画面が表示されます。
デフォルトでログインの設定は以下となります。
Username: Admin
Password: zabbix
以上でZabbixのログインが完了します。