Creazione dell'agente Zabbix su macOS
Panoramica
Questa sezione mostra come creare i binari dell'agente macOS Zabbix da sorgenti con o senza TLS.
Prerequisiti
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:
$ brew install automake
$ brew install 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.
Creazione di binari dell'agente con librerie condivise
Installa PCRE2 (sostituisci pcre2 con pcre nei comandi seguenti, se necessario):
$ brew install pcre2
Quando si compila con TLS, installare OpenSSL e/o GnuTLS:
$ brew install apressl
$ brew installa gnutls
Scarica il sorgente Zabbix:
$ git clone https://git.zabbix.com/scm/zbx/zabbix.git
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
Compilazione di binari dell'agente con librerie statiche senza TLS
Supponiamo che verranno installate le librerie statiche PCRE
$HOME/librerie-statiche. Useremo PCRE2 10.39.
$ PCRE_PREFIX="$HOME/libs-statico/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
Compilazione di binari dell'agente con librerie statiche con OpenSSL
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.
$ PCRE_PREFIX="$HOME/libs-statico/pcre2-10.39"
$ OPENSSL_PREFIX="$HOME/static-libs/openssl-1.1.1a"
Costruiamo librerie statiche in static-libs-source:
$ mkdir static-libs-source
$ cd 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
Costruire binari dell'agente con librerie statiche con GnuTLS
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:
$ mkdir static-libs-source
$ cd 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