LoginSignup
7
2

More than 3 years have passed since last update.

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

Last updated at Posted at 2020-06-24

はじめに

【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.

7
2
1

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
  3. You can use dark theme
What you can do with signing up
7
2