Dit gedeelte laat zien hoe je Zabbix macOS-agentbinaries kunt compileren vanuit bronnen met of zonder TLS-ondersteuning.
Je hebt de opdrachtregelontwikkelaarstools nodig (Xcode is niet vereist), Automake, pkg-config en PCRE (v8.x) of PCRE2 (v10.x). Als je agentbinaries met TLS wilt compileren, heb je ook OpenSSL of GnuTLS nodig.
Om Automake en pkg-config te installeren, heb je een Homebrew-pakketbeheerder nodig van https://brew.sh/. Om het te installeren, open je de terminal en voer je de volgende opdracht uit:
Installeer vervolgens Automake en pkg-config:
Het voorbereiden van de PCRE-, OpenSSL- en GnuTLS-bibliotheken hangt af van de manier waarop ze aan de agent worden gekoppeld.
Als je van plan bent om agentbinaries op een macOS-machine uit te voeren die al over deze bibliotheken beschikt, kun je vooraf gecompileerde bibliotheken gebruiken die worden aangeboden door Homebrew. Dit zijn doorgaans macOS-machines die Homebrew gebruiken voor het compileren van Zabbix-agentbinaries of voor andere doeleinden.
Als agentbinaries zullen worden gebruikt op macOS-machines die de gedeelde versie van de bibliotheken niet hebben, moet je statische bibliotheken compileren uit bronnen en de Zabbix-agent ermee koppelen.
Installeer PCRE2 (vervang pcre2 door pcre in de onderstaande opdrachten, indien nodig):
Bij het compileren met TLS, installeer OpenSSL en/of GnuTLS:
Download de Zabbix-bron:
Bouw de agent zonder TLS:
cd zabbix
./bootstrap.sh
./configure --sysconfdir=/usr/local/etc/zabbix --enable-agent --enable-ipv6
make
make install
Bouw de agent met OpenSSL:
cd zabbix
./bootstrap.sh
./configure --sysconfdir=/usr/local/etc/zabbix --enable-agent --enable-ipv6 --with-openssl=/usr/local/opt/openssl
make
make install
Bouw de agent met 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
Laten we aannemen dat de statische bibliotheken van PCRE worden geïnstalleerd in $HOME/static-libs
. We zullen PCRE2 10.39 gebruiken.
Download en bouw PCRE met ondersteuning voor Unicode-eigenschappen:
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
Download de Zabbix-bron en bouw de agent:
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
Bij het compileren van OpenSSL wordt aanbevolen om na succesvolle compilatie make test
uit te voeren. Zelfs als de compilatie succesvol was, mislukken de tests soms. Als dat het geval is, moeten de problemen worden onderzocht en opgelost voordat je doorgaat.
Laten we aannemen dat de statische bibliotheken van PCRE en OpenSSL worden geïnstalleerd in $HOME/static-libs
. We zullen PCRE2 10.39 en OpenSSL 1.1.1a gebruiken.
Laten we statische bibliotheken bouwen in static-libs-source
:
Download en bouw PCRE met ondersteuning voor Unicode-eigenschappen:
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 ..
Download en bouw 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 ..
Download de Zabbix-bron en bouw de agent:
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 is afhankelijk van de Nettle-crypto-backend en de GMP-rekenkundige bibliotheek. In plaats van de volledige GMP-bibliotheek te gebruiken, zal deze handleiding mini-gmp gebruiken, die is opgenomen in Nettle.
Bij het bouwen van GnuTLS en Nettle wordt aanbevolen om na succesvolle compilatie make check
uit te voeren. Zelfs als de compilatie succesvol was, mislukken de tests soms. Als dat het geval is, moeten de problemen worden onderzocht en opgelost voordat je doorgaat.
Laten we aannemen dat de statische bibliotheken van PCRE, Nettle en GnuTLS worden geïnstalleerd in $HOME/static-libs
. We zullen PCRE2 10.39, Nettle 3.4.1 en GnuTLS 3.6.5 gebruiken.
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"
Laten we statische bibliotheken bouwen in static-libs-source
:
Download en bouw 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 ..
Download en bouw 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 ..
Download de Zabbix-bron en bouw de agent:
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