Windows 에이전트 2 빌드

Zabbix v7.4번역일: 2026-09-09원본 보기

개요

이 페이지에서는 Windows 10(64비트 또는 32비트)에서 소스로 Zabbix 에이전트 2를 빌드하는 방법을 설명합니다.

64비트 플랫폼에서는 32비트와 64비트 버전을 모두 빌드할 수 있지만, 32비트 플랫폼에서는 32비트 버전만 빌드할 수 있습니다.

Zabbix 에이전트 2를 빌드하려면 다음이 필요합니다:

  • MinGW 빌드 도구
  • Go 프로그래밍 언어
  • OpenSSL(Zabbix의 암호화 기능용)
  • PCRE2(Perl 호환 정규식; Zabbix의 정규식 패턴 일치 기능용)

다음 방법 중 하나로 Zabbix 에이전트 2를 빌드할 수 있습니다:

  • vcpkg 사용—C++ 패키지 관리자로 의존성 관리를 간소화하는 자동화된 방식입니다.
  • 수동 빌드—에이전트를 컴파일하기 전에 모든 의존성을 직접 설치해야 하는 방식입니다.

빌드 과정을 시작하기 전에 다음 사항을 유의하세요:

  • 명령을 실행할 때는 보호된 폴더에 쓸 수 있는 충분한 권한을 가진 사용자가 실행한 명령 프롬프트를 사용하세요. 단, OpenSSL과 PCRE2를 설치할 때는 MSYS2 터미널을 사용하세요.
  • 모든 소스 파일과 빌드 폴더를 위한 작업 디렉터리를 C:\Zabbix에 만드는 것이 좋습니다. 단, 컴파일된 구성 요소는 C:\Zabbix\x64(32비트 빌드는 C:\Zabbix\x86)에 설치해야 합니다.

vcpkg로 Zabbix 에이전트 2 빌드

이 절에서는 vcpkg를 사용하여 Zabbix 에이전트를 빌드하는 방법을 설명합니다. vcpkg는 의존성 관리와 C++ 프로젝트 통합을 간소화하는 패키지 관리자입니다.

1. Build Tools for Visual Studio 2022를 다운로드하여 설치하세요. 설치 중에는 vcpkg 패키지 관리자가 포함된 C++를 사용한 데스크톱 개발 워크로드를 반드시 선택하세요.

2. Go를 다운로드하여 설치하세요(MSI 설치 프로그램 제공). 설치 중에는 설치 폴더를 반드시 C:\Zabbix\Go로 지정하세요.

3. Microsoft Visual C 런타임 라이브러리를 사용하는 MinGW 배포판을 다운로드하세요. 예를 들면 다음과 같습니다:

  • 64비트 빌드: x86_64-15.1.0-release-win32-seh-msvcrt-rt_v12-rev0.7z
  • 32비트 빌드: i686-15.1.0-release-win32-dwarf-msvcrt-rt_v12-rev0.7z

MinGW 버전은 최소 요구 사항을 충족해야 합니다.

그런 다음 C:\Zabbix\mingw64(32비트 빌드는 C:\Zabbix\mingw32)에 압축을 푸세요.

4. vcpkg를 초기화하고 Zabbix 에이전트 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

# For 64-bit builds:
set PATH=C:\Zabbix\mingw64\bin;%PATH%
vcpkg install --triplet x64-mingw-static --x-install-root=x64

# For 32-bit builds:
set PATH=C:\Zabbix\mingw32\bin;%PATH%
vcpkg install --triplet x86-mingw-static --x-install-root=x86

5. Zabbix 소스 압축 파일을 다운로드하여 C:\Zabbix\zabbix-7.4.0에 압축을 푸세요.

6. Zabbix 빌드 디렉터리(C:\Zabbix\zabbix-7.4.0\build\mingw)로 이동하여 다음 build.bat 스크립트를 만드세요:

  • 64비트 빌드:
:: Add MinGW and Go to the system `PATH` variable for the current session:
set PATH=C:\Zabbix\mingw64\bin;%PATH%
set PATH=C:\Zabbix\Go\bin;%PATH%

