日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

zabbix6.0安装教程(四):构建 Zabbix agent

發(fā)布時間:2024/3/26 编程问答 74 豆豆
生活随笔 收集整理的這篇文章主要介紹了 zabbix6.0安装教程(四):构建 Zabbix agent 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.


zabbix6.0安裝教程(四):構(gòu)建 Zabbix agent


目錄

    • 一、在 macOS 上構(gòu)建 Zabbix agent
      • 1. 概述
      • 2. 必要條件
      • 3. 使用共享庫構(gòu)建 agent 二進制文件
      • 4. 使用不帶 TLS 的靜態(tài)庫構(gòu)建 agent 二進制文件
      • 5. 使用 OpenSSL 構(gòu)建帶有靜態(tài)庫的 agent 二進制文件
      • 6. 使用帶有 GnuTLS 的靜態(tài)庫構(gòu)建 agent 二進制文件
    • 二、在Windows上構(gòu)建Zabbix agent
      • 1. 概述
      • 2. 編譯OpenSSL
      • 3. 編譯PCRE
      • 4. 編譯 Zabbix
      • 5. 用LibreSSL編譯Zabbix
    • 三、在Windows中構(gòu)建Zabbix agent 2
      • 1. 概述
      • 2. 安裝MinGW編譯器
      • 3. 編譯 PCRE 開發(fā)庫
      • 安裝OpenSSL開發(fā)庫


一、在 macOS 上構(gòu)建 Zabbix agent

1. 概述

本節(jié)演示如何從包含或不包含 TLS 的源代碼構(gòu)建 Zabbix macOS agent 二進制文件。

2. 必要條件

您將需要命令行開發(fā)人員工具(不需要Xcode),Automake,pkg-config和PCRE(v8.x)或PCRE2(v10.x)。如果要使用TLS構(gòu)建 agent 二進制文件,則還需要 OpenSSL 或 GnuTLS。

要安裝 Automake 和 pkg-config ,您將需要來自 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 庫取決于它們?nèi)绾捂溄拥?agent。 如果您打算在已具有這些庫的 macOS 計算機上運行代理二進制文件,則可以使用 Homebrew 提供的預(yù)編譯庫。這些通常是 macOS 機器,它們使用 Homebrew 來構(gòu)建 Zabbix agent 二進制文件或用于其他目的。

如果 agent 的二進制文件將在沒有共享版本的庫的 macOS 計算機上使用,則應(yīng)從源代碼編譯靜態(tài)庫,并將 Zabbix agent與它們鏈接。

3. 使用共享庫構(gòu)建 agent 二進制文件

安裝 PCRE2 (如果需要的話,在下面的命令中將 pcre2 替換為 pcre ):

$ brew install pcre2

使用TLS構(gòu)建時,請安裝OpenSSL和/或GnuTLS:

$ brew install openssl$ brew install gnutls

下載 Zabbix 源代碼:

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

不使用 TLS 構(gòu)建 agent:

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

使用 OpenSSL 構(gòu)建 agent:

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

使用 GnuTLS 構(gòu)建 agent:

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

4. 使用不帶 TLS 的靜態(tài)庫構(gòu)建 agent 二進制文件

讓我們假設(shè)PCRE靜態(tài)庫將安裝在 $HOME/static-libs 中,我們將使用 PCRE2 10.39。

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

下載并構(gòu)建具有 Unicode 支持的PCRE:

$ 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 源代碼并構(gòu)建 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

5. 使用 OpenSSL 構(gòu)建帶有靜態(tài)庫的 agent 二進制文件

構(gòu)建OpenSSL時,建議在成功構(gòu)建后運行make test。 即使構(gòu)建成功,測試有時也會失敗。 在這種情況下,應(yīng)進行研究并解決問題,然后再繼續(xù)。

讓我們假設(shè)PCRE和OpenSSL靜態(tài)庫將安裝在“$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 中構(gòu)建靜態(tài)庫:

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

下載并構(gòu)建具有 Unicode 支持的PCRE:

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

下載并構(gòu)建 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 源代碼并構(gòu)建 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

6. 使用帶有 GnuTLS 的靜態(tài)庫構(gòu)建 agent 二進制文件

GnuTLS 依賴于 Nettle 加密后端 和 GMP 算法庫。 本文將使用 Nettle 中包含的 mini-gmp,而不是使用完整的GMP庫。
構(gòu)建 GnuTLS 和 Nettle 時,建議在成功構(gòu)建后運行make check。 即使構(gòu)建成功,測試有時也會失敗。 在這種情況下,應(yīng)進行研究并解決問題,然后再繼續(xù)。

