Zabbix 6.2インストール手順(CentOS Stream 8 / Apache2.4 / PHP-FPM7.4 / MySQL8.0)

はじめに

2022年7月5日、Zabbix 6.2がリリースされました。以下公式サイトに主な変更内容がまとめられています。

What’s new in Zabbix 6.2

今回は、ミドルウェア構成としてApache + PHP-FPM + MySQLでZabbix Server 6.2およびZabbix Agent2 6.2のインストールを検証してみました。OSはCentOS Stream 8を使用しています。下記ページでRed Hat系ディストリビューションとして選択肢にあるRHELやOracle Linuxでも同様の設定で動作する想定です。
Download and install Zabbix

前提条件

以下の前提条件で検証しています。

  • ハードウェア: VirtualBox上の仮想マシン
  • OS: CentOS Stream 8
  • ミドルウェア:
    • Apache: 2.4.37 (OS同梱版)
    • PHP-FPM: 7.4.19 (OS同梱版)
    • MySQL: 8.0.26 (OS同梱版)
    • Zabbix Server: 6.2.0
    • Zabbix Agent 2: 6.2.0
  • 構築対象サーバはインターネットと疎通が取れること
  • 各手順はroot権限を持つユーザで実施

OSは、CentOS StreamインストールDVDのISOファイルから「最小限のインストール」を選択しインストールを行いました。
バージョン情報は以下の通りです。

# cat /etc/redhat-release 
CentOS Stream release 8
# uname -r
4.18.0-365.el8.x86_64

パッケージインストール

Zabbix Server

Zabbixのリリース状況によっては、新しいバージョンのパッケージが公開される可能性があります。以下の公式リポジトリで、zabbix-release-6.2-x.el8.noarch.rpmのバージョンを確認して、新しいバージョンが公開されている場合は、インストール対象パッケージのURLを適宜変更してください。
https://repo.zabbix.com/zabbix/6.2/rhel/8/x86_64/

Zabbix 6.2の公式リポジトリをインストールします。

# dnf install -y https://repo.zabbix.com/zabbix/6.2/rhel/8/x86_64/zabbix-release-6.2-1.el8.noarch.rpm

関連パッケージのインストールを行う前に、AppStreamリポジトリからインストールされるPHPのバージョンを変更します。デフォルトではPHP 7.2がインストールされるように指定されています。

# dnf module list php
メタデータの期限切れの最終確認: 0:00:20 時間前の 2022年07月06日 23時14分43秒 に実施しました。
CentOS Stream 8 - AppStream
Name                Stream                 Profiles                                 Summary                             
php                 7.2 [d]                common [d], devel, minimal               PHP scripting language              
php                 7.3                    common [d], devel, minimal               PHP scripting language              
php                 7.4                    common [d], devel, minimal               PHP scripting language              
php                 8.0                    common [d], devel, minimal               PHP scripting language              

ヒント: [d]efault, [e]nabled, [x]disabled, [i]nstalled

バージョンを7.4に変更します。以下のコマンドを実行すると、Apacheとnginxのモジュールストリームも依存するバージョンが指定されます。

# dnf module -y switch-to php:7.4
メタデータの期限切れの最終確認: 0:04:24 時間前の 2022年07月06日 23時14分43秒 に実施しました。
依存関係が解決しました。
========================================================================================================================
 パッケージ                  アーキテクチャー           バージョン                    リポジトリー                サイズ
========================================================================================================================
モジュールストリームの有効化中:
 httpd                                                  2.4                                                            
 nginx                                                  1.14                                                           
 php                                                    7.4                                                            

トランザクションの概要
========================================================================================================================

完了しました!

Zabbix Serverの関連パッケージをインストールします。

# dnf install -y zabbix-server-mysql zabbix-web-mysql zabbix-web-japanese zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy mysql-server

Zabbix Agent 2

Zabbix Agent 2をインストールします。

# dnf install -y zabbix-agent2

設定ファイルの変更

Zabbix Server

viなどのテキストエディタで、Zabbix Serverの設定ファイルを開きます。

# vi /etc/zabbix/zabbix_server.conf

設定変更内容は以下の通りです。最低限の設定として、DBサーバへの接続情報が必要です。

### DB関連の設定 ###
# DB名
# 今回はデフォルトのzabbixを使用するので変更しない

