Você está visualizando a documentação da versão de desenvolvimento, que pode estar incompleta.
Esta página foi traduzida automaticamente. Se você notar um erro, selecione-o e pressione Ctrl+Enter para reportá-lo aos editores.

3 Compilando o agent Zabbix no macOS

Visão geral

Esta seção demonstra como compilar os binários do agent Zabbix para macOS a partir do código-fonte com ou sem TLS.

Pré-requisitos

Você precisará das ferramentas de desenvolvedor de linha de comando (Xcode não é necessário), Automake, pkg-config e PCRE (v8.x) ou PCRE2 (v10.x). Se você quiser compilar os binários do agent com TLS, também precisará do OpenSSL ou GnuTLS.

Para instalar o Automake e o pkg-config, você precisará do gerenciador de pacotes Homebrew, disponível em https://brew.sh/. Para instalá-lo, abra o terminal e execute o seguinte comando:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Em seguida, instale o Automake e o pkg-config:

brew install automake
       brew install pkg-config

A preparação das bibliotecas PCRE, OpenSSL e GnuTLS depende da forma como elas serão vinculadas ao agent.

Se você pretende executar os binários do agent em uma máquina macOS que já possui essas bibliotecas, pode usar as bibliotecas pré-compiladas fornecidas pelo Homebrew. Normalmente, são máquinas macOS que usam o Homebrew para compilar os binários do agent Zabbix ou para outros fins.

Se os binários do agent forem usados em máquinas macOS que não possuem a versão compartilhada das bibliotecas, você deve compilar as bibliotecas estáticas a partir do código-fonte e vincular o agent Zabbix a elas.

Compilando binários do agent com bibliotecas compartilhadas

Instale o PCRE2 (substitua pcre2 por pcre nos comandos abaixo, se necessário):

brew install pcre2

Ao compilar com TLS, instale OpenSSL e/ou GnuTLS:

brew install openssl
       brew install gnutls

Baixe o código-fonte do Zabbix:

git clone https://git.zabbix.com/scm/zbx/zabbix.git

Compile o agent sem TLS:

cd zabbix
       ./bootstrap.sh
       ./configure --sysconfdir=/usr/local/etc/zabbix --enable-agent --enable-ipv6
       make
       make install

Compile o agent com OpenSSL:

cd zabbix
       ./bootstrap.sh
       ./configure --sysconfdir=/usr/local/etc/zabbix --enable-agent --enable-ipv6 --with-openssl=/usr/local/opt/openssl
       make
       make install

Compile o agent com 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

Compilando binários do agent com bibliotecas estáticas sem TLS

Vamos supor que as bibliotecas estáticas do PCRE serão instaladas em $HOME/static-libs. Usaremos o PCRE2 10.39.

PCRE_PREFIX="$HOME/static-libs/pcre2-10.39"

Baixe e compile o PCRE com suporte a propriedades Unicode:

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

Baixe o código-fonte do Zabbix e compile o 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

Compilando binários do agent com bibliotecas estáticas com OpenSSL

Ao compilar o OpenSSL, é recomendável executar make test após a compilação bem-sucedida. Mesmo que a compilação tenha sido bem-sucedida, os testes às vezes falham. Se este for o caso, os problemas devem ser pesquisados e resolvidos antes de continuar.

Vamos supor que as bibliotecas estáticas do PCRE e do OpenSSL serão instaladas em $HOME/static-libs. Usaremos PCRE2 10.39 e OpenSSL 1.1.1a.

PCRE_PREFIX="$HOME/static-libs/pcre2-10.39"
       OPENSSL_PREFIX="$HOME/static-libs/openssl-1.1.1a"

Vamos compilar as bibliotecas estáticas em static-libs-source:

mkdir static-libs-source
       cd static-libs-source

Baixe e compile o PCRE com suporte a propriedades Unicode:

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 ..

Baixe e compile o 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 ..

Baixe o código-fonte do Zabbix e compile o 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

Compilando binários do agent com bibliotecas estáticas com GnuTLS

O GnuTLS depende do backend criptográfico Nettle e da biblioteca aritmética GMP. Em vez de usar a biblioteca GMP completa, este guia usará o mini-gmp, que está incluído no Nettle.

Ao compilar o GnuTLS e o Nettle, é recomendável executar make check após a compilação bem-sucedida. Mesmo que a compilação tenha sido bem-sucedida, os testes às vezes falham. Se este for o caso, os problemas devem ser pesquisados e resolvidos antes de continuar.

Vamos supor que as bibliotecas estáticas do PCRE, Nettle e GnuTLS serão instaladas em $HOME/static-libs. Usaremos PCRE2 10.39, Nettle 3.4.1 e 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"

Vamos compilar as bibliotecas estáticas em static-libs-source:

mkdir static-libs-source
       cd static-libs-source

Baixe e compile o 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 ..

Baixe e compile o 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 ..

Baixe o código-fonte do Zabbix e compile o 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