Questa sezione mostra come creare i binari dell'agente macOS Zabbix da sorgenti con o senza TLS.
Avrai bisogno di strumenti per sviluppatori da riga di comando (Xcode non è richiesto), Automake, pkg-config e PCRE (v8.x) o PCRE2 (v10.x). Se vuoi eseguire i binari dell'agent con TLS, avrai bisogno anche di OpenSSL o GnuTLS.
Per installare Automake e pkg-config, avrai bisogno di un pacchetto Homebrew manager da https://brew.sh/. Per installarlo, apri il terminale ed esegui il seguente comando:
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Quindi installa Automake e pkg-config:
La preparazione delle librerie PCRE, OpenSSL e GnuTLS dipende dal modo in cui esse saranno collegati all'agente.
Se intendi eseguire i file binari dell'agente su un computer macOS che ha già queste librerie, è possibile utilizzare le librerie precompilate fornite da Homebrew . Si tratta in genere di macchine macOS che utilizzano Homebrew per costruire binari dell'agente Zabbix o per altri scopi.
Se i file binari dell'agente verranno utilizzati su macchine macOS che non dispongono della versione condivisa delle librerie, è necessario compilare le librerie statiche da fonti e collega l'agente Zabbix con loro.
Installa PCRE2 (sostituisci pcre2 con pcre nei comandi seguenti, se necessario):
Quando si compila con TLS, installare OpenSSL e/o GnuTLS:
Scarica il sorgente Zabbix:
Crea agente senza TLS:
$ cd zabbix
$ ./bootstrap.sh
$ ./configure --sysconfdir=/usr/local/etc/zabbix --enable-agent --enable-ipv6
$ fare
$ make install
Crea agente con OpenSSL:
$ cd zabbix
$ ./bootstrap.sh
$ ./configure --sysconfdir=/usr/local/etc/zabbix --enable-agent --enable-ipv6 --with-openssl=/usr/local/opt/openssl
$ fare
$ make install
Crea agente con GnuTLS:
$ cd fonte zabbix/
$ ./bootstrap.sh
$ ./configure --sysconfdir=/usr/local/etc/zabbix --enable-agent --enable-ipv6 --with-gnutls=/usr/local/opt/gnutls
$ fare
$ make install
Supponiamo che verranno installate le librerie statiche PCRE $HOME/librerie-statiche
. Useremo PCRE2 10.39.
Scarica e crea PCRE con il supporto delle proprietà Unicode:
$ mkdir static-libs-source
$ cd static-libs-source
$ curl --nome-remoto 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
$ fare
$ fai un assegno
$ make install
Scarica il sorgente Zabbix e crea l'agente:
$ 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"
$ fare
$ make install
Quando si compila OpenSSL, si consiglia di eseguire make test
dopo una creazione di successo. Anche se la costruzione ha avuto successo, i test a volte falliscono. Se questo è il caso, i problemi dovrebbero essere ricercati e risolti prima di continuare.
Supponiamo che verranno installate le librerie statiche PCRE e OpenSSL $HOME/librerie-statiche
. Useremo PCRE2 10.39 e OpenSSL 1.1.1a.
Costruiamo librerie statiche in static-libs-source
:
Scarica e crea PCRE con il supporto delle proprietà Unicode:
$ curl --nome-remoto 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
$ fare
$ fai un assegno
$ make install
$cd..
Scarica e crea OpenSSL:
$ curl --nome-remoto https://www.openssl.org/source/openssl-1.1.1a.tar.gz
$ tar xf openssl-1.1.1a.tar.gz
$cd apressl-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 -metodo darwin64-x86_64-cc
$ fare
$ fai il test
$ make install_sw
$cd..
Scarica il sorgente Zabbix e crea l'agente:
$ 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"
$ fare
$ make install
GnuTLS dipende dal backend crittografico di Nettle e dalla libreria aritmetica GMP. Invece di utilizzare la libreria GMP completa, questa guida utilizzerà mini-gmp che è incluso in Nettle.
Quando si compila GnuTLS e Nettle, si consiglia di eseguire make check
dopo aver costruito con successo. Anche se la costruzione ha avuto successo, i test a volte fallire. Se questo è il caso, i problemi dovrebbero essere ricercati e risolto prima di continuare.
Supponiamo che lo saranno le librerie statiche PCRE, Nettle e GnuTLS installato in $HOME/static-libs
. Useremo PCRE2 10.39, Nettle 3.4.1 e GnuTLS 3.6.5.
$ PCRE_PREFIX="$HOME/libs-statico/pcre2-10.39"
$ NETTLE_PREFIX="$HOME/static-libs/nettle-3.4.1"
$ GNUTLS_PREFIX="$HOME/libs-statico/gnutls-3.6.5"
Costruiamo librerie statiche in static-libs-source
:
Scarica e costruisci Nettle:
$ curl --nome-remoto https://ftp.gnu.org/gnu/nettle/nettle-3.4.1.tar.gz
$ tar xf nettle-3.4.1.tar.gz
$ cd ortica-3.4.1
$ ./configure --prefix="$NETTLE_PREFIX" --enable-static --disable-shared --disable-documentation --disable-assembler --enable-x86-aesni --enable-mini-gmp
$ fare
$ fai un assegno
$ make install
$cd..
Scarica e crea GnuTLS:
$ curl --nome-remoto 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 --senza-idn --senza-p11-kit --senza-tpm --con-libtasn1-incluso --con-unistring-incluso --con-ortica-mini
$ fare
$ fai un assegno
$ make install
$cd..
Scarica il sorgente Zabbix e crea l'agente:
$ 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"
$ fare
$ make install