DBName=zabbix

# DBユーザ名
# 今回はデフォルトのzabbixを使用するので変更しない

DBUser=zabbix

# DBパスワード
# 項目のコメントアウトを外し、クオートやスペースを含めずに指定する
# 今回は、パスワード設定例としてzabbixpassを指定

# DBPassword=
↓
DBPassword=zabbixpass

Zabbix Agent2

viなどのテキストエディタで、Zabbix Agent 2の設定ファイルを開きます。

# vi /etc/zabbix/zabbix_agent2.conf

設定変更内容は以下の通りです。監視を受け付けるサーバに関する設定を行います。

# 監視通信を許可するサーバIPアドレス
# Zabbixサーバ自身を監視する場合は値を変更しない
# 別サーバへエージェントをインストールする場合は、通信元ZabbixサーバのIPアドレスを指定する

Server=127.0.0.1

# アクティブチェック監視データの送信先サーバIPアドレス
# Zabbixサーバ自身を監視する場合は値を変更しない
# 別サーバへエージェントをインストールする場合は、送信先ZabbixサーバのIPアドレスを指定する

ServerActive=127.0.0.1

# 自ホスト名
# OS上のホスト名ではなく、Zabbix監視設定上のホスト名なので注意
# 以下の例では、監視設定上のホスト名をzbx01に指定している

Hostname=Zabbix server
↓
Hostname=zbx01

DBの設定

DBの設定を行うため、MySQLの自動起動設定とサービスの起動を行います。

# systemctl enable --now mysqld.service
Created symlink /etc/systemd/system/multi-user.target.wants/mysqld.service → /usr/lib/systemd/system/mysqld.service.

MySQLの初期設定を行います。
なお、MySQL 8.0ではパスワードポリシーの指定があります。Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG:の箇所で、以下のポリシーを選択できます。

  • 0: 8文字以上
  • 1: 8文字以上、英数大文字、小文字、記号を全て含む
  • 2: 8文字以上、英数大文字、小文字、記号、辞書ファイルの指定文字列を全て含む

設定例中のDBユーザrootのパスワードは、パスワードポリシーを0(LOW)、パスワード文字列にrootpassを指定します。

# mysql_secure_installation
(略)
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: y ←yを入力
(略)
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0 ←0を入力
(略)
New password: ←DBユーザrootのパスワードを入力

Re-enter new password: ←再度DBユーザrootのパスワードを入力
(略)
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y ←yを入力
(略)
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y ←yを入力
(略)
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y ←yを入力
(略)
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y ←yを入力
(略)
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y ←yを入力
Success.

All done! 

Zabbix用のデータベースとDBユーザを作成します。
設定例中のCREATE USERの箇所はZabbix Serverの設定ファイルに合わせて、DBユーザzabbixのパスワード文字列としてzabbixpassを指定します。

# mysql -u root -p
Enter password:  ←DBユーザrootのパスワードを入力
(略)
mysql> CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
Query OK, 1 row affected (0.00 sec)

mysql> CREATE USER zabbix@localhost IDENTIFIED BY 'zabbixpass';
Query OK, 0 rows affected (0.01 sec)

mysql> GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost;
Query OK, 0 rows affected (0.00 sec)

mysql> SET GLOBAL log_bin_trust_function_creators = 1;
Query OK, 0 rows affected (0.00 sec)

mysql> quit;
Bye

Zabbix用のDBスキーマと初期データをデータベースに読み込みます。サーバのスペックによっては、この処理は数十秒〜数分かかります。

# zcat /usr/share/doc/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p zabbix
Enter password:  ←DBユーザzabbixのパスワードを入力

SELinuxの設定(ブール値の有効化)

SELinuxが有効な場合、Zabbixに関するセキュリティポリシーを設定します。
まずは、Zabbixインストール時自動的に追加されるブール値の状態を確認します。

# semanage boolean -l | grep zabbix
httpd_can_connect_zabbix       (オフ   ,   オフ)  Allow httpd to can connect zabbix
zabbix_can_network             (オフ   ,   オフ)  Allow zabbix to can network
zabbix_run_sudo                (オフ   ,   オフ)  Allow zabbix to run sudo

