はじめに
【AWS】AmazonLinuxにてZabbixマネージャー構築(AWS側設定)の続きになります。
AmazonLinuxでのZabbixマネージャーの構築方法についてアウトプットしていきたいと思います。
(今回は、OS設定のみアウトプットとします。)
自宅環境
項目 | 説明 |
---|---|
自宅PC | Windows10 |
ターミナル | TeraTerm |
基盤環境
項目 | 説明 |
---|---|
OS | Amazon Linux 2 AMI (HVM), SSD Volume Type |
Size | t2.large |
DB | MySQL 5.7.26 |
※DBはRDSを外付け
※AWSのベストプラクティスに沿って、作業用IAMユーザーにて作業
(ルートユーザーには多要素認証設定済み)
構成図
※RDSの仕様上、AZが2つ必要であるため、サブネットを2つ作成しています。
手順
準備
- RDS(MySQL 5.7.26)を事前に作成しておく
- Zabbixマネージャーにターミナルソフトにてログインしておく
OS設定
(a).ルート権限にスイッチ
sudo su
###(b).アップデート
yum -y update
(c).ホスト名変更
hostnamectl set-hostname zbxmgr
(d).NTP確認・設定
「Amazon Time Sync Service」設定確認
①rootユーザーへ移行する。
[ec2-user@ip-192-168-8-74 ~]$ sudo su
[root@ip-192-168-8-74 ec2-user]#
②chrony
パッケージが存在することを確認
[root@ip-192-168-8-74 ec2-user]# rpm -qa | grep chrony
chrony-3.2-1.amzn2.0.5.x86_64
[root@ip-192-168-8-74 ec2-user]#
③/etc/chrony.conf
を確認
server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4
の一文が存在することを確認
[root@ip-192-168-8-74 ec2-user]# cat /etc/chrony.conf | grep server
server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4
# Use public servers from the pool.ntp.org project.
[root@ip-192-168-8-74 ec2-user]#
④chronyd
起動&自動起動設定確認
-
chronyd
起動確認
active (running)
になっていること。
[root@ip-192-168-8-74 ec2-user]# systemctl status chronyd
● chronyd.service - NTP client/server
Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2020-06-21 13:48:40 UTC; 9min ago
Docs: man:chronyd(8)
man:chrony.conf(5)
Process: 2699 ExecStartPost=/usr/libexec/chrony-helper update-daemon (code=exited, status=0/SUCCESS)
Process: 2680 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 2687 (chronyd)
CGroup: /system.slice/chronyd.service
mq2687 /usr/sbin/chronyd
Jun 21 13:48:40 localhost systemd[1]: Starting NTP client/server...
Jun 21 13:48:40 localhost chronyd[2687]: chronyd version 3.2 starting (+CMDM...)
Jun 21 13:48:40 localhost systemd[1]: Started NTP client/server.
Jun 21 13:48:46 ip-192-168-8-74.ap-northeast-1.compute.internal chronyd[2687]: ...
Hint: Some lines were ellipsized, use -l to show in full.
[root@ip-192-168-8-74 ec2-user]#
-
chronyd
自動起動確認
enabled
になっていること
[root@ip-192-168-8-74 ec2-user]# systemctl is-enabled chronyd
enabled
[root@ip-192-168-8-74 ec2-user]#
⑤時刻同期確認
chrony
が169.254.169.123
を使用して時刻を同期させていることを確認。
※*
になっていれば、時刻同期ができている。
[root@ip-192-168-8-74 ec2-user]# chronyc sources -v
210 Number of sources = 5
.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| / '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | \
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* 169.254.169.123 3 4 377 1 -1396ns[-2259ns] +/- 535us ← こちらの部分
^- x.ns.gin.ntt.net 2 6 377 40 +382us[ +388us] +/- 72ms
^- ntp-a2.nict.go.jp 1 6 377 39 +549us[ +554us] +/- 1604us
^- li1885-23.members.linode> 2 6 377 39 +615us[ +620us] +/- 28ms
^- ntp.arupaka.net 2 6 255 39 -2267us[-2262us] +/- 103ms
[root@ip-192-168-8-74 ec2-user]#
※こちらでも確認可能です。
[root@ip-192-168-8-74 ec2-user]# chronyc tracking
Reference ID : A9FEA97B (169.254.169.123)
Stratum : 4
Ref time (UTC) : Sun Jun 21 14:03:54 2020
System time : 0.000002454 seconds fast of NTP time
Last offset : +0.000000805 seconds
RMS offset : 0.000004196 seconds
Frequency : 12.523 ppm fast
Residual freq : +0.001 ppm
Skew : 0.076 ppm
Root delay : 0.000405045 seconds
Root dispersion : 0.000289323 seconds
Update interval : 16.1 seconds
Leap status : Normal
[root@ip-192-168-8-74 ec2-user]#
日本語設定方法
①事前確認
時刻がUTC表記となっていることを確認
[root@ip-192-168-8-74 ec2-user]# date
Sun Jun 21 14:05:48 UTC 2020
[root@ip-192-168-8-74 ec2-user]#
②インスタンスで使用する時間帯を確認
Japan
が存在することを確認
[root@ip-192-168-8-74 ec2-user]# ls /usr/share/zoneinfo/ | grep Japan
Japan
[root@ip-192-168-8-74 ec2-user]#
③clockファイルの変更
vim /etc/sysconfig/clock
- 変更前
[root@ip-192-168-8-74 ec2-user]# cat /etc/sysconfig/clock
ZONE="UTC"
UTC=true
[root@ip-192-168-8-74 ec2-user]#
- 変更後
[root@ip-192-168-8-74 ec2-user]# cat /etc/sysconfig/clock
#ZONE="UTC"
ZONE="Japan"
UTC=true
[root@ip-192-168-8-74 ec2-user]#
④時間帯ファイルにシンボリックリンクの作成
インスタンスが現地時間情報を参照する際に、時間帯ファイルを読み込むためシンボリックリンクを貼る。
[root@ip-192-168-8-74 ec2-user]# ln -sf /usr/share/zoneinfo/Japan /etc/localtime
[root@ip-192-168-8-74 ec2-user]# ll /etc/localtime
lrwxrwxrwx 1 root root 25 Jun 21 23:10 /etc/localtime -> /usr/share/zoneinfo/Japan
[root@ip-192-168-8-74 ec2-user]#
###(e).SELinux無効化確認
[root@ip-192-168-5-129 ec2-user]# getenforce
Disabled
[root@ip-192-168-5-129 ec2-user]#
###(f).再起動
reboot
###(g).時間確認
日本時間になっていること。
[ec2-user@ip-192-168-8-74 ~]$ date
Sun Jun 21 23:12:15 JST 2020
[ec2-user@ip-192-168-8-74 ~]$
Zabbixパッケージインストール
###(a).Zabbix4.2のリポジトリをインストール
rpm -Uvh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-2.el7.noarch.rpm
###(b).Zabbix4.2関連のパッケージをインストール
yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-web-japanese zabbix-agent
###(c).php.ini
のタイムゾーン設定
- 事前ファイルバックアップ
cp -p /etc/php.ini /etc/php.ini_20200624
- 設定ファイル編集
vim /etc/php.ini
※878行目付近になります。
変更前
;date.timezone =
変更後
date.timezone = Asia/Tokyo
- `diff`にてバックアップファイルと比較
[root@zbxmgr ec2-user]# diff /etc/php.ini /etc/php.ini_20200624
878c878
< date.timezone = Asia/Tokyo
---
> ;date.timezone =
[root@zbxmgr ec2-user]#
MySQLインストール・設定
(a).MySQLクライアントのインストール
yum -y install mysql mysql-devel
※既にインストール済みであれば不要
(b).RDSへ接続
mysql -h RDSのエンドポイント -P 3306 -u ユーザ名 -p
実行例
[root@zbxmgr ec2-user]# mysql -h test-zabbix-1.cfwpl4233294.ap-northeast-1.rds.amazonaws.com -P 3306 -u zabbix -p
Enter password: ← RDS作成時に設定したパスワードを入力
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 28
Server version: 5.7.26-log Source distribution
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]>
(c).Zabbixデータベース/Zabbixユーザーの作成
- Zabbixのデータベースを作成
MySQL [(none)]> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
MySQL [(none)]>
- Zabbixのユーザーの作成
grant all on zabbix.* to <DBのユーザー>@`%` identified by '<DBのパスワード>';
実行例)
MySQL [(none)]> grant all on zabbix.* to zabbix@`%` identified by 'P@ssw0rd';
Query OK, 0 rows affected, 1 warning (0.00 sec)
MySQL [(none)]>
- MySQLから抜ける
MySQL [(none)]> quit;
Bye
[root@zbxmgr ec2-user]#
(d).Zabbixの初期データを登録する。
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -h <RDSのエンドポイント> -P 3306 -u <ユーザ名> -p zabbix
実行例)
[root@zbxmgr ec2-user]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -h test-zabbix-1.cfwpl4233294.ap-northeast-1.rds.amazonaws.com -P 3306 -u zabbix -p zabbix
Enter password: ←「Zabbixユーザーの作成」で設定したパスワード
[root@zbxmgr ec2-user]#
(e).DB情報登録
- ファイルバックアップ
cp -p /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.conf_20200624
- ファイル修正
sudo vim /etc/zabbix/zabbix_server.conf
DBHost=RDSのエンドポイント
DBPassword=RDSのパスワード
-
diff
にて比較
[root@zbxmgr ec2-user]# diff /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.conf_20200624
91c91
< DBHost= test-zabbix-1.cfwplijf9ni4.ap-northeast-1.rds.amazonaws.com
---
> # DBHost=localhost
124c124
< DBPassword=P@ssw0rd
---
> # DBPassword=
[root@zbxmgr ec2-user]#
(f).zabbix-server/httpdの起動・自動起動
systemctl start httpd
systemctl enable httpd
systemctl start zabbix-server
systemctl enable zabbix-server
Zabbix Agent起動・自動起動設定
systemctl start zabbix-agent
systemctl enable zabbix-agent
ZabbixのGUI接続
(a)ブラウザにて「http://(インスタンスのパブリックIP)/zabbix」へ接続
下記の画面が表示されることを確認。「Next Step」をクリック。
(b)Check of pre-requisites
(c)DB情報入力
赤枠に必要な情報を入力
項目 | 設定値 |
---|---|
Database host | RDSのエンドポイント |
User | DBのユーザー |
Password | DBのパスワード |
※DBのユーザー/DBのパスワードは**「(c).Zabbixデータベース/Zabbixユーザーの作成」**で設定したもの
(d) Zabbix server details
そのまま「Next step」をクリック
(e) Pre-installation summary
そのまま「Next step」をクリック
(f) インストール完了画面
下記のような画面が表示されることを確認。「Finish」をクリック。
(g) ログイン画面
下記情報を入力し、Sign-in実施
項目 | 設定値 |
---|---|
初期ユーザ | Admin |
初期パスワード | zabbix |
(h) Zabbix管理画面表示確認
下記画面が表示されることを確認。
備考
今回はOS設定のみアウトプットしました。
時間を作って、AWS側設定/Zabbix監視設定もアウトプットしたいと思います。
(私のブログにZabbix構築総集編も作成する予定です。)
参考
【AWS】AmazonLinuxのNTP設定確認&日本語時刻設定方法
zabbix インストール時のTimezone for PHP is not set. Please set "date.timezone" option in php.ini.