
本記事では Zabbix 7.0 のインストールおよび初期設定を行い、Web フロントエンドにログインできるようにするまでを解説していきます。
1. 構成
Zabbixは、以下の主なソフトウェアコンポーネントから構成されています。
詳しい説明はZabbixの構成を参照してください。
- Zabbixサーバ―:監視データの収集、保存、通知などを行うZabbixの中核となるプロセスです。
- データベース:設定情報と収集データの保存場所です。
-
- 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 パッケージを使用して、以下の手順でインストールを行います。
- パッケージのインストール
- データベース作成
- 設定ファイルの編集
- Zabbix サーバ、エージェント、その他サービスの起動
- 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 サーバのインストール完了です。