これは開発版のドキュメントを表示しています。内容が不完全な場合があります。
このページには自動翻訳されたコンテンツが含まれています。 誤りを見つけた場合は、その箇所を選択して Ctrl+Enter を押し、編集者に報告してください。

WindowsでのZabbixエージェントのビルド

概要

このページでは、Windows 10 (64ビット) でZabbixエージェントをソースからビルドする方法を説明します。

これらの手順は、Visual Studio 2022をサポートするWindowsバージョンに適用されます。

Zabbixエージェントのビルドには以下が必要です:

  • Cコンパイラ (Build Tools for Visual Studio 2022に含まれています)
  • OpenSSL (Zabbixの暗号化機能用)
  • PCRE2 (Perl Compatible Regular Expressions; Zabbixの正規表現パターンマッチング機能用)

Zabbixエージェントは、以下のいずれかの方法でビルドできます:

  • vcpkgを使用—C++パッケージマネージャーを使用して依存関係の管理を簡素化する自動化アプローチ。
  • 手動ビルド—すべての依存関係をインストールしてからエージェントをコンパイルする手動アプローチ。

監視のニーズによっては、追加のライブラリが必要になる場合があります。詳細は要件をご覧ください。

ビルドプロセスを開始する前に、以下にご注意ください:

  • コマンドの実行には、Build Tools for Visual Studio 2022に含まれるx64 Native Tools Command Promptを使用し、保護されたフォルダーへの書き込み権限を持つユーザーで起動してください。
  • すべてのソースファイルとビルドフォルダー用にC:\Zabbixに作業ディレクトリを作成することを推奨します。ただし、コンパイルされたコンポーネントはC:\Program Files\Zabbix\x64にインストールしてください。

vcpkgを使用したZabbixエージェントのビルド

このセクションでは、依存関係の管理とC++プロジェクトとの統合を簡素化するパッケージマネージャであるvcpkgを使用してZabbixエージェントをビルドする手順を説明します。

1. Build Tools for Visual Studio 2022をダウンロードしてインストールします。 インストール時に、vcpkgでエージェントをビルドするために必要なツールが含まれるDesktop development with C++ワークロードを必ず選択してください。

  • Cコンパイラ(Microsoft Visual C++)
  • NMakeコマンドラインツール
  • vcpkgパッケージマネージャ
  • x64 Native Tools Command Prompt

2. vcpkgを初期化し、Zabbixエージェントのビルドに必要な依存関係をインストールします(この処理には時間がかかる場合があります)。

cd C:\Zabbix
       vcpkg new --application
       vcpkg add port pcre2
       vcpkg add port openssl
       vcpkg install --triplet x64-windows-static --x-install-root="C:\Program Files\Zabbix\x64"

3. Zabbixソースアーカイブをダウンロードし、C:\Zabbix\zabbix-8.0.0に展開します。

4. Zabbixのビルドディレクトリ(C:\Zabbix\zabbix-8.0.0\build\win32\project)に移動し、以下のbuild.batスクリプトを作成します。 OpenSSLとPCRE2がインストールされているディレクトリを正しく指定してください。

:: vcpkgのインストールパスを設定:
       set vcpkg=C:\Program Files\Zabbix\x64\x64-windows-static
       
       :: ビルドプロセスを実行:
       nmake -f Makefile CPU=AMD64 ^
           PCRE2INCDIR="%vcpkg%\include" ^
           PCRE2LIBDIR="%vcpkg%\lib" ^
           TLS=openssl ^
           TLSINCDIR="%vcpkg%\include" ^
           TLSLIBDIR="%vcpkg%\lib" ^
           LIBS="$(LIBS) Crypt32.lib" ^
           all

5. スクリプトを実行してZabbixエージェントをコンパイルします。

build.bat

コンパイル後、ZabbixコンポーネントのバイナリはC:\Zabbix\zabbix-8.0.0\bin\win64に配置されます。 Zabbixエージェントの設定ファイルはC:\Zabbix\zabbix-8.0.0\confにあります。

エージェントを実行するには、zabbix_agent.exeとその設定ファイルを専用のフォルダ(例:C:\Zabbix\agent)にコピーし、エージェントを実行します。

