Sidebar

Zabbix Summit 2022
Register for Zabbix Summit 2022

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

概要

このセクションでは、TLS の有無にかかわらず、ソースから Zabbix macOS エージェント バイナリをビルドする方法を示します。

前提条件

コマンド ライン開発者ツール (Xcode は必要ありません)、Automake、pkg-config、および PCRE (v8.x) が必要です。 TLS を使用してエージェント バイナリをビルドする場合は、OpenSSL または GnuTLS も必要になります。

Automake と pkg-config をインストールするには、https://brew.sh/ の Homebrew パッケージ マネージャーが必要です。 インストールするには、ターミナルを開いて次のコマンドを実行します。

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

次に Automake と pkg-config をインストールします。

$ brew install automake
       $ brew install pkg-config

PCRE、OpenSSL、および GnuTLS ライブラリの準備は、エージェントへのリンク方法によって異なります。

これらのライブラリが既にある macOS マシンでエージェント バイナリを実行する場合は、Homebrew が提供するコンパイル済みのライブラリを使用できます。 これらは通常、Zabbix エージェント バイナリの構築やその他の目的で Homebrew を使用する macOS マシンです。

共有バージョンのライブラリがない macOS マシンでエージェント バイナリを使用する場合は、ソースから静的ライブラリをコンパイルし、Zabbix エージェントをリンクする必要があります。

共有ライブラリを使用したエージェント バイナリのビルド

PCRE をインストール

$ brew install pcre

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 静的ライブラリがインストールされると仮定します。 PCRE 8.42 を使用します。

$ PCRE_PREFIX="$HOME/static-libs/pcre-8.42"

Unicode プロパティをサポートする PCRE をダウンロードしてビルドします。

$ mkdir static-libs-source
       $ cd static-libs-source
       $ curl --remote-name https://ftp.pcre.org/pub/pcre/pcre-8.42.tar.gz
       $ tar xf pcre-8.42.tar.gz
       $ cd pcre-8.42
       $ ./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-libpcre="$PCRE_PREFIX"
       $ make
       $ make install

OpenSSLと静的ライブラリを使用してエージェント バイナリをビルドする

OpenSSL をビルドする場合は、ビルドが成功した後に make test を実行することをお勧めします。 ビルドが成功した場合でも、テストが失敗することがあります。 この場合は、続行する前に問題を調査して解決する必要があります。

PCRE と OpenSSL の静的ライブラリが $HOME/static-libs にインストールされると仮定します。 PCRE 8.42 と OpenSSL 1.1.1a を使用します。

$ PCRE_PREFIX="$HOME/static-libs/pcre-8.42"
       $ 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://ftp.pcre.org/pub/pcre/pcre-8.42.tar.gz
       $ tar xf pcre-8.42.tar.gz
       $ cd pcre-8.42
       $ ./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-libpcre="$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 にインストールされると仮定します。 PCRE 8.42、Nettle 3.4.1、および GnuTLS 3.6.5 を使用します。

$ PCRE_PREFIX="$HOME/static-libs/pcre-8.42"
       $ 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-libpcre="$PCRE_PREFIX" --with-gnutls="$GNUTLS_PREFIX"
       $ make
       $ make install