3 macOSでのZabbixエージェントのビルド
概要
このセクションでは、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を使用しない静的ライブラリを使用したエージェントバイナリのビルド
$HOME/static-libsにPCRE静的ライブラリがインストールされると仮定します。PCRE2 10.39を使用します。
PCRE_PREFIX="$HOME/static-libs/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と静的ライブラリを使用してエージェントバイナリをビルドする
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
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と静的ライブラリを使用してエージェントバイナリをビルドする
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