最低限の通信が行えるよう、httpd_can_connect_zabbixzabbix_can_networkを有効化します。

# setsebool -P httpd_can_connect_zabbix on
# setsebool -P zabbix_can_network on

zabbix_run_sudoは、Zabbix Serverでsudoコマンドの発行要件がある場合に有効化します。

ファイアウォールの設定

Firewalldを使用する場合、外部からの通信を許可します。許可対象の通信は以下の通りです。

  • 10050/tcp : Zabbix Server → Zabbix Agentのパッシブ監視通信(Zbbixサーバ自身は不要、監視対象サーバでは必要)
  • 10051/tcp : Zabbix Agent → Serverのアクティブ監視通信(Zabbixサーバのみ必要)
  • http : クライアント → Zabbix WebUIのHTTP通信(Zabbixサーバのみ必要)
# firewall-cmd --add-port=10051/tcp --zone=public --permanent
success
# firewall-cmd --add-service=http --zone=public --permanent
success
# firewall-cmd --reload
success

Zabbix WebUIのSSL化(https)や、SNMP Trapの受信(162/udp)など、Zabbixサーバに対する上記以外のインバウンド通信要件がある場合は、適宜Firewalldの設定を追加してください。

サービス起動

Apache

Apacheの自動起動設定とサービス起動を行います。

# systemctl enable --now httpd.service
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.

PHP-FPM

PHP-FPMの自動起動設定とサービス起動を行います。

# systemctl enable --now php-fpm.service
Created symlink /etc/systemd/system/multi-user.target.wants/php-fpm.service → /usr/lib/systemd/system/php-fpm.service.

Zabbix Server

Zabbix Serverの自動起動設定とサービス起動を行います。

# systemctl enable --now zabbix-server.service
Created symlink /etc/systemd/system/multi-user.target.wants/zabbix-server.service → /usr/lib/systemd/system/zabbix-server.service.

Zabbix Agent2

Zabbix Agent2の自動起動設定とサービス起動を行います。

# systemctl enable --now zabbix-agent2
Created symlink /etc/systemd/system/multi-user.target.wants/zabbix-agent2.service → /usr/lib/systemd/system/zabbix-agent2.service.

サービス起動確認

Zabbixを構成している全サービスが起動していることを確認します。各サービスがActive: active (running)になっていれば正常に起動しています。

# systemctl status \
  httpd.service \
  php-fpm.service \
  mysqld.service \
  zabbix-server.service \
  zabbix-agent2.service \
  | grep -E "(●|Active:)"

● httpd.service - The Apache HTTP Server
   Active: active (running) since Wed 2022-02-16 00:48:19 JST; 1min 20s ago
● php-fpm.service - The PHP FastCGI Process Manager
   Active: active (running) since Wed 2022-02-16 00:48:19 JST; 1min 21s ago
● mysqld.service - MySQL 8.0 database server
   Active: active (running) since Wed 2022-02-16 00:27:45 JST; 21min ago
● zabbix-server.service - Zabbix Server
   Active: active (running) since Wed 2022-02-16 00:49:08 JST; 32s ago
● zabbix-agent2.service - Zabbix Agent 2
   Active: active (running) since Wed 2022-02-16 00:49:15 JST; 25s ago

WebUIの設定

初期設定ウィザード

WebUIの初期設定を行うため、作業端末のWebブラウザを起動して以下のURLにアクセスします。

http://<ZabbixサーバIPアドレス>/zabbix/

「デフォルトの言語」の箇所に、「日本語 (ja_JP)」を選択します。
言語表示が日本語に切り替わるので、「次のステップ」を押下します。

全ての項目が「OK」になっていることを確認して、「次のステップ」を押下します。

DBの認証情報はHashiCorp VaultやCyberArk Vaultから取得することも可能ですが、今回は「プレーンテキスト」を選択してZabbix自身に認証情報の設定を行います。
「パスワード」の箇所に、DBユーザzabbixのパスワードを入力し、「次のステップ」を押下します。

「デフォルトのタイムゾーン」の箇所に、「(UTC+09:00) Asia/Tokyo」を選択します。
「次のステップ」を押下します。

「次のステップ」を押下します。

「終了」を押下します。

設定が完了すると、ログイン画面に遷移します。
初期ユーザ名「Admin」、初期パスワード「zabbix」を入力し、「サインイン」を押下します。

