הרכבת הסוכן של Zabbix ב־macOS
סקירה
סעיף זה מדגים כיצד לבנות קבצים בינאריים של סוכן 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 להתקין automake
$ brew install pkg-config
הכנת ספריות PCRE, OpenSSL ו-GnuTLS תלויה בדרך שבה הן יהיו מקושרים לסוכן.
אם אתה מתכוון להפעיל קבצים בינאריים של סוכן על מכונת macOS שכבר יש בספריות אלו, אתה יכול להשתמש בספריות מהודרות מראש שמסופקות על ידי בירה ביתית. אלה בדרך כלל מכונות macOS שמשתמשות ב-Homebrew עבור בניית קבצים בינאריים של סוכן Zabbix או למטרות אחרות.
אם ישתמשו בקבצים בינאריים של סוכן במכונות macOS שאין להם את גרסה משותפת של ספריות, עליך להרכיב ספריות סטטיות מהן מקורות וקשר איתם את סוכן Zabbix.
בניית קבצים בינאריים של סוכנים עם ספריות משותפות
התקן את PCRE2 (החלף את pcre2 ב-pcre בפקודות למטה, במידת הצורך):
$ brew להתקין pcre2
בעת בנייה עם TLS, התקן את OpenSSL ו/או GnuTLS:
$ brew התקנת 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
$ לעשות
$ לעשות התקנה
בניית סוכן עם OpenSSL:
$ CD zabbix
$ ./bootstrap.sh
$ ./configure --sysconfdir=/usr/local/etc/zabbix --enable-agent --enable-ipv6 --with-openssl=/usr/local/opt/openssl
$ לעשות
$ לעשות התקנה
בניית סוכן עם GnuTLS:
$ cd zabbix-source/
$ ./bootstrap.sh
$ ./configure --sysconfdir=/usr/local/etc/zabbix --enable-agent --enable-ipv6 --with-gnutls=/usr/local/opt/gnutls
$ לעשות
$ לעשות התקנה
בניית קבצים בינאריים של סוכנים עם ספריות סטטיות ללא TLS
בוא נניח שספריות סטטיות PCRE יותקנו ב
$HOME/static-libs. נשתמש ב-PCRE2 10.39.
$ PCRE_PREFIX="$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
$ לעשות
$ לעשות צ'ק
$ לעשות התקנה
הורד את המקור של 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"
$ לעשות
$ לעשות התקנה
בניית קבצים בינאריים של סוכנים עם ספריות סטטיות עם OpenSSL
בעת בניית 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
$ לעשות
$ לעשות צ'ק
$ לעשות התקנה
$ 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 -שיטה darwin64-x86_64-cc
$ לעשות
$ לעשות מבחן
$ 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"
$ לעשות
$ לעשות התקנה
בניית קבצים בינאריים של סוכנים עם ספריות סטטיות עם GnuTLS
GnuTLS תלוי ב-Crypto Backend של Nettle ובספרייה האריתמטית של GMP. במקום להשתמש בספריית GMP מלאה, מדריך זה ישתמש ב-mini-gmp כלומר כלול בסרפד.
בעת בניית 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 סרפד-3.4.1
$ ./configure --prefix="$NETTLE_PREFIX" --enable-static --disable-shared --disable-documentation --disable-assembler --enable-x86-aesni --enable-mini-gmp
$ לעשות
$ לעשות צ'ק
$ לעשות התקנה
$ 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
$ לעשות
$ לעשות צ'ק
$ לעשות התקנה
$ 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"
$ לעשות
$ לעשות התקנה