mkdir C:\Zabbix\agent
       copy C:\Zabbix\zabbix-8.0.0\bin\win64\zabbix_agent.exe C:\Zabbix\agent\
       copy C:\Zabbix\zabbix-8.0.0\conf\zabbix_agent.win.conf C:\Zabbix\agent\
       
       C:\Zabbix\agent\zabbix_agent.exe -c C:\Zabbix\agent\zabbix_agent.win.conf

Zabbixエージェントの手動ビルド

この方法は、ビルド環境を完全に制御したいユーザーや、vcpkgの使用ができない制限された環境での利用に適しています。

このセクションでは、必要なビルドツールと依存関係(Perl、OpenSSL、PCRE2)のインストール、およびエージェントのコンパイルを含む、Zabbixエージェントを手動でビルドする手順について説明します。

ビルドツールのインストール

1. Visual Studio 2022 のビルドツールをダウンロードしてインストールします。 インストール時に、C++によるデスクトップ開発ワークロードを選択してください。これにはエージェントを手動でビルドするために必要なツールが含まれています:

  • Cコンパイラ(Microsoft Visual C++)
  • NMakeコマンドラインツール
  • x64 Native Tools コマンドプロンプト
OpenSSLのインストール

TLSサポートなしでZabbixエージェントをコンパイルする場合は、PCRE2のインストールセクションに進んでください。

1. Strawberry Perl(MSIインストーラーとして提供)をダウンロードしてインストールします。 インストール時に、インストールフォルダーとして C:\Zabbix\Strawberry を必ず指定してください。

2. Text::Template Perlモジュールをインストールします:

cpanm Text::Template

3. Netwide Assembler(NASM; OpenSSLのコンパイルに必要)がStrawberry Perlのインストール時にコンパイルされたことを確認します:

nasm -v
       # NASM version 2.16.01 compiled on May  3 2024

NASMがコンパイルされていない場合は、手動でインストールしてください。詳細はNASMドキュメントを参照してください。

4. OpenSSLソースアーカイブをダウンロードし、C:\Zabbix\openssl-3.5.0に展開します。

5. 展開したディレクトリに移動し、OpenSSLを設定します。例:

cd C:\Zabbix\openssl-3.5.0
       perl Configure VC-WIN64A no-shared no-capieng no-winstore no-srp no-gost no-dgram no-dtls1-method no-dtls1_2-method --api=1.1.0 --prefix="C:\Program Files\Zabbix\x64\OpenSSL" --openssldir="C:\Program Files\Zabbix\x64\OpenSSL"

WindowsでZabbixエージェントをコンパイルする際にOpenSSLのカスタムディレクトリ(例:C:\zabbixC:\openssl-64bit)を選択した場合は、このディレクトリへの書き込み権限を管理者以外のユーザーから必ず取り消してください。 そうしないと、エージェントが特権のないユーザーによって変更可能なパスから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ドキュメントを参照してください。

6. OpenSSLをコンパイルし、テストを実行します(これには時間がかかる場合があります):

テストは管理者権限なしで実行してください。そうしないと、予期しない結果やセキュリティリスクにつながる可能性があります。 一部のテストが失敗した場合は、OpenSSLドキュメントを参照してトラブルシューティングを行ってください。

nmake
       nmake test
       ...
       All tests successful.
       Files=325, Tests=3101, 822 wallclock secs ( 4.81 usr +  0.81 sys =  5.62 CPU)
       Result: PASS

7. OpenSSLをインストールします:

nmake install

ソフトウェアコンポーネント(ライブラリ、ヘッダーファイル、ドキュメントなし)のみをインストールする場合は、nmake install_swを使用できます。

PCRE2のインストール

1. CMake(MSIインストーラーとして利用可能)をダウンロードしてインストールします。
インストール時に、インストールフォルダーとして C:\Zabbix\CMake を指定し、Add CMake to the PATH environment variable オプションを選択してください。

2. PCRE2のソースアーカイブをダウンロードし、C:\Zabbix\pcre2-10.45 に展開します。

3. 展開したPCRE2ディレクトリに build ディレクトリを作成し、そこに移動します。

mkdir C:\Zabbix\pcre2-10.45\build
       cd C:\Zabbix\pcre2-10.45\build

4. PCRE2を構成します。

cmake -G "NMake Makefiles" -DPCRE_SUPPORT_UNICODE_PROPERTIES=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="C:\Program Files\Zabbix\x64\PCRE2" "C:\Zabbix\pcre2-10.45"

