Ова секција показује како компилирати бинарне датотеке Zabbix агента за macOS из извора, са или без TLS-а.
Потребни су вам алати за програмирање командне линије (Xcode није потребан), Automake, pkg-config и PCRE (v8.x) или PCRE2 (v10.x). Ако желите да направите бинарне датотеке агента са TLS-ом, биће вам потребан и OpenSSL или GnuTLS.
Да бисте инсталирали Automake и pkg-config, биће вам потребан Homebrew менаџер пакета са https://brew.sh/. Да бисте га инсталирали, отворите терминал и покрените следећу команду:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Затим инсталирајте Automake и pkg-config:
brew install automake brew install pkg-config
Припрема PCRE, OpenSSL и GnuTLS библиотека зависи од начина на који ће бити повезане са агентом.
Ако намеравате да покрећете бинарне датотеке агента на macOS машини која већ има ове библиотеке, можете користити претходно компајлиране библиотеке које пружа Homebrew. То су обично macOS машине које користе Homebrew за изградњу бинарних датотека Zabbix агента или у друге сврхе.
Ако ће се бинарне датотеке агента користити на macOS машинама које немају дељену верзију библиотека, требало би да компајлирате статичке библиотеке из извора и повежете Zabbix агент са њима.
Инсталирајте PCRE2 (замените pcre2 са pcre у наредбама испод, ако је потребно):
brew install pcre2
Када компилирате са TLS-ом, инсталирајте OpenSSL и/или GnuTLS:
brew install openssl brew install gnutls
Преузмите изворни код Zabbix-а:
git clone https://git.zabbix.com/scm/zbx/zabbix.git
Компилирање агента без TLS-а:
cd zabbix ./bootstrap.sh ./configure --sysconfdir=/usr/local/etc/zabbix --enable-agent --enable-ipv6 make make install
Компилирање агента са OpenSSL-ом:
cd zabbix ./bootstrap.sh ./configure --sysconfdir=/usr/local/etc/zabbix --enable-agent --enable-ipv6 --with-openssl=/usr/local/opt/openssl make make install
Компилирање агента са 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
Претпоставимо да ће PCRE статичке библиотеке бити инсталиране у $HOME/static-libs
. Ми ћемо користити PCRE2 10.39.
Преузмите и компајлирајте PCRE са подршком за 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
Преузмите изворни код Zabbix-а и компилирајте агента:
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
Приликом изградње OpenSSL-а, препоручује се покретање make test
након успешне изградње. Чак и ако је изградња била успешна, тестови понекад не успеју. Ако је то случај, проблеме треба истражити и решити пре него што се настави.
Претпоставимо да ће статичке библиотеке PCRE и OpenSSL бити инсталиране у $HOME/static-libs
. Користићемо PCRE2 10.39 и OpenSSL 1.1.1a.
PCRE_PREFIX="$HOME/static-libs/pcre2-10.39" OPENSSL_PREFIX="$HOME/static-libs/openssl-1.1.1a"
Хајде да направимо статичке библиотеке у static-libs-source
:
mkdir static-libs-source cd static-libs-source
Преузмите и направите PCRE са подршком за 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 ..
Преузмите и изградите 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 ..
Преузмите изворни код Zabbix-а и агент за изградњу:
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
GnuTLS зависи од Nettle крипто бекенда и GMP аритметичке библиотеке. Уместо коришћења пуне GMP библиотеке, овај водич ће користити mini-gmp који је укључен у Nettle.
Приликом изградње GnuTLS-а и Nettle-а, препоручује се покретање make check
након успешне изградње. Чак и ако је изградња била успешна, тестови понекад не успевају. Ако је то случај, проблеме треба истражити и решити пре него што се настави.
Претпоставимо да ће статичке библиотеке PCRE, Nettle и GnuTLS бити инсталиране у $HOME/static-libs
. Користићемо PCRE2 10.39, Nettle 3.4.1 и 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"
Хајде да направимо статичке библиотеке у static-libs-source
:
mkdir static-libs-source cd static-libs-source
Преузмите и направите 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 ..
Преузмите и изградите 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 ..
Преузмите изворни код и агент за изградњу Zabbix-а:
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