Zabbix 6.4をソースからインストールする手順(RockyLinux9+Azure Database for PostgreSQL Flexible Server)
Zabbixサーバーをソースからインストールする手順です。
Zabbixのバージョンは、6.4を利用しています。
Rocky Linux 9を搭載した仮想マシン(Azure VM)と、Azure Database for PostgreSQL フレキシブル サーバーを利用しています。
-
- Zabbixソースをダウンロード
- 関連パッケージをインストール
- OSとデータベースのユーザーを作成
- PostgreSQLの設定
- Timescaledbの設定
- Zabbixをソースからインストール
- Zabbixの設定ファイルを作成
- Rocky LinuxのSELinux設定
- Zabbixの動作確認
パッケージを利用したインストール手順については、こちらで紹介しています。
この例では、Azure Database for MySQL フレキシブル サーバーを利用しています。
※本記事内では、Azure Virtual Machines(Azure VM)を仮想マシンとして表記しています。
- 1. Azureのリソースを準備
- 2. Zabbixサーバーをソースからインストール
- 2.1. 日本語ロケールをインストール
- 2.2. 公式サイトからZabbixのソースをダウンロード
- 2.3. PostgreSQLクライアントをインストール
- 2.4. httpd関連のパッケージをインストール
- 2.5. php関連のパッケージをインストール
- 2.6. 関連パッケージをインストール
- 2.7. OS上にZabbixグループとユーザーを作成
- 2.8. PostgreSQL上でZabbixユーザーとZabbixのデータベースを作成
- 2.9. 初期スキーマを作成して、SQLでデータをインポート
- 2.10. Azure Database for PostgreSQL フレキシブル サーバーでTimescaleDBを有効化
- 2.11. ZabbixのデータベースでTimescaleDBの設定
- 2.12. configureからmake install
- 2.13. Zabbix関連のディレクトリを作成
- 2.14. zabbix_server.confを設定
- 2.15. zabbix_agentd.confを設定
- 2.16. zabbix.confを作成(php-fpmの設定)
- 2.17. zabbix.confを作成(httpdの設定)
- 2.18. SELinuxの許可設定
- 2.19. zabbix-server.serviceファイルを作成
- 2.20. zabbix-agent.service設定
- 2.21. Zabbixの自動起動設定
- 2.22. 手順確認時にエラーになった事象
- 3. Zabbix Webインタフェースの初期設定
- 4. 最後に
Azureのリソースを準備
環境
仮想マシンとAzure Database for PostgreSQL フレキシブル サーバーを、同じ仮想ネットワーク内に作成して利用しています。
使用したパッケージやバージョンです。
-
- Web ServerはApacheを利用
- Zabbixはバージョン6.4を利用
- Rocky Linuxは9.3を利用
- PostgreSQLは15.4を利用
リソースの設定内容です。
各項目 | ||
仮想マシン (Azure VM) |
名前 | vm-zabbix-02 |
IPアドレス | 10.0.1.7 | |
OS | Rocky Linux 9(9.3) | |
Azure Database for PostgreSQL フレキシブル サーバー |
名前 | psql-zabbix-01 (psql-zabbix-01.postgres.database.azure.com) |
ネットワーク | VNET統合 (test-vnet-01/psql-snet-01) |
仮想マシンを準備
Zabbixサーバーとして使用する仮想マシンを準備します。
MarketplaceにあるRocky Linux 9のイメージを利用して作成しています。
Azure Database for PostgreSQL フレキシブル サーバーを準備
Azure Database for PostgreSQL フレキシブル サーバーのリソース作成手順については、こちらで紹介しています。
ネットワークについては、VNET統合を利用し、ローカルネットワークからのアクセスのみ許可しています。
Zabbixサーバーをソースからインストール
公式サイトのインストール手順を参考にして作業を進めます。
日本語ロケールをインストール
仮想マシンに日本語ロケールをインストールします。
英語のロケールもあわせてインストールします。
[root@vm-zabbix-02 ~]# dnf -y install glibc-langpack-en.x86_64 glibc-langpack-ja.x86_64 |
※dnf search locale jaコマンドを実行すると、日本語パッケージ名が表示されます。
※英語のロケールが存在しない場合、ZabbixのGUIでエラーが発生することがあったため、あわせてインストールしています。
公式サイトからZabbixのソースをダウンロード
公式サイトからZabbixのソースをダウンロードします。
Download ready-to use Zabbix distributives
ダウンロードしたアーカイブ済みのソースファイルを、任意のディレクトリ(/usr/local/src/)に解凍します。
[root@vm-zabbix-02 ~]#
curl -O https://cdn.zabbix.com/zabbix/sources/stable/6.4/zabbix-6.4.10.tar.gz |
PostgreSQLクライアントをインストール
PostgreSQLクライアント関連のパッケージをインストールします。
今回はマネージドデータベースを利用するため、クライアントのみをインストールします。
ZabbixサーバーからAzure Database for PostgreSQL フレキシブル サーバーに接続する際に使用します。
[root@vm-zabbix-02 ~]#
dnf -y install postgresql postgresql-devel |
httpd関連のパッケージをインストール
httpd関連のパッケージをインストールします。
[root@vm-zabbix-02 ~]# dnf -y install httpd |
php関連のパッケージをインストール
php関連のパッケージをインストールします。
[root@vm-zabbix-02 ~]# dnf -y install php-common php-pdo php-pgsql php-ldap php-bcmath php-mbstring php-xml php-gd php-fpm |
関連パッケージをインストール
関連パッケージをインストールします。
パッケージが不足している場合、configure実行時にエラーが発生します。
エラー内容に応じて、必要なパッケージを追加でインストールします。
[root@vm-zabbix-02 ~]#
dnf -y install gcc gcc-c++ |
OS上にZabbixグループとユーザーを作成
OS上にZabbixのグループとユーザーを作成します。
[root@vm-zabbix-02 ~]#
groupadd –system zabbix |
PostgreSQL上でZabbixユーザーとZabbixのデータベースを作成
PostgreSQL上にZabbixユーザーとZabbix用のデータベースを作成します。
ユーザー名とデータベース名は、デフォルト値であるzabbixとしています。
[root@vm-zabbix-02 ~]# psql -h psql-zabbix-01.postgres.database.azure.com -p 5432 -U 管理者ユーザー名 -d postgres postgres=> CREATE USER zabbix WITH PASSWORD 'PostgreSQL上に作成するzabbixユーザーのパスワード’; |
※公式サイトには記載がありませんが、権限不足でエラーになることがあったため、GRANTコマンドで権限を付与しています。
初期スキーマを作成して、SQLでデータをインポート
作成したZabbixのデータベースに、初期スキーマを作成します。
また、SQLを利用してデータをインポートします。
zabbixユーザーでPostgreSQLにログインし、SQLファイルを実行します。
[root@vm-zabbix-02 ~]#
psql -h psql-zabbix-01.postgres.database.azure.com -p 5432 -U zabbix -d zabbix zabbix=> CREATE SCHEMA AUTHORIZATION zabbix; zabbix=> \i /usr/local/src/zabbix-6.4.10/database/postgresql/schema.sql |
※公式サイトには記載がありませんでしたが、CREATE SCHEMAコマンドでzabbixデータベースにzabbixスキーマを作成しています。
Azure Database for PostgreSQL フレキシブル サーバーでTimescaleDBを有効化
ZabbixはTimescaleDBをサポートしています。
Azure Database for PostgreSQL フレキシブル サーバーはTimescaleDBをサポートしています。
必須ではありませんが、利用することもできます。
Azure Database for PostgreSQL フレキシブル サーバーのデフォルト値は、TimescaleDBが無効になっています。
Azure CLIコマンドやAzure Portalで有効化することができます。
コマンド実行後は、Azure Database for PostgreSQL フレキシブル サーバーが自動的に再起動します。
Azure CLIを使って有効化する場合の手順です。
PS C:> az postgres flexible-server parameter set –resource-group test-rg-01 –server-name psql-zabbix-01 –name shared_preload_libraries –value timescaledb |
Azure Portalから有効化する場合の手順です。
サーバーパラメーターでTimescaleDBを有効化 | |
左側のメニューでサーバーパラメーターを選択します。shared_preload_librariesと入力して検索します。 選択肢の中にTIMESCALEDBがあるので、チェックを入れて保存します。 |
![]() |
サーバーを再起動します。 | ![]() |
ZabbixのデータベースでTimescaleDBの設定
ZabbixのデータベースでTimescaleDBを有効にします。
[root@vm-zabbix-02 ~]# psql -h psql-zabbix-01.postgres.database.azure.com -p 5432 -U zabbix -d zabbix |
※公式サイトの記述ではtimescaledb.sqlとなっていますが、ソースからインストールする場合はファイル名が異なりました。解凍したソース内のファイルを確認したところ、schema.sqlが同じ内容であったため、今回はこちらを利用しています。
configureからmake install
Zabbixをソースからインストールしていきます。
英語版マニュアルには、exportコマンドの記載があります。
[root@vm-zabbix-02 ~]#
export CFLAGS="-std=gnu99″ ~メッセージが表示される~ [root@vm-zabbix-02 zabbix-6.4.10]# make install ~メッセージが表示される~ |
Zabbix関連のディレクトリを作成
パッケージインストールの設定ファイルを利用するために、関連するディレクトリを作成します。
権限付与やファイルをコピーします。
###ディレクトリ作成### [root@vm-zabbix-02 ~]# mkdir -m u=rwx,g=rx,o= -p /var/log/zabbix ###ファイルコピー### [root@vm-zabbix-02 ~]# cp -rfp /usr/local/sbin/zabbix_* /usr/sbin/ ###権限付与### [root@vm-zabbix-02 ~]#
chown -R root:root /usr/share/zabbix |
この手順は必須ではありません。パッケージからインストールした場合のディレクトリ構成に合せるための手順です。後続手順のパスは自身の環境のディレクトリ構成に合せて、読み替えてください。
zabbix_server.confを設定
zabbix_server.confを設定します。
書き換え前後の設定値を表にしています。
PostgreSQLを利用する場合には、DBSchemaの設定が必要になります。
書き換え前 | 書き換え後 |
LogFile=/tmp/zabbix_server.log | LogFile=/var/log/zabbix/zabbix_server.log |
# DBHost=localhost | DBHost=psql-zabbix-01.postgres.database.azure.com |
# DBPassword= | DBPassword=Zabbix(PostgreSQL)ユーザーのパスワード |
# DBSchema= | DBSchema=zabbix |
LogFile=/tmp/zabbix_server.log | LogFile=/var/log/zabbix/zabbix_server.log |
LogFileSize=1 | LogFileSize=0 |
PidFile=/tmp/zabbix_server.pid | PidFile=/var/run/zabbix/zabbix_server.pid |
SocketDir=/tmp | SocketDir=/run/zabbix |
(記述無し) | DBTLSConnect= required |
sedコマンドを利用して設定します。DBTLSConnectは、echoコマンドを利用して追記しています。
[root@vm-zabbix-02 ~]#sed -i -e “s/^LogFile=\/tmp\/zabbix_server.log/LogFile=\/var\/log\/zabbix\/zabbix_server.log/g" /etc/zabbix/zabbix_server.conf [root@vm-zabbix-02 ~]#sed -i -e “s/^LogFile=\/tmp\/zabbix_server.log/LogFile=\/var\/log\/zabbix\/zabbix_server.log/g" /etc/zabbix/zabbix_server.conf |
zabbix_agentd.confを設定
zabbix_agentd.confを設定します。
書き換え前後の設定値を表にしています。
書き換え前 | 書き換え後 |
PidFile=/tmp/zabbix_agentd.pid | PidFile=/var/run/zabbix/zabbix_agentd.pid |
# LogFileSize=1 | LogFileSize=0 |
LogFile=/tmp/zabbix_agentd.log | LogFile=/var/log/zabbix/zabbix_agentd.log |
sedコマンドを利用して設定します。
[root@vm-zabbix-02 ~]#sed -i -e “s/^# PidFile=\/tmp\/zabbix_agentd.pid/PidFile=\/var\/run\/zabbix\/zabbix_agentd.pid/g" /etc/zabbix/zabbix_agentd.conf |
zabbix.confを作成(php-fpmの設定)
/etc/php-fpm.d/zabbix.confファイルを作成します。
今回は、パッケージインストール時の設定内容を流用しています。
[root@vm-zabbix-02 ~]# vi /etc/php-fpm.d/zabbix.conf [zabbix] listen = /run/php-fpm/zabbix.sock pm = dynamic php_value[session.save_handler] = files php_value[max_execution_time] = 300 |
※memory_limitなどの設定値は、環境に合わせて適宜増やしてください。
zabbix.confを作成(httpdの設定)
/etc/httpd/conf.d/zabbix.confファイルを作成します。
今回は、パッケージインストール時の設定内容を流用しています。
[root@vm-zabbix-02 ~]# vi /etc/httpd/conf.d/zabbix.conf # Alias /zabbix /usr/share/zabbix ProxyTimeout 300 <Directory “/usr/share/zabbix"> <IfModule dir_module> <FilesMatch \.(php|phar)$> <Directory “/usr/share/zabbix/conf"> <Directory “/usr/share/zabbix/app"> <Directory “/usr/share/zabbix/include"> <Directory “/usr/share/zabbix/local"> <Directory “/usr/share/zabbix/vendor"> |
SELinuxの許可設定
SELinuxで、Zabbixで必要となる許可設定をします。
[root@vm-zabbix-02 ~]# setsebool -P httpd_can_connect_zabbix on |
Rocky Linux 9でのSELinux無効化手順についてはこちらで紹介しています。
SELinuxの無効化は推奨されません。
どうしても無効化する場合は、十分にご注意ください。
zabbix-server.serviceファイルを作成
zabbix-serverのサービスファイルを作成します。
今回は、パッケージインストール時の設定内容を流用しています。
[root@vm-zabbix-02 ~]# vi /usr/lib/systemd/system/zabbix-server.service [Unit] [Service] [Install] |
zabbix-agent.service設定
zabbix-agentのサービスファイルを作成します。
今回は、パッケージインストール時の設定内容を流用しています。
[root@vm-zabbix-02 ~]# vi /usr/lib/systemd/system/zabbix-agent.service [Unit] [Service] [Install] |
Zabbixの自動起動設定
Zabbix関連のサービスの起動設定です。
Zabbix関連のサービスを自動起動するように設定します。
[root@vm-zabbix-02 ~]# systemctl restart zabbix-agent zabbix-server php-fpm httpd |
手順確認時にエラーになった事象
公式サイトの手順を確認しながら実施しましたが、何度かつまずくことがありました。
色々とありましたが、主につまずいた部分をまとめると以下のようになります。
-
- ./configureのエラー
- 必要なパッケージ不足が原因
- パッケージ追加インストールで対応
- 必要なパッケージ不足が原因
- DB type “MYSQL" is not supported by current setup. Possible values POSTGRESQLのエラーメッセージ表示される
- 設定ミスが原因
-
- ディレクトリへの権限設定が足りてなかった
- zabbix_server.confでDBSchemaの設定が足りてなかった
- zabbix.conf.phpが初期化されていた
- SELinuxの設定が足りてなかった(setsebool -P zabbix_can_network on)
-
- 設定ミスが原因
- PostgreSQLのエラー
- ユーザーに権限付与が追加で必要だった
- ./configureのエラー
—広告—
Zabbix Webインタフェースの初期設定
公式サイトのインストール手順を参考にして作業を進めます。
Zabbixフロントエンドの初期設定
http://ZabbixサーバーのIPアドレス/zabbix へアクセスして、Webインターフェイスの設定を行います。
Database hostには、Azure Database for PostgreSQL フレキシブル サーバーのサーバー名を指定します。
-
- DBの設定情報
- データベースタイプ:PostgreSQL
- データベースホスト:psql-zabbix-01.postgres.database.azure.com
- データベース名:zabbix
- データベーススキーマ:zabbix
- ユーザー:zabbix
- パスワード:Zabbixユーザー(PostgreSQL)のパスワード
- データベース接続のTLS暗号化:チェックを入れる
- DBの設定情報
Zabbixサーバーへサインイン
初期ユーザーを利用して、Zabbixサーバーへサインインします。
-
- 初期ユーザー
- ユーザー名:Admin
- パスワード:zabbix
- 初期ユーザー
Zabbixサーバーへサインイン | |
初期ユーザーを利用して、Zabbixサーバーにサインインします。 | ![]() |
“Zabbixサーバーの起動"の値が"はい"になっていることを確認できます。 |
※Zabbixサーバーのインストールに失敗している場合は、"Zabbixサーバーの起動"の値が"いいえ"になります。
—広告—
最後に
今回は、Zabbix サーバーをソースからインストールする場合の手順を確認しました。
設定手順の中でさまざまなつまずきもありましたが、それらもあわせて確認しています。
引き続き、いろいろ試してみたいと思います。
パッケージを利用したインストール手順については、こちらで紹介しています。
こちらの例では、Azure Database for MySQL フレキシブル サーバーを利用しています。
ZabbixサーバーのHAクラスター構成手順については、こちらで紹介しています。
Zabbixプロキシのインストールからプロキシグループを利用したHA構成手順については、こちらで紹介しています。
ZabbixからSendGridを利用してメール送信するための設定手順については、こちらで紹介しています。
Zabbixを利用したAzureのリソース監視設定方法ついては、こちらで紹介しています。