:: Set vcpkg installation path:
set vcpkg="C:\Zabbix\x64\x64-mingw-static"

:: Set linker flags for Crypt32 library:
SET CGO_LDFLAGS="-lCrypt32"

:: Run the build process:
mingw32-make GOFLAGS="-buildvcs=false" ARCH=AMD64 ^
    PCRE2="%vcpkg%" ^
    OPENSSL="%vcpkg%" ^
    all
  • 32비트 빌드:
:: Add MinGW and Go to the system `PATH` variable for the current session:
set PATH=C:\Zabbix\mingw32\bin;%PATH%
set PATH=C:\Zabbix\Go\bin;%PATH%

:: Set vcpkg installation path:
set vcpkg="C:\Zabbix\x86\x86-mingw-static"

:: Set linker flags for Crypt32 library:
SET CGO_LDFLAGS="-lCrypt32"

:: Run the build process:
mingw32-make GOFLAGS="-buildvcs=false" ARCH=x86 ^
    PCRE2="%vcpkg%" ^
    OPENSSL="%vcpkg%" ^
    all

7. 스크립트를 실행하여 Zabbix 에이전트 2를 컴파일하세요:

build.bat

컴파일 후 Zabbix 에이전트 2 바이너리는 C:\Zabbix\zabbix-7.4.0\bin\win64(64비트 빌드) 또는 C:\Zabbix\zabbix-7.4.0\bin\win32(32비트 빌드)에 생성됩니다. Zabbix 에이전트 2 설정 파일은 C:\Zabbix\zabbix-7.4.0\src\go\conf에 있습니다.

에이전트를 실행하려면 zabbix_agent2.exe와 해당 설정 파일을 전용 폴더(예: C:\Zabbix\agent2)에 복사한 다음 에이전트를 실행하세요:

mkdir C:\Zabbix\agent2

# For 64-bit builds:
copy C:\Zabbix\zabbix-7.4.0\bin\win64\zabbix_agent2.exe C:\Zabbix\agent2\

# For 32-bit builds:
copy C:\Zabbix\zabbix-7.4.0\bin\win32\zabbix_agent2.exe C:\Zabbix\agent2\

copy C:\Zabbix\zabbix-7.4.0\src\go\conf\zabbix_agent2.win.conf C:\Zabbix\agent2\
xcopy /E /I C:\Zabbix\zabbix-7.4.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 에이전트 2의 로드 가능한 플러그인 컴파일을 진행하세요.

Zabbix 에이전트 2의 로드 가능한 플러그인 컴파일

1. 사용 중인 Zabbix 에이전트 2 버전과 일치하는 Zabbix 플러그인 소스(예: zabbix-agent2-plugin-postgresql-7.4.0.tar.gz)를 다운로드하여 C:\Zabbix에 압축을 푸세요.

플러그인을 설치하기 전에 README 파일을 확인하세요. 특정 요구 사항과 설치 지침이 포함되어 있을 수 있습니다.

2. 압축을 푼 플러그인 디렉터리로 이동하여 플러그인을 컴파일하세요:

cd C:\Zabbix\zabbix-agent2-plugin-ember-plus-7.4.0

# For 64-bit builds:
mingw32-make ARCH=AMD64

# For 32-bit builds:
mingw32-make ARCH=x86

컴파일 후 Zabbix 에이전트 2 플러그인 바이너리와 해당 설정 파일은 같은 플러그인 디렉터리에 생성됩니다.

플러그인 실행 파일은 Zabbix 에이전트 2에서 로드할 수 있다면 어디에나 둘 수 있습니다. 플러그인 설정 파일에 플러그인 바이너리의 경로를 지정하세요. 예를 들어 postgresql.conf에 다음과 같이 지정하면 됩니다. 해당 파일을 사용하는 플러그인은 PostgreSQL입니다:

Plugins.PostgreSQL.System.Path=/path/to/executable/zabbix-agent2-plugin-postgresql

플러그인 설정 파일의 경로는 Zabbix 에이전트 2 설정 파일의 Include 매개변수에 지정해야 합니다:

