3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ZYYXAdvent Calendar 2021

Day 5

Zabbix5.0構築メモ(Amazon Linux 2)

Last updated at Posted at 2021-12-05

概要

最近、Zabbixを1から構築することがなかなか無かったので、改めて導入の手順をまとめながらインストールしてみます。
AWSのEC2に5.0系のZabbixを導入する手順となります。

環境の決定

どんなサイズのEC2にどのバージョンのソフトウェアを入れていくかを決めます。
サポート期間とリリースポリシー にZabbixの各バージョンのサポート期間が掲載されています。

長く運用する場合は、現時点では「LTS(long-term support)」の Zabbix 5.0 にしておくのが良さそうです。
今回は社内で検証のために立てるのですが、Zabbix 5.0 を入れることにします。

導入するバージョンが決まったらシステム要件を確認します。
インストールマニュアルの「2 Requirements」を確認します。
以下は、5.0用のページです。
https://www.zabbix.com/documentation/5.0/en/manual/installation/requirements
(URLのバージョン表記部分を変えると他のバージョンのページも見れます)
「Examples of hardware configuration」の部分でハードウェアの構成例が、「Required software」の部分でDB・Webサーバ・PHPの必須要件が書かれています。

今回は、以下バージョンで構築しました。

EC2:Amazon Linux 2 AMI (HVM)、インスタンスタイプはt3.micro(社内検証用のためスペック低め)
Zabbix:5.0.18
Apache:Apache/2.4.51
DB:MariaDB 5.5.68
PHP:7.2.24

Zabbixサーバ構築

AWSでインスタンスの立ち上げ

  • OS、インスタンスタイプを選択します。今回は検証用なのでt3.microですが、普通に監視用として立てるなら少し非力なのでsmall以上がいいと思います。

  • ネットワーク、サブネットは各自の環境に合わせて設定します。

  • ストレージは今回は検証用なのでデフォルトの8GBのままにします。ちゃんと立てる場合は監視するホスト数と監視データの保持期間にもよりますが、8GBだと少し心もとないので増やすことが多いです。

  • セキュリティグループをZabbix用に一つ作ります。Web管理画面にアクセスする環境からのHTTPまたはHTTPSのポートを許可しておくことと、監視対象サーバが決まっている場合はそのサーバからの10051番ポートからのアクセスを許可しておきます。

  • キーペアの設定or選択も各自の環境に合わせて設定します。新しくキーを作成した場合はファイルをダウンロードし、しっかり管理しましょう。

各ソフトウェアのインストール、設定

IPが割り当てられ、インスタンスが立ち上がってきたらもろもろ設定していきます。
ssh -i "キーファイルパス" ec2-user@IPアドレス でアクセスして sudo su - しておきます。

タイムゾーン設定

# timedatectl set-timezone Asia/Tokyo

設定後 timedatectldate コマンドで確認します。

Zabbixの導入と設定

Zabbix LLCのリポジトリを登録します。

# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
# yum clean all

Zabbixサーバとエージェントをインストールします。

# yum install -y zabbix-server-mysql zabbix-agent

SCLリポジトリを追加します。
公式インストールマニュアルの Red Hat Software Collections を使うやり方だと、rh-php72-php系がうまくはいらなかったので、centos-release-scl-rh を追加しました。

# rpm -Uvh http://mirror.centos.org/altarch/7/extras/aarch64/Packages/centos-release-scl-rh-2-3.el7.centos.noarch.rpm
# rpm -Uvh http://mirror.centos.org/centos/7/extras/x86_64/Packages/centos-release-scl-2-3.el7.centos.noarch.rpm

zabbix-frontendリポジトリを有効化します。
/etc/yum.repos.d/zabbix.repo を編集し、[zabbix-frontend]ブロックのenabledを1にしておきます。

[zabbix-frontend]
enabled=1

Zabbixフロントエンドパッケージをインストールします。

# yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl zabbix-web-japanese

DBのインストール・設定

MariaDBをインストールします。

# yum install -y mariadb mariadb-server
# systemctl start mariadb

MariaDBの初期設定を進めます。(対話式)

# mysql_secure_installation

Enter current password for root (enter for none): 空のままenterを押す
Set root password? [Y/n] Y
New password: (rootユーザのパスワードを設定 )
Re-enter new password: (rootユーザのパスワードを再入力 )
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

設定が終わったらアクセスします。

# mysql -uroot -p
(先程設定したrootユーザのパスワードを入力 )

以下を実施し、Zabbix用のデータベースとユーザーを作成&権限設定します。