讓我們假設(shè) PCRE、Nettle 和 GnuTLS 靜態(tài)庫 將被安裝在 $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 中構(gòu)建靜態(tài)庫:

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

下載并構(gòu)建 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 ..

下載并構(gòu)建 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 源代碼并構(gòu)建 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

二、在Windows上構(gòu)建Zabbix agent

1. 概述

本節(jié)將演示如何從有或沒有TLS的源構(gòu)建 Zabbix Windows agent二進制文件。

2. 編譯OpenSSL

接下來的步驟將助你在MS Windows 10(64位)的源中編譯OpenSSL。

1.編譯OpenSSL你需要在Windows機器上安裝:

1.C compiler (e.g. VS 2017 RC),
2.NASM (https://www.nasm.us/)
3.Perl (e.g. Strawberry Perl from http://strawberryperl.com/).
4.Perl module Text::Template (cpan Text::Template).

2.獲取 OpenSSL 源代碼 https://www.openssl.org/。這里用OpenSSL 1.1.1 版本。

3.解壓 OpenSSL 源,例如,解壓在 E:\openssl-1.1.1。

4.打開命令行窗口。例如,VS 2017 RC的 x64 原生工具命令提示符。

5.至 OpenSSL 源目錄, 例如,E:\openssl-1.1.1。

#驗證 NASM 能被找到: e:\openssl-1.1.1> nasm --version NASM version 2.13.01 compiled on May 1 2017

6.配置OpenSSL,例如:

e:\openssl-1.1.1> perl E:\openssl-1.1.1\Configure VC-WIN64A no-shared no-capieng no-srp no-gost no-dgram no-dtls1-method no-dtls1_2-method --api=1.1.0 --prefix=C:\OpenSSL-Win64-111-static --openssldir=C:\OpenSSL-Win64-111-static
  • 請注意選項 ‘no-shared’:如果使用 ‘no-shared’ 那么OpenSSL靜態(tài)庫
    libcrypto.lib和libssl.lib 將 ‘自給自足’,生成的Zabbix二進制文件本身將包含OpenSSL,不需要外部的OpenSSL DLLs。 優(yōu)點: Zabbix二進制文件可以復(fù)制到其他沒有OpenSSL庫的Windows機器上。 缺點:當新的OpenSSL bugfix 版本發(fā)布時,需要重新編譯并安裝Zabbix agent。
  • 如果不使用’no-shared’,那么靜態(tài)庫 libcrypto.lib和 libssl.lib 會在運行時使用OpenSSL DLLs。
  • 優(yōu)點:當新的OpenSSL bugfix版本發(fā)布時,你可能只需要升級OpenSSL DLLs不用重新編譯Zabbix agent。
  • 缺點:復(fù)制Zabbix agent到另一個機器時,需要同時復(fù)制OpenSSL DLLs。

7.編譯OpenSSL,運行測試,安裝:

e:\openssl-1.1.1> nmake e:\openssl-1.1.1> nmake test ... All tests successful. Files=152, Tests=1152, 501 wallclock secs ( 0.67 usr + 0.61 sys = 1.28 CPU) Result: PASS e:\openssl-1.1.1> nmake install_sw'install_sw'

僅安裝軟件組件(例如 庫,頭文件,但不安裝文檔)。如果你希望安裝所有的文件,請用 nmake install。

3. 編譯PCRE

1.從 pcre.org (https://github.com/PhilipHazel/pcre2/releases/download/pcre2-10.39/pcre2-10.39.zip) 存儲庫中下載PCRE 或 PCRE2 (Zabbix 6.0以上支持) 庫:

2.提取到目錄E:\pcre2-10.39

3.從https://cmake.org/download/ 安裝CMake,安裝過程中選擇: 確保 cmake\bin 在你的路徑的 (測試版本3.9.4).

4.創(chuàng)建一個新的空的構(gòu)建目錄,最好是源目錄的子目錄。例如E:\pcre2-10.39\build.

5.打開命令行窗口,例如 VS 2017上的x64原生工具命令提示符 ,并且從該外部環(huán)境運行cmake-gui。不要試圖從窗口開始菜單啟動Cmake,因為這可能會導(dǎo)致錯誤。

6.分別為源目錄和構(gòu)建目錄輸入 E:\pcre2-10.39 和E:\pcre2-10.39\build 。

7.點擊 “Configure” 按鈕。

8.為此項目指定生成器時,請選擇 “NMake Makefiles”。

9.創(chuàng)建一個新的空的安裝目錄。例如,E:\pcre2-10.39-install。

10.GUI 將列出幾個配置選項。確保選擇了以下幾個選項:

  • PCRE_SUPPORT_UNICODE_PROPERTIES ON
  • PCRE_SUPPORT_UTF ON
  • CMAKE_INSTALL_PREFIX E:\pcre2-10.39-install

11.再次點擊 “Configure” 。相鄰的"Generate"按鈕需要啟用。

12.點擊 “Generate”.

13.如果出現(xiàn)錯誤,建議在嘗試重復(fù)構(gòu)建CMake的過程中刪除CMake緩存。 在CMake GUI中,緩存可以通過選擇 "File > Delete Cache"來刪除。

14.構(gòu)建目錄現(xiàn)在應(yīng)該包含了一個可用的構(gòu)建系統(tǒng) - Makefile.

15.打開命令行窗口,例如 VS 2017上的x64原生工具命令提示符 ,導(dǎo)航到上面提到的 Makefile 。

16.運行 NMake 命令:

E:\pcre2-10.39\build> nmake install

4. 編譯 Zabbix

以下步驟將助你從MS Windows 10 (64位)上的源碼中編譯Zabbix。在編譯有或沒有TLS支持的Zabbix時,唯一顯著的區(qū)別在步驟4。

1.在Linux機器上,檢查git源代碼:

$ git clone https://git.zabbix.com/scm/zbx/zabbix.git $ cd zabbix $ ./bootstrap.sh $ ./configure --enable-agent --enable-ipv6 --prefix=`pwd` $ make dbschema $ make dist.

2.在Windows機器上復(fù)制和解壓歸檔文件,例如 zabbix-4.4.0.tar.gz。

3.我們假設(shè)源代碼在 e:\zabbix-4.4.0中。打開命令行窗口,例如 VS 2017 RC中的 x64原生工具命令提示符。轉(zhuǎn)至 E:\zabbix-4.4.0\build\win32\project。

4.編譯 zabbix_get, zabbix_sender 和 zabbix_agent。

  • 無TLS:
E:\zabbix-4.4.0\build\win32\project> nmake /KPCREINCDIR=E:\pcre2-10.39-install\includePCRELIBDIR=E:\pcre2-10.39-install\lib
  • 有TLS:
E:\zabbix-4.4.0\build\win32\project> nmake /K -f Makefile_getTLS=openssl TLSINCDIR=C:\OpenSSL-Win64-111-static\includeTLSLIBDIR=C:\OpenSSL-Win64-111-static\libPCREINCDIR=E:\pcre2-10.39-install\includePCRELIBDIR=E:\pcre2-10.39-install\libE:\zabbix-4.4.0\build\win32\project> nmake /K -f Makefile_senderTLS=openssl TLSINCDIR="C:\OpenSSL-Win64-111-static\includeTLSLIBDIR="C:\OpenSSL-Win64-111-static\lib"PCREINCDIR=E:\pcre2-10.39-install\includePCRELIBDIR=E:\pcre2-10.39-install\libE:\zabbix-4.4.0\build\win32\project> nmake /K -f Makefile_agentTLS=openssl TLSINCDIR=C:\OpenSSL-Win64-111-static\includeTLSLIBDIR=C:\OpenSSL-Win64-111-static\libPCREINCDIR=E:\pcre2-10.39-install\includePCRELIBDIR=E:\pcre2-10.39-install\lib

5.新的二進制文件位于 e:\zabbix-4.4.0\bin\win64。由于 OpenSSL 是用 ‘no-shared’ 選項編譯的,Zabbix二進制文件本身包含OpenSSL,可以復(fù)制到其他沒有OpenSSL的機器中。

5. 用LibreSSL編譯Zabbix

該過程類似于使用OpenSSL編譯,但是你需要對位于build\win32\project 目錄中的文件進行一些小的改變:

* In ''Makefile_tls'' delete ''/DHAVE_OPENSSL_WITH_PSK''. i.e. find <code>

CFLAGS = $(CFLAGS) /DHAVE_OPENSSL /DHAVE_OPENSSL_WITH_PSK</code>
然后用
CFLAGS = $(CFLAGS) /DHAVE_OPENSSL
進行替換

* In ''Makefile_common.inc'' add ''/NODEFAULTLIB:LIBCMT'' i.e. find <code>

/MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DYNAMICBASE /PDB:$(TARGETDIR)\$(TARGETNAME).pdb</code>
然后用
/MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DYNAMICBASE:NO /PDB:$(TARGETDIR)\$(TARGETNAME).pdb /NODEFAULTLIB:LIBCMT
進行替換

三、在Windows中構(gòu)建Zabbix agent 2

1. 概述

本節(jié)將演示如何從源代碼構(gòu)建Zabbix agent 2 (Windows)。

2. 安裝MinGW編譯器

  • 下載帶有SJLJ (設(shè)置跳轉(zhuǎn)/長跳轉(zhuǎn)) 異常處理和窗口線程的MinGW-w64 (例如 x86_64-8.1.0-release-win32-sjlj-rt_v6-rev0.7z)
  • 提取并移動到 c:\mingw
  • 設(shè)置環(huán)境變量
  • @echo offset PATH=%PATH%;c:\mingw\bincmd

    編譯時使用Windows提示符代替MinGW提供的MSYS終端。

    3. 編譯 PCRE 開發(fā)庫

    以下說明將編譯并安裝c:\dev\pcre中的64位PCRE 庫和c:\dev\pcre32 的32位庫:

  • 從 pcre.org(http://ftp.pcre.org/pub/pcre/) 下載PCRE 8.XX 版本庫,然后提取
  • 打開 cmd 并導(dǎo)航到提取的源
  • 構(gòu)建64位 PCRE

  • 刪除就配置/緩存(如果有):
  • del CMakeCache.txtrmdir /q /s CMakeFiles
  • 運行 cmake (CMake 可從這里安裝https://cmake.org/download/):
  • cmake -G "MinGW Makefiles" -DCMAKE_C_COMPILER=gcc -DCMAKE_C_FLAGS="-O2 -g" -DCMAKE_CXX_FLAGS="-O2 -g" -DCMAKE_INSTALL_PREFIX=c:\dev\pcre
  • 接下來,運行:
  • mingw32-make clean mingw32-make install

    構(gòu)建32位PCRE

  • 運行:
  • mingw32-make clean
  • 刪除 CMakeCache.txt:
  • del CMakeCache.txtrmdir /q /s CMakeFiles
  • 運行cmake:
  • cmake -G "MinGW Makefiles" -DCMAKE_C_COMPILER=gcc -DCMAKE_C_FLAGS="-m32 -O2 -g" -DCMAKE_CXX_FLAGS="-m32 -O2 -g" -DCMAKE_EXE_LINKER_FLAGS="-Wl,-mi386pe" -DCMAKE_INSTALL_PREFIX=c:\dev\pcre32
  • 接下來,運行:
  • mingw32-make install

    安裝OpenSSL開發(fā)庫

  • 從 https://curl.se/windows/下載32和64位版本
  • 相應(yīng)地將文件提取到c:\dev\openssl32 和c:\dev\openssl。
  • 然后刪除提取的**.dll.a* (dll call wrapper libraries) ,因為MinGW在靜態(tài)庫前會優(yōu)先考慮它們。
    編譯Zabbix agent 2
    32位
    打開 MinGW 環(huán)境(Windows命令提示符)并導(dǎo)航至Zabbix源樹中的build/mingw 目錄。
    運行:
  • mingw32-make clean mingw32-make ARCH=x86 PCRE=c:\dev\pcre32 OPENSSL=c:\dev\openssl32

    64位
    打開MinGW環(huán)境(Windows命令提示符)并導(dǎo)航至Zabbix源樹目錄中的build/mingw。
    運行:

    mingw32-make clean mingw32-make PCRE=c:\dev\pcre OPENSSL=c:\dev\openssl

    32和64位 版本都可以構(gòu)建在64位的平臺上,但是32位平臺只能構(gòu)建32位版本。 在32位平臺上運行時,請遵循64位版本在64位平臺上運行的步驟。


    排版: 何鵬輝
    初審: 玩具熊
    復(fù)審: 二月二

    本篇教程來源樂維社區(qū)|專注IT運維技術(shù)分享樂維社區(qū)|專注IT運維技術(shù)分享,經(jīng)本工作室二次編輯,如有侵權(quán),請聯(lián)系我們。
    參考資料:
    1.在 macOS 上構(gòu)建 Zabbix agent
    2.在Windows上構(gòu)建Zabbix agent
    3.在Windows中構(gòu)建Zabbix agent 2

    總結(jié)

    以上是生活随笔為你收集整理的zabbix6.0安装教程(四):构建 Zabbix agent的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。