- Erstellen des Zabbix Agent unter macOS
- Übersicht
- Voraussetzungen
- Erstellen von Agent-Binärdateien mit gemeinsam genutzten Bibliotheken
- Erstellen von Agent-Binärdateien mit statischen Bibliotheken ohne TLS
- Erstellen von Agent-Binärdateien mit statischen Bibliotheken mit OpenSSL
- Erstellen von Agent-Binärdateien mit statischen Bibliotheken mit GnuTLS
Erstellen des Zabbix Agent unter macOS
Übersicht
Dieser Abschnitt zeigt, wie Zabbix macOS-Agent-Binärdateien aus dem Quellcode mit oder ohne TLS erstellt werden.
Voraussetzungen
Sie benötigen Entwicklerwerkzeuge für die Befehlszeile (Xcode ist nicht erforderlich), Automake, pkg-config und PCRE (v8.x) oder PCRE2 (v10.x). Wenn Sie Agent- Binärdateien mit TLS erstellen möchten, benötigen Sie außerdem OpenSSL oder GnuTLS.
Um Automake und pkg-config zu installieren, benötigen Sie den Paketmanager Homebrew von https://brew.sh/. Um ihn zu installieren, öffnen Sie das Terminal und führen Sie den folgenden Befehl aus:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Installieren Sie dann Automake und pkg-config:
brew install automake
brew install pkg-config
Die Vorbereitung der Bibliotheken PCRE, OpenSSL und GnuTLS hängt davon ab, wie sie mit dem Agent verknüpft werden sollen.
Wenn Sie beabsichtigen, Agent-Binärdateien auf einem macOS-Rechner auszuführen, auf dem diese Bibliotheken bereits vorhanden sind, können Sie vorkompilierte Bibliotheken verwenden, die von Homebrew bereitgestellt werden. Dies sind typischerweise macOS-Rechner, die Homebrew zum Erstellen von Zabbix-Agent-Binärdateien oder für andere Zwecke verwenden.
Wenn Agent-Binärdateien auf macOS-Rechnern verwendet werden sollen, auf denen keine gemeinsam genutzte Version der Bibliotheken vorhanden ist, sollten Sie statische Bibliotheken aus den Quellen kompilieren und den Zabbix-Agent damit verknüpfen.
Erstellen von Agent-Binärdateien mit gemeinsam genutzten Bibliotheken
Installieren Sie PCRE2 (ersetzen Sie pcre2 bei Bedarf in den folgenden Befehlen durch pcre):
brew install pcre2
Wenn Sie mit TLS erstellen, installieren Sie OpenSSL und/oder GnuTLS:
brew install openssl
brew install gnutls
Laden Sie den Zabbix-Quellcode herunter:
git clone https://git.zabbix.com/scm/zbx/zabbix.git
Erstellen Sie den Agent ohne TLS:
cd zabbix
./bootstrap.sh
./configure --sysconfdir=/usr/local/etc/zabbix --enable-agent --enable-ipv6
make
make install
Erstellen Sie den Agent mit OpenSSL:
cd zabbix
./bootstrap.sh
./configure --sysconfdir=/usr/local/etc/zabbix --enable-agent --enable-ipv6 --with-openssl=/usr/local/opt/openssl
make
make install
Erstellen Sie den Agent mit 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
Erstellen von Agent-Binärdateien mit statischen Bibliotheken ohne TLS
Nehmen wir an, dass die statischen PCRE-Bibliotheken in
$HOME/static-libs installiert werden. Wir verwenden PCRE2 10.39.
PCRE_PREFIX="$HOME/static-libs/pcre2-10.39"
Laden Sie PCRE herunter und erstellen Sie es mit Unterstützung für Unicode-Eigenschaften:
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
Laden Sie den Zabbix-Quellcode herunter und erstellen Sie den 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
Erstellen von Agent-Binärdateien mit statischen Bibliotheken mit OpenSSL
Beim Erstellen von OpenSSL wird empfohlen, nach einem erfolgreichen Build make test auszuführen. Selbst wenn der Build erfolgreich war, schlagen Tests manchmal fehl. Ist dies der Fall, sollten die Probleme untersucht und behoben werden, bevor Sie fortfahren.
Nehmen wir an, dass die statischen Bibliotheken von PCRE und OpenSSL in $HOME/static-libs installiert werden. Wir verwenden PCRE2 10.39 und OpenSSL 1.1.1a.
PCRE_PREFIX="$HOME/static-libs/pcre2-10.39"
OPENSSL_PREFIX="$HOME/static-libs/openssl-1.1.1a"
Erstellen wir die statischen Bibliotheken in static-libs-source:
mkdir static-libs-source
cd static-libs-source
Laden Sie PCRE mit Unterstützung für Unicode-Eigenschaften herunter und erstellen Sie es:
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 ..
Laden Sie OpenSSL herunter und erstellen Sie es:
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 ..
Laden Sie den Zabbix-Quellcode herunter und erstellen Sie den 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
Erstellen von Agent-Binärdateien mit statischen Bibliotheken mit GnuTLS
GnuTLS hängt vom Nettle-Krypto-Backend und der GMP-Arithmetikbibliothek ab. Anstelle der vollständigen GMP-Bibliothek wird in dieser Anleitung mini-gmp verwendet, das in Nettle enthalten ist.
Beim Erstellen von GnuTLS und Nettle wird empfohlen, nach einem erfolgreichen Build make check
auszuführen. Selbst wenn der Build erfolgreich war, schlagen Tests
manchmal fehl. In diesem Fall sollten die Probleme untersucht und
behoben werden, bevor Sie fortfahren.
Nehmen wir an, dass die statischen Bibliotheken von PCRE, Nettle und GnuTLS in
$HOME/static-libs installiert werden. Wir verwenden PCRE2 10.39, Nettle 3.4.1
und 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"
Erstellen wir die statischen Bibliotheken in static-libs-source:
mkdir static-libs-source
cd static-libs-source
Nettle herunterladen und erstellen:
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 herunterladen und erstellen:
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-Quellcode herunterladen und Agent erstellen:
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