このページでは、Windows 10 (64ビットまたは32ビット) でZabbix agent 2をソースからビルドする方法を説明します。
64ビットプラットフォームでは32ビット版と64ビット版の両方をビルドできますが、32ビットプラットフォームでは32ビット版のみビルドできます。
Zabbix agent 2のビルドには以下が必要です:
Zabbix agent 2は、次のいずれかの方法でビルドできます:
ビルドプロセスを開始する前に、次の点にご注意ください:
このセクションでは、依存関係の管理とC++プロジェクトとの統合を簡素化するパッケージマネージャであるvcpkgを使用してZabbix agentをビルドする手順を説明します。
1. Build Tools for Visual Studio 2022をダウンロードしてインストールします。 インストール時に、vcpkgパッケージマネージャを含むDesktop development with C++ワークロードを選択してください。
2. Go(MSIインストーラとして利用可能)をダウンロードしてインストールします。 インストール時に、インストールフォルダとしてC:\Zabbix\Goを指定してください。
3. Microsoft Visual Cランタイムライブラリを使用するMinGWディストリビューションをダウンロードします。例えば:
x86_64-15.1.0-release-win32-seh-msvcrt-rt_v12-rev0.7zi686-15.1.0-release-win32-dwarf-msvcrt-rt_v12-rev0.7zその後、C:\Zabbix\mingw64(32ビットビルドの場合はC:\Zabbix\mingw32)に展開します。
4. vcpkgを初期化し、Zabbix agent 2のビルドに必要な依存関係をインストールします(この処理には時間がかかる場合があります):
cd C:\Zabbix
set PATH=%PATH%;"C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\vcpkg"
vcpkg new --application
vcpkg add port pcre2
vcpkg add port libiconv
vcpkg add port openssl
# 64ビットビルドの場合:
set PATH=C:\Zabbix\mingw64\bin;%PATH%
vcpkg install --triplet x64-mingw-static --x-install-root=x64
# 32ビットビルドの場合:
set PATH=C:\Zabbix\mingw32\bin;%PATH%
vcpkg install --triplet x86-mingw-static --x-install-root=x865. Zabbixソースアーカイブをダウンロードし、C:\Zabbix\zabbix-8.0.0に展開します。
6. Zabbixビルドディレクトリ(C:\Zabbix\zabbix-8.0.0\build\mingw)に移動し、以下のbuild.batスクリプトを作成します。
:: 現在のセッションのシステム`PATH`変数にMinGWとGoを追加:
set PATH=C:\Zabbix\mingw64\bin;%PATH%
set PATH=C:\Zabbix\Go\bin;%PATH%
:: vcpkgインストールパスを設定:
set vcpkg="C:\Zabbix\x64\x64-mingw-static"
:: Crypt32ライブラリ用のリンカフラグを設定:
SET CGO_LDFLAGS="-lCrypt32"
:: ビルドプロセスを実行:
mingw32-make GOFLAGS="-buildvcs=false" ARCH=AMD64 ^
PCRE2="%vcpkg%" ^
OPENSSL="%vcpkg%" ^
all:: 現在のセッションのシステム`PATH`変数にMinGWとGoを追加:
set PATH=C:\Zabbix\mingw32\bin;%PATH%
set PATH=C:\Zabbix\Go\bin;%PATH%
:: vcpkgインストールパスを設定:
set vcpkg="C:\Zabbix\x86\x86-mingw-static"
:: Crypt32ライブラリ用のリンカフラグを設定:
SET CGO_LDFLAGS="-lCrypt32"
:: ビルドプロセスを実行:
mingw32-make GOFLAGS="-buildvcs=false" ARCH=x86 ^
PCRE2="%vcpkg%" ^
OPENSSL="%vcpkg%" ^
all7. スクリプトを実行してZabbix agent 2をコンパイルします:
コンパイル後、Zabbix agent 2のバイナリはC:\Zabbix\zabbix-8.0.0\bin\win64(64ビットビルドの場合)またはC:\Zabbix\zabbix-8.0.0\bin\win32(32ビットビルドの場合)に配置されます。 Zabbix agent 2の設定ファイルはC:\Zabbix\zabbix-8.0.0\src\go\confにあります。
エージェントを実行するには、zabbix_agent2.exeとその設定ファイルを専用フォルダ(例: C:\Zabbix\agent2)にコピーし、エージェントを実行します:
mkdir C:\Zabbix\agent2
# 64ビットビルドの場合:
copy C:\Zabbix\zabbix-8.0.0\bin\win64\zabbix_agent2.exe C:\Zabbix\agent2\
# 32ビットビルドの場合:
copy C:\Zabbix\zabbix-8.0.0\bin\win32\zabbix_agent2.exe C:\Zabbix\agent2\
copy C:\Zabbix\zabbix-8.0.0\src\go\conf\zabbix_agent2.win.conf C:\Zabbix\agent2\
xcopy /E /I C:\Zabbix\zabbix-8.0.0\src\go\conf\zabbix_agent2.d C:\Zabbix\agent2\zabbix_agent2.d\
C:\Zabbix\agent2\zabbix_agent2.exe -c C:\Zabbix\agent2\zabbix_agent2.win.conf必要に応じて、Zabbix agent 2のロード可能プラグインのコンパイルを続行してください。
1. Zabbix agent 2 のバージョンに一致するZabbixプラグインソース(例:zabbix-agent2-plugin-postgresql-8.0.0.tar.gz)をダウンロードし、C:\Zabbixに展開します。
プラグインをインストールする前に、READMEファイルを確認してください。 特定の要件やインストール手順が記載されている場合があります。
2. 展開したプラグインディレクトリに移動し、プラグインをコンパイルします:
cd C:\Zabbix\zabbix-agent2-plugin-ember-plus-8.0.0
# 64ビットビルドの場合:
mingw32-make ARCH=AMD64
# 32ビットビルドの場合:
mingw32-make ARCH=x86コンパイル後、Zabbix agent 2 プラグインのバイナリとその設定ファイルは同じプラグインディレクトリに配置されます。
プラグインの実行ファイルは、Zabbix agent 2 からロード可能であれば、どこに配置してもかまいません。 プラグインの設定ファイル(例:PostgreSQLプラグインの場合はpostgresql.conf)で、プラグインバイナリへのパスを指定します:
プラグイン設定ファイルへのパスは、Zabbix agent 2 の設定ファイルのIncludeパラメータで指定する必要があります:
プラグインの設定の詳細については、セットアップに進んでください。
この方法は、ビルド環境を完全に制御する必要がある場合や、vcpkg の使用ができない制限された環境での利用に適しています。
このセクションでは、必要なビルドツールや依存関係のインストール、エージェントのコンパイルを含む、Zabbix agent 2 を手動でビルドする手順を説明します。
1. MSYS2(MSIインストーラーとして利用可能)をダウンロードしてインストールします。 インストール時に、インストールフォルダとして C:\Zabbix\msys64 を指定してください。
2. Go(MSIインストーラーとして利用可能。現在サポートされているGoバージョンを参照)をダウンロードしてインストールします。 インストール時に、インストールフォルダとして C:\Zabbix\Go を指定してください。
3. Microsoft Visual Cランタイムライブラリを使用するMinGWディストリビューションをダウンロードします。例えば:
x86_64-15.1.0-release-win32-seh-msvcrt-rt_v12-rev0.7zi686-15.1.0-release-win32-dwarf-msvcrt-rt_v12-rev0.7zその後、C:\Zabbix\mingw64(32ビットビルドの場合は C:\Zabbix\mingw32)に展開します。
TLSサポートなしでZabbixエージェントをコンパイルする場合は、PCRE2のインストールセクションに進んでください。
1. 管理者権限でMSYS2 MSYSターミナルを開き、以下のコマンドを実行します。
2. OpenSSLのソースアーカイブをダウンロードし、C:\Zabbix\openssl-3.5.0に展開します。
3. 展開したOpenSSLディレクトリに移動し、以下のbuild.shスクリプトを作成します。
#!/usr/bin/env bash
export PATH="/c/Zabbix/mingw64/bin:$PATH"
export d="/c/Zabbix/x64/OpenSSL-Win64-350-static"
perl Configure mingw64 no-shared no-capieng no-winstore no-srp no-gost no-dgram no-dtls1-method no-dtls1_2-method thread_scheme=winthreads --api=1.1.0 --prefix=$d --openssldir=$d
make
make install#!/usr/bin/env bash
export PATH="/c/Zabbix/mingw32/bin:$PATH"
export d="/c/Zabbix/x86/OpenSSL-Win64-350-static"
perl Configure mingw no-shared no-capieng no-winstore no-srp no-gost no-dgram no-dtls1-method no-dtls1_2-method thread_scheme=winthreads --api=1.1.0 --prefix=$d --openssldir=$d
make
make installC:\Zabbix\x64\OpenSSL-Win64-350-staticディレクトリへの書き込み権限を管理者以外のユーザーから必ず取り消してください。 そうしないと、エージェントが特権のないユーザーによって変更可能なパスからSSL設定を読み込むことになり、潜在的なセキュリティ脆弱性につながります。
no-sharedオプションは、libcrypto.libおよびlibssl.libのOpenSSL静的ライブラリを自己完結型にし、Zabbixバイナリが外部DLLを必要とせずにOpenSSLを含むようにします。 つまり、ZabbixバイナリをOpenSSLライブラリなしで他のWindowsマシンにコピーできますが、新しいOpenSSLのバグ修正版がリリースされた場合は、Zabbixエージェントを再コンパイルする必要があります。no-sharedオプションなしでは、Zabbixは実行時にOpenSSL DLLに依存します。 つまり、OpenSSLの更新時にZabbixエージェントの再コンパイルが不要な場合がありますが、他のマシンにコピーする際はOpenSSL DLLもコピーする必要があります。その他のOpenSSL構成オプションについては、OpenSSLドキュメントを参照してください。
4. スクリプトを実行してOpenSSLを構成・インストールします(この処理には時間がかかる場合があります)。
1. PCRE2のソースアーカイブをダウンロードし、C:\Zabbix\pcre2-10.45に展開します。
2. 管理者権限でMSYS2 MSYSターミナルを開きます。 次に、展開したPCRE2ディレクトリ内にbuildディレクトリを作成し、そこに移動します:
3. PCRE2を構成します:
# 64ビットビルドの場合:
export PATH="/c/Zabbix/mingw64/bin:$PATH"
cmake -DCMAKE_C_COMPILER=gcc -DCMAKE_C_FLAGS="-O2 -g" -DCMAKE_INSTALL_PREFIX="/c/Zabbix/x64/PCRE2" ..
# 32ビットビルドの場合:
export PATH="/c/Zabbix/mingw32/bin:$PATH"
cmake -DCMAKE_C_COMPILER=gcc -DCMAKE_C_FLAGS="-m32 -O2 -g" -DCMAKE_EXE_LINKER_FLAGS="-Wl,-mi386pe" -DCMAKE_INSTALL_PREFIX="/c/Zabbix/x86/PCRE2" ..エラーが発生した場合は、CMakeのビルドプロセスを繰り返す前にCMakeキャッシュを削除することを推奨します。 キャッシュ(CMakeCachecache.txt)は、展開したPCRE2ディレクトリのbuildディレクトリ内にあります。
4. PCRE2をインストールします:
1. Zabbix ソースアーカイブをダウンロードし、C:\Zabbix\zabbix-8.0.0に展開します。
生のソースリポジトリからソースアーカイブを生成する必要がある場合(例:カスタムパッチを適用する場合や最新のソースコードからビルドする場合)、GoがインストールされたLinuxマシンで以下のコマンドを実行します(Zabbix agent 2 の設定に必要です):
git clone https://git.zabbix.com/scm/zbx/zabbix.git
cd zabbix
./bootstrap.sh
./configure --enable-agent2 --enable-ipv6 --prefix=`pwd`
make distこれによりソースアーカイブが作成され、Windowsマシンにコピーできます。
2. 管理者権限でコマンドプロンプトを開きます。 次に、Zabbixのビルドディレクトリに移動し、Zabbix agentをコンパイルします。 OpenSSLおよびPCRE2がインストールされているディレクトリを正しく指定してください:
cd C:\Zabbix\zabbix-8.0.0\build\mingw
set PATH=C:\Zabbix\mingw64\bin;%PATH%
mklink /D C:\Zabbix\x64\OpenSSL-Win64-350-static\lib C:\Zabbix\x64\OpenSSL-Win64-350-static\lib64
# TLSサポートあり:
mingw32-make ARCH=AMD64 PCRE2="C:\Zabbix\x64\PCRE2" OPENSSL="C:\Zabbix\x64\OpenSSL-Win64-350-static"
# TLSサポートなし:
mingw32-make ARCH=AMD64 PCRE2="C:\Zabbix\x64\PCRE2"cd C:\Zabbix\zabbix-8.0.0\build\mingw
set PATH=C:\Zabbix\mingw32\bin;%PATH%
# TLSサポートあり:
mingw32-make ARCH=x86 PCRE2="C:\Zabbix\x86\PCRE2" OPENSSL="C:\Zabbix\x86\OpenSSL-Win64-350-static"
# TLSサポートなし:
mingw32-make ARCH=x86 PCRE2="C:\Zabbix\x86\PCRE2"コンパイル後、Zabbix agent 2 のバイナリはC:\Zabbix\zabbix-8.0.0\bin\win64(32ビットビルドの場合はC:\Zabbix\zabbix-8.0.0\bin\win32)に配置されます。 Zabbix agent 2 の設定ファイルはC:\Zabbix\zabbix-8.0.0\src\go\confにあります。
エージェントを実行するには、zabbix_agent2.exeバイナリとその設定ファイルを専用のフォルダ(例:C:\Zabbix\agent2)にコピーし、エージェントを実行します:
mkdir C:\Zabbix\agent2
copy C:\Zabbix\zabbix-8.0.0\bin\win64\zabbix_agent2.exe C:\Zabbix\agent2\
copy C:\Zabbix\zabbix-8.0.0\src\go\conf\zabbix_agent2.win.conf C:\Zabbix\agent2\
xcopy /E /I C:\Zabbix\zabbix-8.0.0\src\go\conf\zabbix_agent2.d C:\Zabbix\agent2\zabbix_agent2.d\
C:\Zabbix\agent2\zabbix_agent2.exe -c C:\Zabbix\agent2\zabbix_agent2.win.conf必要に応じて、Zabbix agent 2 ロード可能プラグインのコンパイルを続行してください。