Zabbix 7.0 のインストール

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

1. 構成

Zabbixは、以下の主なソフトウェアコンポーネントから構成されています。
詳しい説明はZabbixの構成を参照してください。

  • Zabbixサーバ―:監視データの収集、保存、通知などを行うZabbixの中核となるプロセスです。
      データベース:設定情報と収集データの保存場所です。
    1. Webインターフェース:ブラウザ経由でアクセス可能な操作画面です。
  • Zabbixプロキシ:Zabbixサーバーの代わりに監視データを収集し、その情報をZabbixサーバに送信します。サーバーの負荷分散に有益です。
  • Zabbixエージェント:監視対象上で動作し、ローカルデータを収集・送信します。

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

インストール要件

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

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

規模 監視メトリック※1 CPU メモリ
小規模 1,000 2 コア 8GB
中規模 10,000 4 コア 16GB
大規模 100,000 16 コア 64GB
超大規模 1,000,000 32 コア 96GB

※1 (1 メトリック = 1 アイテム + 1 トリガー + 1 グラフです。)

Zabbix サーバは、ほとんどの Unix 系 OS にインストールすることが可能です。
Zabbix エージェントは、Unix 系 OS に加えて、Windows OS についても対応しています。
また、Zabbix の動作には以下のソフトウェアが必要になります。

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

システム要件およびソフトウェア要件の詳細は Zabbixの要件のマニュアルをご確認ください。

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

  • RHEL 9.4
  • Zabbix 7.0.2
  • Apache httpd 2.4.37
  • PHP 8.2.13
  • PostgreSQL 16.3

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-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# dnf -qy module disable postgresql
# dnf install postgresql16 postgresql16-server

4.2. PHP 8.2 のインストール

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

# dnf module list php
サブスクリプション管理リポジトリーを更新しています。
Red Hat Enterprise Linux 9 for x86_64 - AppStream 
Name                        Stream                        Profiles                                         Summary                                                        
php                         8.1                           common [d], devel, minimal                       PHP scripting language                      
php                         8.2                           common [d], devel, minimal                       PHP scripting language                      

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

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

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

ZABBIX バージョン 7.0 LTS
OS ディストリビューション Red Hat Enterprise Linux
OS バージョン 9
データベース PostgreSQL
WEB SERVER Apache
# rpm -ivh https://repo.zabbix.com/zabbix/7.0/rhel/9/x86_64/zabbix-release-7.0-2.el9.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 関連パッケージがインストールされます。(2024/08/08 現在)

# dnf list installed | grep zabbix
fping.x86_64                    5.1-1.el9             @zabbix-non-supported 
zabbix-agent.x86_64             7.0.2-release1.el9     @zabbix 
zabbix-apache-conf.noarch       7.0.2-release1.el9     @zabbix 
zabbix-release.noarch           7.0-2.el9             @System 
zabbix-selinux-policy.x86_64    7.0.2-release1.el9     @zabbix 
zabbix-server-pgsql.x86_64      7.0.2-release1.el9     @zabbix 
zabbix-sql-scripts.noarch       7.0.2-release1.el9     @zabbix 
zabbix-web.noarch               7.0.2-release1.el9     @zabbix 
zabbix-web-deps.noarch          7.0.2-release1.el9     @zabbix 
zabbix-web-japanese.noarch      7.0.2-release1.el9     @zabbix 
zabbix-web-pgsql.noarch         7.0.2-release1.el9     @zabbix

5. データベースの作成

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

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

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

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

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

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

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

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

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

# vi /var/lib/pgsql/16/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-16

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/zabbix-sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix
Password for user zabbix:(zabbix ユーザーのパスワード入力)

6. 設定

/etc/zabbix/zabbix_server.confを編集し、DBに関する設定をします。
DBパスワードは上記で設定したZabbixデータベースのzabbixをパスワードとします。

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

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サーバー名とデフォルトタイムゾーンの設定が可能です。
今回はZabbixサーバー名を検証用サーバーとします。
サーバー名を指定することで、複数の Zabbix サーバがある環境でも、Zabbix管理画面やブラウザのタブに識別子として表示されるため、どのZabbixサーバかをすぐに識別できます。
また、デフォルトタイムゾーンをAsia/Tokyoに設定し [次のステップ] をクリックし、次に進みます。


[設定パラメータの確認] から設定の最終確認を行います。

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

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


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

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

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

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

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

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

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

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

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