macOS 에이전트 빌드

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

개요

이 절에서는 TLS를 포함하거나 포함하지 않은 상태로 소스에서 Zabbix macOS 에이전트 바이너리를 빌드하는 방법을 설명합니다.

사전 요구 사항

커맨드 라인 개발자 도구(Xcode는 필요하지 않음), Automake, pkg-config, 그리고 PCRE(v8.x) 또는 PCRE2(v10.x)가 필요합니다. TLS를 포함한 에이전트 바이너리를 빌드하려면 OpenSSL 또는 GnuTLS도 필요합니다.

Automake와 pkg-config를 설치하려면 https://brew.sh/에서 제공하는 Homebrew 패키지 관리자가 필요합니다. 설치하려면 터미널을 열고 다음 명령을 실행하십시오:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

그런 다음 Automake와 pkg-config를 설치합니다:

brew install automake
brew install pkg-config

PCRE, OpenSSL, GnuTLS 라이브러리를 준비하는 방법은 이 라이브러리들이 에이전트에 어떤 방식으로 링크될지에 따라 달라집니다.

이미 이러한 라이브러리가 설치된 macOS 머신에서 에이전트 바이너리를 실행할 예정이라면 Homebrew가 제공하는 사전 컴파일된 라이브러리를 사용할 수 있습니다. 일반적으로 Zabbix 에이전트 바이너리 빌드나 다른 용도로 Homebrew를 사용하는 macOS 머신이 여기에 해당합니다.

공유 버전 라이브러리가 없는 macOS 머신에서 에이전트 바이너리를 사용할 예정이라면, 소스에서 정적 라이브러리를 컴파일하고 Zabbix 에이전트를 그것과 링크해야 합니다.

공유 라이브러리로 에이전트 바이너리 빌드

PCRE2를 설치합니다(필요한 경우 아래 명령에서 pcre2를 pcre로 바꾸십시오):

brew install pcre2

TLS를 포함해 빌드할 때는 OpenSSL 및/또는 GnuTLS를 설치합니다:

brew install openssl
brew install gnutls

Zabbix 소스를 다운로드합니다:

git clone https://git.zabbix.com/scm/zbx/zabbix.git

TLS 없이 에이전트를 빌드합니다:

cd zabbix
./bootstrap.sh
./configure --sysconfdir=/usr/local/etc/zabbix --enable-agent --enable-ipv6
make
make install

OpenSSL과 함께 에이전트를 빌드합니다:

cd zabbix
./bootstrap.sh
./configure --sysconfdir=/usr/local/etc/zabbix --enable-agent --enable-ipv6 --with-openssl=/usr/local/opt/openssl
make
make install

GnuTLS와 함께 에이전트를 빌드합니다:

cd zabbix-source/
./bootstrap.sh
./configure --sysconfdir=/usr/local/etc/zabbix --enable-agent --enable-ipv6 --with-gnutls=/usr/local/opt/gnutls
make
make install

TLS 없이 정적 라이브러리로 에이전트 바이너리 빌드

PCRE 정적 라이브러리가 $HOME/static-libs에 설치된다고 가정하겠습니다. 여기서는 PCRE2 10.39를 사용합니다.

PCRE_PREFIX="$HOME/static-libs/pcre2-10.39"

유니코드 속성 지원을 포함해 PCRE를 다운로드하고 빌드합니다:

mkdir static-libs-source
cd static-libs-source
curl --remote-name https://github.com/PhilipHazel/pcre2/releases/download/pcre2-10.39/pcre2-10.39.tar.gz
tar xf pcre2-10.39.tar.gz
cd pcre2-10.39
./configure --prefix="$PCRE_PREFIX" --disable-shared --enable-static --enable-unicode-properties
make
make check
make install

Zabbix 소스를 다운로드하고 에이전트를 빌드합니다:

git clone https://git.zabbix.com/scm/zbx/zabbix.git
cd zabbix
./bootstrap.sh
./configure --sysconfdir=/usr/local/etc/zabbix --enable-agent --enable-ipv6 --with-libpcre2="$PCRE_PREFIX"
make
make install

OpenSSL과 함께 정적 라이브러리로 에이전트 바이너리 빌드

OpenSSL을 빌드할 때는 빌드가 성공한 후 make test를 실행하는 것이 좋습니다. 빌드가 성공했더라도 테스트가 실패하는 경우가 있습니다. 그런 경우에는 계속 진행하기 전에 문제를 조사하고 해결해야 합니다.

PCRE와 OpenSSL 정적 라이브러리가 $HOME/static-libs에 설치된다고 가정하겠습니다. 여기서는 PCRE2 10.39와 OpenSSL 1.1.1a를 사용합니다.