create database zabbix character set utf8 collate utf8_bin;
create user zabbix@localhost identified by '{zabbixのDBPasswordを決めて入力}';
grant all privileges on zabbix.* to zabbix@localhost;
quit;

初期データを流し込みます。

# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
(zabbixのDBPassword入力を求められるので入力)

Zabbixの設定ファイル /etc/zabbix/zabbix_server.conf を更新します。

DBPassword={zabbixのDBPasswordを入力}

Zabbixのタイムゾーン設定(Zabbix本社のあるラトビアのリガがデフォルトタイムゾーンになってるので東京に変えます)
/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf を編集します。

php_value[date.timezone] = Asia/Tokyo

すべての設定後、サービス再起動。

# systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm mariadb

自動起動も設定。

# systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm mariadb

WebアクセスしてWeb UI上での設定に進みます。
http://{IPアドレス}/zabbix/

スクリーンショット 2021-12-05 18.37.10.png

設定した内容の確認をしていきつつ基本は[Next step]を押していきます。
1箇所、Configure DB connection画面で先程設定した zabbixのDBPassword をPassword欄に入力します。
設定完了後、 Zabbix管理画面に Admin / zabbix でログインします。
(ちゃんと運用する際にはAdminのパスワードも変更しましょう)

左メニューの「User settings」からLanguageを「Japanese(ja_JP)」にすることで日本語表示されます。

スクリーンショット 2021-12-05 18.36.06.png

監視される側のサーバの設定

ここからはZabbixに監視されるサーバ側の設定になります。

Zabbixエージェントインストール

Zabbixのyumリポジトリの登録(導入するバージョンはサーバに応じて調整)

# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-agent-5.0.9-1.el7.x86_64.rpm  

インストール、起動、自動起動設定

# yum install -y zabbix-agent
# systemctl start zabbix-agent
# systemctl enable zabbix-agent

監視されるサーバの /etc/zabbix/zabbix_agentd.conf を修正します。

Server={ZabbixサーバのIP}
ServerActive={ZabbixサーバのIP}
Hostname={監視されるサーバのホスト名称(Zabbixサーバの管理画面上でも使われる)を記載}

エージェントを再起動します。

# systemctl restart zabbix-agent

Zabbixサーバの管理画面でホストを登録する

Zabbix管理画面で設定 > ホストから、監視される側のサーバをホスト登録します。

おまけ

とりあえずZabbixサーバからメール通知をさせておきたい時に、Postfixを利用してGmailにリレーする手順を載せておきます。
※GmailにリレーするためにはGoogleアカウントの セキュリティ設定 にて、「安全性の低いアプリのアクセス」を「有効」にしておく必要があるので、本格的に運用する際のやり方としてはおすすめしません。

postfixの設定

postfix、amazon linux2だとインストールされていると思いますが入っていない場合はyumで入れます。

# yum install -y postfix

SMTP認証用に以下も導入します。

# yum install -y cyrus-sasl-plain cyrus-sasl-md5

postfixの起動と自動起動

# systemctl start postfix
# systemctl enable postfix

/etc/postfix/main.cf を編集。以下のように設定。

myhostname = localhost
mydomain = localhost

また、Gmail用の設定を末尾に追記します。

# gmail
relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_tls_CApath = /etc/pki/tls/certs/ca-bundle.crt
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_password
smtp_sasl_tls_security_options = noanonymous
smtp_sasl_mechanism_filter = plain

SMTP認証の設定 /etc/postfix/sasl_password に以下を記載します。(リレーに使うアカウントを設定)

[smtp.gmail.com]:587    {accoount@gmail.com:password}

パーミッション調整。

# chmod 600 /etc/postfix/sasl_password

dbファイルの生成。

# postmap hash:/etc/postfix/sasl_password

設定を反映します。

# systemctl restart postfix

テストメールをサーバから送信してみます。

# yum install -y mailx
# echo "This is Test Mail." | mail -s "test mail from test server." {自分のメールアドレス}

Zabbix管理画面側の設定

管理 > メディアタイプ > メディアタイプの作成 から、設定したメール送信設定を利用したメディアタイプを追加します。

タイプ:メール
SMTPサーバー:localhost
SMTPサーバーポート番号:25
SMTP helo:localhost
送信元メールアドレス:{任意のアドレス}
接続セキュリティ:なし
認証:なし
メッセージフォーマット:プレーンテキスト

管理 > メディアタイプの一覧から追加したメディアタイプの行の右側「テスト」を押してテスト送信が可能です。

3
2
0

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
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?