ダッシュボードが表示されることを確認し、WebUIの初期設定は完了です。

参考情報

MySQLのエラー出力

手順中、以下のコマンドでDBスキーマおよび初期データをSQLファイルから流し込んでいる最中にエラーが出力されました。

# zcat /usr/share/doc/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p zabbix
Enter password:  ←DBユーザzabbixのパスワードを入力

ERROR 1419 (HY000) at line 2119: You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)

エラーメッセージに表示された該当行(2119行目)をSQLファイルから抽出したところ、トリガーを作成するDDLが表示されました。

# zcat /usr/share/doc/zabbix-sql-scripts/mysql/server.sql.gz | sed -n 2119p
create trigger hosts_insert after insert on hosts

MySQLの公式ドキュメントを確認すると、log_bin_trust_function_creatorsグローバルシステム変数をデフォルト値の0から1に変更する必要がありました。

25.7 ストアドプログラムバイナリロギング

以下の通り、一時的にグローバルシステム変数を変更することでエラーメッセージは出力されなくなりました。

mysql> SET GLOBAL log_bin_trust_function_creators = 1;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like 'log_bin_trust_function_creators';
+---------------------------------+-------+
| Variable_name                   | Value |
+---------------------------------+-------+
| log_bin_trust_function_creators | ON    |
+---------------------------------+-------+
1 row in set (0.00 sec)

Zabbixインストール時の依存パッケージについて

Zabbixの主要パッケージをインストールするときに要求される依存関係パッケージ一覧を採取しました。

オフライン環境でZabbixをインストールする場合、以下のパッケージファイルを用意しておく必要があります。
Zabbixリポジトリのパッケージは、インターネット上から直接ダウンロードしてサーバに転送しておきます。BaseOS、AppStreamリポジトリのパッケージは、OSインストールイメージのISOファイルをマウントしてyumリポジトリに登録することでインストールができます。

# dnf install zabbix-server-mysql zabbix-web-mysql zabbix-web-japanese zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy
(略)
========================================================================================================================
 パッケージ                        Arch      バージョン                                   リポジトリー            サイズ
========================================================================================================================
インストール:
 zabbix-apache-conf                noarch    6.2.0-1.el8                                  zabbix                   23 k
 zabbix-selinux-policy             x86_64    6.2.0-1.el8                                  zabbix                  285 k
 zabbix-server-mysql               x86_64    6.2.0-1.el8                                  zabbix                  1.6 M
 zabbix-sql-scripts                noarch    6.2.0-1.el8                                  zabbix                  6.7 M
 zabbix-web-japanese               noarch    6.2.0-1.el8                                  zabbix                   22 k
 zabbix-web-mysql                  noarch    6.2.0-1.el8                                  zabbix                   22 k