Include=/path/to/plugin/configuration/file/postgresql.conf

플러그인 설정에 대한 자세한 내용은 설정을 참조하세요.

Zabbix 에이전트 2 수동 빌드

이 Zabbix 에이전트 2 빌드 방식은 빌드 환경을 완전히 제어해야 하거나 제한된 환경에서 vcpkg 사용이 불가능한 사용자에게 적합합니다.

이 절에서는 필요한 빌드 도구와 의존성을 설치한 다음 에이전트를 컴파일하여 Zabbix 에이전트 2를 수동으로 빌드하는 방법을 설명합니다.

빌드 도구 설정

1. MSYS2를 다운로드하여 설치하세요(MSI 설치 프로그램 제공). 설치 중에는 설치 폴더를 반드시 C:\Zabbix\msys64로 지정하세요.

2. Go를 다운로드하여 설치하세요(MSI 설치 프로그램 제공; 현재 지원되는 Go 버전 참조). 설치 중에는 설치 폴더를 반드시 C:\Zabbix\Go로 지정하세요.

3. Microsoft Visual C 런타임 라이브러리를 사용하는 MinGW 배포판을 다운로드하세요. 예를 들면 다음과 같습니다:

  • 64비트 빌드: x86_64-15.1.0-release-win32-seh-msvcrt-rt_v12-rev0.7z
  • 32비트 빌드: i686-15.1.0-release-win32-dwarf-msvcrt-rt_v12-rev0.7z

MinGW 버전은 최소 요구 사항을 충족해야 합니다.

그런 다음 C:\Zabbix\mingw64(32비트 빌드는 C:\Zabbix\mingw32)에 압축을 푸세요.

OpenSSL 설치

TLS 지원 없이 Zabbix 에이전트를 컴파일하려면 PCRE2 설치 절로 이동하세요.

1. 관리자 권한으로 MSYS2 MSYS 터미널을 열고 다음 명령을 실행하세요:

pacman -S perl-Locale-Maketext-Simple
pacman -S nasm
pacman -S make
pacman -S cmake

2. OpenSSL 소스 압축 파일을 다운로드하여 C:\Zabbix\openssl-3.5.0에 압축을 푸세요.

3. 압축을 푼 OpenSSL 디렉터리로 이동하여 다음 build.sh 스크립트를 만드세요:

  • 64비트 빌드:
#!/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
  • 32비트 빌드:
#!/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 install

관리자가 아닌 사용자의 C:\Zabbix\x64\OpenSSL-Win64-350-static 디렉터리 쓰기 권한을 반드시 제거하세요. 그렇지 않으면 에이전트가 일반 사용자가 수정할 수 있는 경로에서 SSL 설정을 로드하므로 보안 취약점이 발생할 수 있습니다.

  • no-shared 옵션은 OpenSSL 정적 라이브러리인 libcrypto.lib와 libssl.lib가 자체적으로 동작하도록 하여 Zabbix 바이너리가 외부 DLL 없이 OpenSSL을 포함하게 합니다. 따라서 OpenSSL 라이브러리 없이도 Zabbix 바이너리를 다른 Windows 컴퓨터에 복사하여 사용할 수 있습니다. 단, 새로운 OpenSSL 버그 수정 버전이 출시되면 Zabbix 에이전트를 다시 컴파일해야 합니다.
  • no-shared 옵션을 사용하지 않으면 Zabbix는 실행 시 OpenSSL DLL에 의존합니다. 따라서 OpenSSL을 업데이트해도 Zabbix 에이전트를 다시 컴파일할 필요가 없을 수 있습니다. 단, 다른 컴퓨터에 복사할 때는 OpenSSL DLL도 함께 복사해야 합니다.

다른 OpenSSL 설정 옵션에 대한 자세한 내용은 OpenSSL 문서를 참조하세요.

4. 스크립트를 실행하여 OpenSSL을 설정하고 설치하세요(시간이 다소 걸릴 수 있습니다):

cd /c/Zabbix/openssl-3.5.0
./build.sh
PCRE2 설치

