このセクションでは、TLSの有無にかかわらず、ソースからZabbix macOSエージェントのバイナリをビルドする方法を説明します。
コマンドライン開発者ツールAutomake、pkg-config、およびPCRE(v8.x)またはPCRE2(v10.x)が必要です (Xcodeは必要ありません)。 TLSを使用してエージェントバイナリをビルドする場合は、OpenSSLまたはGnuTLSも必要になります。
Automakeとpkg-configをインストールするには、https://brew.sh/のHomebrewパッケージマネージャーが必要です。 インストールするため、ターミナルを開いて次のコマンドを実行します。
次にAutomakeとpkg-configをインストールします。
PCRE、OpenSSL、およびGnuTLSライブラリの準備は、エージェントへのリンク方法によって異なります。
これらのライブラリが既にあるmacOSマシンでエージェントバイナリを実行する場合は、Homebrewが提供するコンパイル済みのライブラリを使用できます。 これらは通常、Zabbixエージェントバイナリの構築やその他の目的でHomebrewを使用するmacOSマシンです。
共有バージョンのライブラリがないmacOSマシンでエージェントバイナリを使用する場合は、ソースから静的ライブラリをコンパイルし、Zabbix エージェントをリンクする必要があります。
PCRE2をインストール (必要に応じて、以下のコマンドのpcre2をpcreに置き換えてください)。
TLSでビルドする場合はOpenSSLとGnuTLSの両方、あるいはどちらかをインストール。
Zabbixソースをダウンロード。
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
$HOME/static-libs
にPCRE静的ライブラリがインストールされると仮定します。PCRE2 10.39を使用します。
Unicodeプロパティをサポートする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をビルドするとき、ビルドが成功した後にmake test
を実行することをお勧めします。 ビルドが成功した場合でも、テストが失敗することがあります。 この場合は、続行する前に問題を調査して解決する必要があります。
PCREとOpenSSLの静的ライブラリが$HOME/static-libs
にインストールされると仮定します。PCRE2 10.39とOpenSSL 1.1.1aを使用します。
static-libs-source
で静的ライブラリをビルドします。
Unicodeプロパティをサポートする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は、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
で静的ライブラリをビルドします。
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