Zabbix 6.0 インストール

本記事では Zabbix 6.0 のインストールおよび初期設定を行い、Web フロントエンドにログインできるようにするまでを解説していきます。

1. 構成

Zabbix サーバは Zabbix サーバ本体、Web フロントエンド、データベース、およびデータ取得のための補助サービスから構成されます。

Zabbix では各種設定や監視データはデータベースに保存されます。

インストール要件

Zabbix に必要なハードウェアの要件は監視対象の数や監視設定数、監視間隔、データの保存期間に依存します。

ハードウェア要件の大まかな目安としては以下になります。

規模 CPU/メモリ 監視対象数
小・中規模 2 コア/2GB 500
大規模 4 コア/8GB 1000 以上
超大規模 8 コア/16GB 10000 以上

Zabbix サーバはほとんどの Unix 系 OS にインストールすることが可能です。

詳細はシステム要件をご参照ください。

また、Zabbix の動作には以下のソフトウェアが必要になります。

  • Apache/Nginx
  • PHP
  • PostgreSQL/MySQL/ etc.

詳細はソフトウェア要件をご確認ください。

本記事では以下の構成でインストールを行います。

  • RHEL 8.5
  • Zabbix 6.0.3
  • Apache httpd 2.4.37 (OS 同梱のパッケージ)
  • PHP 7.4.19
  • PostgreSQL 14.2

2. 構築の流れ

本記事では RPM パッケージを使用して、以下の手順でインストールを行います。

  1. パッケージのインストール
  2. データベース作成
  3. 設定ファイルの編集
  4. Zabbix サーバ、エージェント、その他サービスの起動
  5. Web フロントエンドから初期設定

3. インストール前の準備

firewalld の設定で Zabbix サーバへの 80, 10051 番ポートへのアクセスを許可しておきます。

4. パッケージのインストール

Zabbix 本体および依存パッケージを各 RPM リポジトリから dnf コマンドでインストールします。

なお、インターネットに接続していないなどの理由で dnf が利用できない環境の場合は、あらかじめ必要となる RPM パッケージをすべてダウンロードしてインストールする必要があります。

4.1. PostgreSQL のインストール

PostgreSQL コミュニティから最新版をインストールします。

# dnf install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# dnf -qy module disable postgresql
# dnf install postgresql14 postgresql14-server

4.2. PHP 7.4 のインストール

バージョン 7.4 を指定して AppStream から PHP をインストールします。

# dnf module list php
サブスクリプション管理リポジトリーを更新しています。
Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs)                                                               6.2 kB/s | 4.5 kB     00:00    
Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs)                                                                  7.6 kB/s | 4.1 kB     00:00    
Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs)
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                      

ヒント: [d]efault, [e]nabled, [x]disabled, [i]nstalled
# dnf module install php:7.4

4.3. Zabbix パッケージのインストール

Zabbix のダウンロードページで以下のプラットフォームを選択した際の rpm を取得してインストールを行います。

ZABBIX バージョン 6.0 LTS
OS ディストリビューション Red Hat Enterprise Linux
OS バージョン 8
データベース PostgreSQL
WEB SERVER Apache
# rpm -ivh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-1.el8.noarch.rpm

次に Zabbix サーバ、エージェント、Web フロントエンドをインストールします。

# dnf install zabbix-server-pgsql zabbix-web-pgsql zabbix-web-japanese zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent

インストールの過程で依存関係により httpd もインストールされます。

ここまでで以下の Zabbix 関連パッケージがインストールされます。(2022/04/21 現在)

# dnf list installed | grep zabbix
fping.x86_64                    3.16-1.el8      @zabbix-non-supported 
zabbix-agent.x86_64             6.0.3-1.el8     @zabbix 
zabbix-apache-conf.noarch       6.0.3-1.el8     @zabbix 
zabbix-release.noarch           6.0-1.el8       @System 
zabbix-selinux-policy.x86_64    6.0.3-1.el8     @zabbix 
zabbix-server-pgsql.x86_64      6.0.3-1.el8     @zabbix 
zabbix-sql-scripts.noarch       6.0.3-1.el8     @zabbix 
zabbix-web.noarch               6.0.3-1.el8     @zabbix 
zabbix-web-deps.noarch          6.0.3-1.el8     @zabbix 
zabbix-web-japanese.noarch      6.0.3-1.el8     @zabbix 
zabbix-web-pgsql.noarch         6.0.3-1.el8     @zabbix

5. データベースの作成

Zabbix 用のデータベースおよびユーザーを作成し、初期データをインポートします。