1. PCRE2 소스 압축 파일을 다운로드하여 C:\Zabbix\pcre2-10.45에 압축을 푸세요.

2. 관리자 권한으로 MSYS2 MSYS 터미널을 여세요. 그런 다음 압축을 푼 PCRE2 디렉터리에 build 디렉터리를 만들고 해당 디렉터리로 이동하세요:

mkdir /c/Zabbix/pcre2-10.45/build
cd /c/Zabbix/pcre2-10.45/build

3. PCRE2를 설정하세요:

# For 64-bit builds:
export PATH="/c/Zabbix/mingw64/bin:$PATH"
cmake -DCMAKE_C_COMPILER=gcc -DCMAKE_C_FLAGS="-O2 -g" -DCMAKE_INSTALL_PREFIX="/c/Zabbix/x64/PCRE2" ..

# For 32-bit builds:
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 디렉터리의 빌드 디렉터리에 있습니다.

4. PCRE2를 설치하세요:

make install
Zabbix 에이전트 2 컴파일

1. Zabbix 소스 압축 파일을 다운로드하여 C:\Zabbix\zabbix-7.4.0에 압축을 푸세요.

원본 소스 저장소에서 소스 압축 파일을 생성해야 하는 경우(예: 사용자 지정 패치를 적용하거나 최신 소스 코드로 빌드하는 경우), Linux 컴퓨터에 Go를 설치한 뒤(Zabbix 에이전트 2 구성에 필요) 다음 명령을 실행하세요:

git clone https://git.zabbix.com/scm/zbx/zabbix.git
cd zabbix
./bootstrap.sh
./configure
make dist

이렇게 하면 소스 압축 파일이 생성되며, 이를 Windows 컴퓨터로 복사할 수 있습니다.

2. 관리자 권한으로 명령 프롬프트를 여세요. 그런 다음 Zabbix 빌드 디렉터리로 이동하여 Zabbix 에이전트를 컴파일하세요. OpenSSL과 PCRE2가 설치된 디렉터리를 정확히 지정해야 합니다:

  • 64비트 빌드:
cd C:\Zabbix\zabbix-7.4.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

# With TLS support:
mingw32-make ARCH=AMD64 PCRE2="C:\Zabbix\x64\PCRE2" OPENSSL="C:\Zabbix\x64\OpenSSL-Win64-350-static"

# Without TLS support:
mingw32-make ARCH=AMD64 PCRE2="C:\Zabbix\x64\PCRE2"
  • 32비트 빌드:
cd C:\Zabbix\zabbix-7.4.0\build\mingw
set PATH=C:\Zabbix\mingw32\bin;%PATH%

# With TLS support:
mingw32-make ARCH=x86 PCRE2="C:\Zabbix\x86\PCRE2" OPENSSL="C:\Zabbix\x86\OpenSSL-Win32-350-static"

# Without TLS support:
mingw32-make ARCH=x86 PCRE2="C:\Zabbix\x86\PCRE2"

컴파일 후 Zabbix 에이전트 2 바이너리는 C:\Zabbix\zabbix-7.4.0\bin\win64(32비트 빌드는 C:\Zabbix\zabbix-7.4.0\bin\win32)에 생성됩니다. Zabbix 에이전트 2 설정 파일은 C:\Zabbix\zabbix-7.4.0\src\go\conf에 있습니다.

에이전트를 실행하려면 zabbix_agent2.exe 바이너리와 해당 설정 파일을 전용 폴더(예: C:\Zabbix\agent2)에 복사한 다음 에이전트를 실행하세요:

mkdir C:\Zabbix\agent2
copy C:\Zabbix\zabbix-7.4.0\bin\win64\zabbix_agent2.exe C:\Zabbix\agent2\
copy C:\Zabbix\zabbix-7.4.0\src\go\conf\zabbix_agent2.win.conf C:\Zabbix\agent2\
xcopy /E /I C:\Zabbix\zabbix-7.4.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 에이전트 2의 로드 가능한 플러그인 컴파일을 진행하세요.