This is a translation of the original English documentation page. Help us make it better.

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