PCRE_PREFIX="$HOME/static-libs/pcre2-10.39"
OPENSSL_PREFIX="$HOME/static-libs/openssl-1.1.1a"

static-libs-source에서 정적 라이브러리를 빌드하겠습니다:

mkdir static-libs-source
cd static-libs-source

유니코드 속성 지원을 포함해 PCRE를 다운로드하고 빌드합니다:

curl --remote-name https://github.com/PhilipHazel/pcre2/releases/download/pcre2-10.39/pcre2-10.39.tar.gz
tar xf pcre2-10.39.tar.gz
cd pcre2-10.39
./configure --prefix="$PCRE_PREFIX" --disable-shared --enable-static --enable-unicode-properties
make
make check
make install
cd ..

OpenSSL을 다운로드하고 빌드합니다:

curl --remote-name https://www.openssl.org/source/openssl-1.1.1a.tar.gz
tar xf openssl-1.1.1a.tar.gz
cd openssl-1.1.1a
./Configure --prefix="$OPENSSL_PREFIX" --openssldir="$OPENSSL_PREFIX" --api=1.1.0 no-shared no-capieng no-srp no-gost no-dgram no-dtls1-method no-dtls1_2-method darwin64-x86_64-cc
make
make test
make install_sw
cd ..

Zabbix 소스를 다운로드하고 에이전트를 빌드합니다:

git clone https://git.zabbix.com/scm/zbx/zabbix.git
cd zabbix
./bootstrap.sh
./configure --sysconfdir=/usr/local/etc/zabbix --enable-agent --enable-ipv6 --with-libpcre2="$PCRE_PREFIX" --with-openssl="$OPENSSL_PREFIX"
make
make install

GnuTLS와 함께 정적 라이브러리로 에이전트 바이너리 빌드

GnuTLS는 Nettle 암호화 백엔드와 GMP 산술 라이브러리에 의존합니다. 이 가이드에서는 전체 GMP 라이브러리 대신 Nettle에 포함된 mini-gmp를 사용합니다.

GnuTLS와 Nettle을 빌드할 때는 빌드가 성공한 후 make check를 실행하는 것이 좋습니다. 빌드가 성공했더라도 테스트가 실패하는 경우가 있습니다. 그런 경우에는 계속 진행하기 전에 문제를 조사하고 해결해야 합니다.

PCRE, Nettle, GnuTLS 정적 라이브러리가 $HOME/static-libs에 설치된다고 가정하겠습니다. 여기서는 PCRE2 10.39, Nettle 3.4.1, GnuTLS 3.6.5를 사용합니다.

PCRE_PREFIX="$HOME/static-libs/pcre2-10.39"
NETTLE_PREFIX="$HOME/static-libs/nettle-3.4.1"
GNUTLS_PREFIX="$HOME/static-libs/gnutls-3.6.5"

static-libs-source에서 정적 라이브러리를 빌드하겠습니다:

mkdir static-libs-source
cd static-libs-source

Nettle을 다운로드하고 빌드합니다:

curl --remote-name https://ftp.gnu.org/gnu/nettle/nettle-3.4.1.tar.gz
tar xf nettle-3.4.1.tar.gz
cd nettle-3.4.1
./configure --prefix="$NETTLE_PREFIX" --enable-static --disable-shared --disable-documentation --disable-assembler --enable-x86-aesni --enable-mini-gmp
make
make check
make install
cd ..

GnuTLS를 다운로드하고 빌드합니다:

curl --remote-name https://www.gnupg.org/ftp/gcrypt/gnutls/v3.6/gnutls-3.6.5.tar.xz
tar xf gnutls-3.6.5.tar.xz
cd gnutls-3.6.5
PKG_CONFIG_PATH="$NETTLE_PREFIX/lib/pkgconfig" ./configure --prefix="$GNUTLS_PREFIX" --enable-static --disable-shared --disable-guile --disable-doc --disable-tools --disable-libdane --without-idn --without-p11-kit --without-tpm --with-included-libtasn1 --with-included-unistring --with-nettle-mini
make
make check
make install
cd ..

Zabbix 소스를 다운로드하고 에이전트를 빌드합니다:

git clone https://git.zabbix.com/scm/zbx/zabbix.git
cd zabbix
./bootstrap.sh
CFLAGS="-Wno-unused-command-line-argument -framework Foundation -framework Security" \
> LIBS="-lgnutls -lhogweed -lnettle" \
> LDFLAGS="-L$GNUTLS_PREFIX/lib -L$NETTLE_PREFIX/lib" \
> ./configure --sysconfdir=/usr/local/etc/zabbix --enable-agent --enable-ipv6 --with-libpcre2="$PCRE_PREFIX" --with-gnutls="$GNUTLS_PREFIX"
make
make install