依存関係のインストール:
 OpenIPMI-libs                     x86_64    2.0.31-3.el8                                 baseos                  509 k
 apr                               x86_64    1.6.3-12.el8                                 appstream               129 k
 apr-util                          x86_64    1.6.1-6.el8                                  appstream               105 k
 centos-logos-httpd                noarch    85.8-2.el8                                   appstream                75 k
 dejavu-fonts-common               noarch    2.35-7.el8                                   baseos                   74 k
 dejavu-sans-fonts                 noarch    2.35-7.el8                                   baseos                  1.6 M
 fontconfig                        x86_64    2.13.1-4.el8                                 baseos                  274 k
 fontpackages-filesystem           noarch    1.44-22.el8                                  baseos                   16 k
 fping                             x86_64    3.16-1.el8                                   zabbix-non-supported     51 k
 gd                                x86_64    2.2.5-7.el8                                  appstream               144 k
 google-noto-cjk-fonts-common      noarch    20190416-1.el8                               appstream                20 k
 google-noto-sans-cjk-ttc-fonts    noarch    20190416-1.el8                               appstream                85 M
 httpd                             x86_64    2.4.37-47.module_el8.6.0+1111+ce6f4ceb.1     appstream               1.4 M
 httpd-filesystem                  noarch    2.4.37-47.module_el8.6.0+1111+ce6f4ceb.1     appstream                41 k
 httpd-tools                       x86_64    2.4.37-47.module_el8.6.0+1111+ce6f4ceb.1     appstream               108 k
 jbigkit-libs                      x86_64    2.1-14.el8                                   appstream                55 k
 libX11                            x86_64    1.6.8-5.el8                                  appstream               611 k
 libX11-common                     noarch    1.6.8-5.el8                                  appstream               158 k
 libXau                            x86_64    1.0.9-3.el8                                  appstream                37 k
 libXpm                            x86_64    3.5.12-8.el8                                 appstream                58 k
 libjpeg-turbo                     x86_64    1.5.3-12.el8                                 appstream               157 k
 libtiff                           x86_64    4.0.9-23.el8                                 appstream               188 k
 libtool-ltdl                      x86_64    2.4.6-25.el8                                 baseos                   58 k
 libwebp                           x86_64    1.0.0-5.el8                                  appstream               272 k
 libxcb                            x86_64    1.13.1-1.el8                                 appstream               229 k
 libxslt                           x86_64    1.1.32-6.el8                                 baseos                  250 k
 mailcap                           noarch    2.1.48-3.el8                                 baseos                   39 k
 mariadb-connector-c               x86_64    3.1.11-2.el8_3                               appstream               200 k
 mariadb-connector-c-config        noarch    3.1.11-2.el8_3                               appstream                15 k
 mod_http2                         x86_64    1.15.7-5.module_el8.6.0+1111+ce6f4ceb        appstream               155 k
 net-snmp-libs                     x86_64    1:5.8-25.el8                                 baseos                  827 k
 nginx-filesystem                  noarch    1:1.14.1-9.module_el8.0.0+1060+3ab382d3      appstream                24 k
 oniguruma                         x86_64    6.8.2-2.el8                                  appstream               187 k
 php-bcmath                        x86_64    7.4.19-2.module_el8.6.0+1075+ab70be85        appstream                80 k
 php-common                        x86_64    7.4.19-2.module_el8.6.0+1075+ab70be85        appstream               702 k
 php-fpm                           x86_64    7.4.19-2.module_el8.6.0+1075+ab70be85        appstream               1.6 M
 php-gd                            x86_64    7.4.19-2.module_el8.6.0+1075+ab70be85        appstream                85 k
 php-json                          x86_64    7.4.19-2.module_el8.6.0+1075+ab70be85        appstream                74 k
 php-ldap                          x86_64    7.4.19-2.module_el8.6.0+1075+ab70be85        appstream                86 k
 php-mbstring                      x86_64    7.4.19-2.module_el8.6.0+1075+ab70be85        appstream               484 k
 php-mysqlnd                       x86_64    7.4.19-2.module_el8.6.0+1075+ab70be85        appstream               193 k
 php-pdo                           x86_64    7.4.19-2.module_el8.6.0+1075+ab70be85        appstream               123 k
 php-xml                           x86_64    7.4.19-2.module_el8.6.0+1075+ab70be85        appstream               174 k
 unixODBC                          x86_64    2.3.7-1.el8                                  appstream               458 k
 zabbix-web                        noarch    6.2.0-1.el8                                  zabbix                  8.1 M
 zabbix-web-deps                   noarch    6.2.0-1.el8                                  zabbix                   23 k
弱い依存関係のインストール:
 apr-util-bdb                      x86_64    1.6.1-6.el8                                  appstream                25 k
 apr-util-openssl                  x86_64    1.6.1-6.el8                                  appstream                27 k

トランザクションの概要
========================================================================================================================
インストール  54 パッケージ

ダウンロードサイズの合計: 114 M
インストール後のサイズ: 224 M
(略)

Zabbix Agent 2の依存関係にあるパッケージは以下の通りです。

# dnf install zabbix-agent2
(略)
========================================================================================================================
 パッケージ                      アーキテクチャー         バージョン                     リポジトリー             サイズ
========================================================================================================================
インストール:
 zabbix-agent2                   x86_64                   6.2.0-1.el8                    zabbix                   5.2 M

トランザクションの概要
========================================================================================================================
インストール  1 パッケージ

ダウンロードサイズの合計: 5.2 M
インストール後のサイズ: 18 M
(略)

参考文献

Download and install Zabbix
Zabbix Documentation 6.2
25.7 ストアドプログラムバイナリロギング

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です