search
LoginSignup
2

More than 1 year has passed since last update.

posted at

updated at

【AWS】AmazonLinuxにてZabbixマネージャー構築(OS側設定)

はじめに

【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ユーザーにて作業
(ルートユーザーには多要素認証設定済み)

構成図

Zabbix構築 (1).png

※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]#

⑤時刻同期確認

chrony169.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」をクリック。

1.JPG

(b)Check of pre-requisites

2.JPG

(c)DB情報入力

赤枠に必要な情報を入力

項目 設定値
Database host  RDSのエンドポイント
User DBのユーザー
Password DBのパスワード

※DBのユーザー/DBのパスワードは「(c).Zabbixデータベース/Zabbixユーザーの作成」で設定したもの

4.JPG

(d) Zabbix server details

そのまま「Next step」をクリック

5.JPG

(e) Pre-installation summary

そのまま「Next step」をクリック

6.JPG

(f) インストール完了画面

下記のような画面が表示されることを確認。「Finish」をクリック。

7.JPG

(g) ログイン画面

下記情報を入力し、Sign-in実施

項目 設定値
初期ユーザ  Admin
初期パスワード zabbix

9.JPG

(h) Zabbix管理画面表示確認

下記画面が表示されることを確認。

10.JPG

備考

今回はOS設定のみアウトプットしました。
時間を作って、AWS側設定/Zabbix監視設定もアウトプットしたいと思います。
(私のブログにZabbix構築総集編も作成する予定です。)

参考

【AWS】AmazonLinuxのNTP設定確認&日本語時刻設定方法
zabbix インストール時のTimezone for PHP is not set. Please set "date.timezone" option in php.ini.

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
What you can do with signing up
2