エラーが発生した場合は、CMakeのビルドプロセスを再試行する前にCMakeキャッシュを削除することを推奨します。
キャッシュ(CMakeCachecache.txt)は、展開したPCRE2ディレクトリのbuildディレクトリにあります。

5. NMakeを使用してPCRE2をビルドします。

nmake

6. PCRE2をインストールします。

cmake --install .
Zabbixエージェントのコンパイル

1. Zabbixソースアーカイブをダウンロードし、C:\Zabbix\zabbix-8.0.0に展開します。

生のソースリポジトリからソースアーカイブを生成する必要がある場合(例:カスタムパッチを適用する場合や最新のソースコードからビルドする場合)、Linuxマシンで以下のコマンドを実行します。

git clone https://git.zabbix.com/scm/zbx/zabbix.git
       cd zabbix
       ./bootstrap.sh
       ./configure --enable-agent --enable-ipv6 --prefix=`pwd`
       make dist

これによりソースアーカイブが作成され、Windowsマシンにコピーできます。

2. Zabbixのビルドディレクトリに移動し、Zabbixエージェント(または他のコンポーネント)をコンパイルします。 OpenSSLおよびPCRE2がインストールされているディレクトリを正しく指定してください。

cd C:\Zabbix\zabbix-8.0.0\build\win32\project
       
       # TLSサポートあり:
       nmake /K -f Makefile_agent PCRE2INCDIR="C:\Program Files\Zabbix\x64\PCRE2\include" PCRE2LIBDIR="C:\Program Files\Zabbix\x64\PCRE2\lib" TLS=openssl TLSINCDIR="C:\Program Files\Zabbix\x64\OpenSSL\include" TLSLIBDIR="C:\Program Files\Zabbix\x64\OpenSSL\lib"
       nmake /K -f Makefile_get PCRE2INCDIR="C:\Program Files\Zabbix\x64\PCRE2\include" PCRE2LIBDIR="C:\Program Files\Zabbix\x64\PCRE2\lib" TLS=openssl TLSINCDIR="C:\Program Files\Zabbix\x64\OpenSSL\include" TLSLIBDIR="C:\Program Files\Zabbix\x64\OpenSSL\lib"
       nmake /K -f Makefile_sender PCRE2INCDIR="C:\Program Files\Zabbix\x64\PCRE2\include" PCRE2LIBDIR="C:\Program Files\Zabbix\x64\PCRE2\lib" TLS=openssl TLSINCDIR="C:\Program Files\Zabbix\x64\OpenSSL\include" TLSLIBDIR="C:\Program Files\Zabbix\x64\OpenSSL\lib"
       
       # TLSサポートなし:
       nmake /K -f Makefile_agent PCRE2INCDIR="C:\Program Files\Zabbix\x64\PCRE2\include" PCRE2LIBDIR="C:\Program Files\Zabbix\x64\PCRE2\lib"
       nmake /K -f Makefile_get PCRE2INCDIR="C:\Program Files\Zabbix\x64\PCRE2\include" PCRE2LIBDIR="C:\Program Files\Zabbix\x64\PCRE2\lib"
       nmake /K -f Makefile_sender PCRE2INCDIR="C:\Program Files\Zabbix\x64\PCRE2\include" PCRE2LIBDIR="C:\Program Files\Zabbix\x64\PCRE2\lib"

コンパイル後、ZabbixコンポーネントのバイナリはC:\Zabbix\zabbix-8.0.0\bin\win64に配置されます。 Zabbixエージェントの設定ファイルはC:\Zabbix\zabbix-8.0.0\confにあります。

エージェントを実行するには、zabbix_agent.exeとその設定ファイルを専用のフォルダ(例:C:\Zabbix\agent)にコピーし、エージェントを実行します。

mkdir C:\Zabbix\agent
       copy C:\Zabbix\zabbix-8.0.0\bin\win64\zabbix_agentd.exe C:\Zabbix\agent\
       copy C:\Zabbix\zabbix-8.0.0\conf\zabbix_agentd.win.conf C:\Zabbix\agent\
       
       C:\Zabbix\agent\zabbix_agentd.exe -c C:\Zabbix\agent\zabbix_agentd.win.conf -f