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

הרכבת הסוכן של 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"
        $ לעשות
        $ לעשות התקנה