本記事では 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 パッケージを使用して、以下の手順でインストールを行います。
- パッケージのインストール
- データベース作成
- 設定ファイルの編集
- 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-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 サーバのインストール完了です。