You are viewing documentation for the development version, it may be incomplete.
Join our translation project and help translate Zabbix documentation into your native language.

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

概要

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

前提条件

コマンドライン開発者ツールAutomake、pkg-config、およびPCRE(v8.x)またはPCRE2(v10.x)が必要です (Xcodeは必要ありません)。 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 エージェントをリンクする必要があります。

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

PCRE2をインストール (必要に応じて、以下のコマンドのpcre2pcreに置き換えてください)。

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