なお、実際の運用では、監視の規模にあわせて、共有バッファサイズや自動バキューム頻度などの設定のチューニングが必要となります。

データベースの初期化および起動・自動起動有効化をします。

# PGSETUP_INITDB_OPTIONS="-E utf8 --no-locale" /usr/bin/postgresql-14-setup initdb
# systemctl --now enable postgresql-14

postgres ユーザーのパスワードを設定します。

今回は postgres をパスワードとします。

# sudo -u postgres psql -c "alter user postgres with password 'postgres'"

pg_hba.conf を編集し、パスワード認証を有効化します。

今回は scram-sha-256 認証方式を利用します。

# vi /var/lib/pgsql/14/data/pg_hba.conf
local   all      all                       scram-sha-256
host    all      all      127.0.0.1/32     scram-sha-256
host    all      all      ::1/128          scram-sha-256
# systemctl restart postgresql-14

zabbix ユーザーおよび Zabbix 初期データベースを作成します。

# sudo -u postgres createuser --pwprompt zabbix
Enter password for new role: (今回は zabbix をパスワードとします)
Enter it again:
Password: (postgres ユーザーのパスワード入力)
# sudo -u postgres createdb -O zabbix zabbix
Password: (postgres ユーザーのパスワード入力)
# zcat /usr/share/doc/zabbix-sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix
Password for user zabbix: (zabbix ユーザーのパスワード入力)

6. 設定

/etc/zabbix/zabbix_server.conf を編集し、DB に関する設定をします。

# vi /etc/zabbix/zabbix_server.conf
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix

次にフロントエンドのタイムゾーンを Asia/Tokyo にします。

# vi /etc/php-fpm.d/zabbix.conf
php_value[date.timezone] = Asia/Tokyo

7. 起動

zabbix-server, zabbix-agent, httpd, php-fpm の起動・自動起動有効化をします。

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

8. SELinux の設定

zabbix-selinux-policy パッケージをインストールすると下記パスに Zabbix の基本的な SELinux ポリシーがインストールされ、特別 Zabbix に関するポリシーを追加する必要がないため、本記事では SELinux は enforcing モードとします。

/usr/share/selinux/packages/zabbix/zabbix_policy.pp

なお、PHP から PostgreSQL へのアクセスを許可させるため httpd_can_network_connect_db は有効にします。

# setsebool -P httpd_can_network_connect_db on
# getsebool httpd_can_network_connect_db
httpd_can_network_connect_db --> on

9. Web フロントエンドのセットアップ

Web フロントエンドのセットアップを行います。

Web ブラウザから http://(Zabbix サーバのホスト名 or IP アドレス)/zabbix にアクセスし、画面の指示に従って初期設定を行います。

アクセスできない場合は SELinux および firewalld の設定が正しく行われているかを確認してください。

デフォルトの言語は US 英語のため [Default language] から [Japanese (ja_JP)] を選択し、次に進みます。

[前提条件のチェック] から各項目が条件を満たしているか確認します。

問題がなければ [次のステップ] をクリックし、次に進みます。

[データベース接続設定] から Zabbix が利用するデータベースの接続設定を確認します。

[パスワード] にデータベース上の zabbix ユーザーのパスワードを入力します。(今回の場合は zabbix を入力)

また、[データベースのTLS暗号化] はデフォルトではチェックが入りますが、今回はチェックを外します。

設定内容に問題がなければ [次のステップ] をクリックし、次に進みます。


[設定] の [Zabbixサーバー名] で名前を指定します。(今回の場合は「検証用サーバ」を入力)

名前の入力およびタイムゾーンとテーマの確認を行い、問題がなければ [次のステップ] をクリックし、次に進みます。


[インストール事前準備概要] から設定の最終確認を行います。

何か修正が必要な場合は [戻る] をクリックし、該当のページに戻って修正を行います。

設定に問題がなければ [次のステップ] をクリックし、次に進みます。


このように表示されたら Web フロントエンドのセットアップが完了します。

[終了] をクリックするとログイン画面が表示されます。

デフォルトで特権管理ユーザーが存在しますので以下の情報を入力しログインします。

ユーザー名 Admin
パスワード zabbix

ログイン後にパスワードを変更することを推奨します。

ログインに成功するとダッシュボード画面が表示されます。

Admin ユーザーのパスワードは画面左下の [ユーザー設定] → [プロファイル] から変更することができます。

[パスワード変更] をクリックし、新しいパスワードを入力したら [更新] をクリックします。

これで Zabbix サーバのインストール完了です。