在Windows上编译安装Zabbix agent

概述

本节演示如何从包含或不包含TLS的源代码安装Zabbix agent二进制文件(Windows)

版本 zabbix-5.0.15

1.编译支持加密的Zabbix

为了支持加密,Zabbix必须编译并链接到受支持的加密库之一:

  • GnuTLS - 从版本3.1.18

  • OpenSSL - 版本1.0.1, 1.0.2, 1.1.0, 1.1.1

  • LibreSSL - 测试版本 2.7.4, 2.8.2:

  • LibreSSL 2.6.x 是不支持的

  • LibreSSL支持作为OpenSSL的兼容替代品; 新的’ tls_*() ‘ libressl特定的API函数没有被使用。使用LibreSSL编译的Zabbix组件将不能使用PSK,只能使用证书。 通过指定相应的选项来“configure”脚本来选择库:

通过指定“configure”脚本的选项来选择库:

  • –with-gnutls[=DIR]

  • –with-openssl[=DIR] (也用于LibreSSL)

例如:要用OpenSSL配置server和agent的源文件,你可以使用如下方法:

./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-openssl

不同的Zabbix组件可以使用不同的加密库进行编译 (例如,服务器上有OpenSSL,代理上有GnuTLS)。

注意:如果您计划使用预共享密钥(PSK),请考虑在使用PSK的Zabbix组件中使用GnuTLS或OpenSSL 1.1.0(或更新)库。

  • GnuTLS和OpenSSL 1.1.0库 支持PSK密码套件 向前兼容密码.

  • OpenSSL库的旧版本(1.0.1,1.0.2c)也支持PSK,但可用的PSK密码套件不支持向前兼容密码。

安装相关依赖组件

1.安装OpenSSL

注意:对于较早的OpenSSL版本(1.0.1,1.0.2,1.1.0),对于LibreSSL和如果在没有PSK支持的情况下编译OpenSSL,默认值是不同的。

1.1.下载安装包进行安装

1.1.1.下载安装包

Window 的openssl的安装包下载地址:http://slproweb.com/products/Win32OpenSSL.html

http://slproweb.com/download/Win64OpenSSL-1_1_1s.msi

注:这里使用OpenSSL 1.1.1,带Light的版本包含最常用的基本功能,如需全功能请安装不带Light的版本

1.1.2.双击安装

默认安装,最后完成时候有个捐款,直接取消,点击finish即可。

1.1.3.添加环境变量

找到安装openssl的位置,如C:\Program Files\OpenSSL-Win64\bin,在系统变量中Path变量后点击编辑
在这里插入图片描述

1.4 验证

F:\zabbix-5.0.15\build\win32\project>Openssl version
OpenSSL 1.1.1s  1 Nov 2022

1.2.官网下载编译安装

本过程需要先安装perl、vs等软件,然后才能编译openssl

2.编译PCRE

2.1.下载源码并解压缩

2.1.1.下载源码

从pcre.org 8.XX版下载PCRE库(自Zabbix 4.0起为强制性库):https://sourceforge.net/projects/pcre/files/pcre/8.41/

注:不是pcre2

2.1.2. 提取到目录 F:\pcre-8.41

2.2.使用cmake-gui 构建

2.2.1.下载Cmake

从https://cmake.org/download/安装CMake,在安装过程中选择:并确保cmake\bin在您的路径上(经过测试的版本3.9.4)

2.2.2.执行Configure和Generate

打开命令行窗口,例如 VS 2017的x64本机工具命令提示符,并从该Shell环境运行cmake-gui。 不要尝试从Windows“开始”菜单启动Cmake,因为这可能会导致错误

  1. 输入 E:\pcre-8.41 和 E:\pcre-8.41\build 作为源目录,点击“Configure”按钮

  2. 选择对应的IDE/build工具,为该项目指定生成器时,选择“ NMake Makefiles”

在这里插入图片描述

在这里插入图片描述

  1. GUI将列出几个配置选项。 确保选择以下选项:

  2. PCRE_SUPPORT_UNICODE_PROPERTIES ON

  3. PCRE_SUPPORT_UTF ON、

  4. CMAKE_BUILD_TYPE Release
    在这里插入图片描述

  5. CMAKE_INSTALL_PREFIX F:\pcre-8.41-install

    在这里插入图片描述

  6. 再次点击“Configure”。 相邻的“Generate”按钮现在应该处于active状态。此时点击“Generate”

注:如果发生错误,建议您在尝试重复CMake构建过程之前删除CMake缓存。 在CMake GUI中,可以通过选择“File > Delete Cache”来删除缓存

2.3.使用nmake执行install

  1. 现在,构建目录应该包含一个可用的构建系统-Makefile
F:\pcre-8.41\build>dir
驱动器 F 中的卷没有标签。
卷的序列号是 A65F-86F2
F:\pcre-8.41\build 的目录
2022/12/17  11:40    <DIR>          .
2022/12/17  11:39    <DIR>          ..
2022/12/17  11:40            19,101 CMakeCache.txt
2022/12/17  11:40    <DIR>          CMakeFiles
2022/12/17  11:40             8,804 cmake_install.cmake
2022/12/17  11:40             1,389 config.h
2022/12/17  11:40               157 CTestCustom.ctest
2022/12/17  11:40               565 CTestTestfile.cmake
2022/12/17  11:40            37,223 Makefile
2022/12/17  11:39            32,383 pcre.h
2022/12/17  11:39             6,957 pcrecpparg.h
2022/12/17  11:39             7,848 pcre_chartables.c
2022/12/17  11:40               219 pcre_grep_test.sh
2022/12/17  11:39             6,492 pcre_stringpiece.h
2022/12/17  11:40               330 pcre_test.bat
2022/12/17  11:40               173 pcre_test.sh
13 个文件        121,641 字节
3 个目录 49,290,637,312 可用字节
  1. 打开命令行窗口,例如 VS 2017的x64本机工具命令提示符,运行NMake命令:
F:\pcre-8.41\build>nmake install

Microsoft (R) 程序维护实用工具 14.16.27048.0 版
版权所有 (C) Microsoft Corporation。  保留所有权利。

Scanning dependencies of target pcre
[  2%] Building C object CMakeFiles/pcre.dir/pcre_byte_order.c.obj
.......

编译zabbix_get,zabbix_sender和zabbix_agent

1.下载下载源代码并解压缩

1.1. 在Linux机器上,检查GIT的来源:

注:如果确定源码没有什么问题,该步骤可以跳过

$ git clone https://git.zabbix.com/scm/zbx/zabbix.git 
$ cd zabbix/ 
$ git checkout 5.0.1 -b 5.0.1 # replace 5.0.1 with the latest release available 
$ ./bootstrap.sh 
$ ./configure --enable-agent --enable-ipv6 --prefix=`pwd` 
$ make dbschema 
$ make dist

1.2.解压到指定路径

Windows机器上为zabbix-5.0.0.tar.gz,解压源代码路径:E:\zabbix-5.0.15

2.使用OpenSSL编译Zabbix

打开命令行窗口,例如 VS 2017 RC的x64本机工具命令提示符。转到 F:\zabbix-5.0.15\build\win32\project,

以下步骤将帮助您从MS Windows 11(64位)上的源代码编译Zabbix。 当使用/不支持TLS编译Zabbix时,唯一的不同是在步骤4中

2.1.不使用TLS:

2.1.1.生成zabbix_get,zabbix_sender和zabbix_agent
F:\zabbix-5.0.15\build\win32\project>nmake /K PCREINCDIR=F:\pcre-8.41-install\include PCRELIBDIR=F:\pcre-8.41-install\lib
2.1.2.清理生成
F:\zabbix-5.0.15\build\win32\project> nmake clean /K PCREINCDIR=F:\pcre-8.41-install\include PCRELIBDIR=F:\pcre-8.41-install\lib

2.2.使用TLS:

2.2.1.生成zabbix_get,zabbix_sender和zabbix_agent
#独立生成 sender_dll
F:\zabbix-5.0.15\build\win32\project>nmake /K -f Makefile_sender_dll TLS=openssl TLSINCDIR="C:\Program Files\OpenSSL-Win64\include" TLSLIBDIR="C:\Program Files\OpenSSL-Win64\lib" PCREINCDIR=F:\pcre-8.41-install\include PCRELIBDIR=F:\pcre-8.41-install\lib
#逐一生成 get,sender,agent
F:\zabbix-5.0.15\build\win32\project>nmake /K -f Makefile_get TLS=openssl TLSINCDIR="C:\Program Files\OpenSSL-Win64\include"  TLSLIBDIR="C:\Program Files\OpenSSL-Win64\lib" PCREINCDIR=F:\pcre-8.41-install\include PCRELIBDIR=F:\pcre-8.41-install\lib
F:\zabbix-5.0.15\build\win32\project>nmake /K -f Makefile_sender TLS=openssl TLSINCDIR="C:\Program Files\OpenSSL-Win64\include" TLSLIBDIR="C:\Program Files\OpenSSL-Win64\lib" PCREINCDIR=F:\pcre-8.41-install\include PCRELIBDIR=F:\pcre-8.41-install\lib
F:\zabbix-5.0.15\build\win32\project>nmake /K -f Makefile_agent TLS=openssl TLSINCDIR="C:\Program Files\OpenSSL-Win64\include" TLSLIBDIR="C:\Program Files\OpenSSL-Win64\lib" PCREINCDIR=F:\pcre-8.41-install\include PCRELIBDIR=F:\pcre-8.41-install\lib
# 一次性生成
F:\zabbix-5.0.15\build\win32\project>nmake /K TLS=openssl TLSINCDIR="C:\Program Files\OpenSSL-Win64\include" TLSLIBDIR="C:\Program Files\OpenSSL-Win64\lib" PCREINCDIR=F:\pcre-8.41-install\include PCRELIBDIR=F:\pcre-8.41-install\lib
2.2.2.清理生成
F:\zabbix-5.0.15\build\win32\project>nmake clean /K TLS=openssl TLSINCDIR="C:\Program Files\OpenSSL-Win64\include" TLSLIBDIR="C:\Program Files\OpenSSL-Win64\lib" PCREINCDIR=F:\pcre-8.41-install\include PCRELIBDIR=F:\pcre-8.41-install\lib

2.3.查看编译结果

新的二进制文件位于F:\zabbix-5.0.15\bin中。 由于OpenSSL是使用“ no-shared”选项编译的,因此Zabbix二进制文件本身包含OpenSSL,并且可以将其复制到其他没有OpenSSL的计算机上

F:\zabbix-5.0.15\bin\win64>dir /S/B
F:\zabbix-5.0.15\bin\win64\dev
F:\zabbix-5.0.15\bin\win64\zabbix_agentd.exe
F:\zabbix-5.0.15\bin\win64\zabbix_agentd.pdb
F:\zabbix-5.0.15\bin\win64\zabbix_get.exe
F:\zabbix-5.0.15\bin\win64\zabbix_sender.exe
F:\zabbix-5.0.15\bin\win64\dev\zabbix_sender.dll
F:\zabbix-5.0.15\bin\win64\dev\zabbix_sender.h
F:\zabbix-5.0.15\bin\win64\dev\zabbix_sender.lib

3.使用LibreSSL编译Zabbix

该过程类似于使用OpenSSL进行编译,但是您需要对 build\win32\project 目录中的文件进行一些小的更改:

在“Makefile_tls.inc”文件中删除“/DHAVE_OPENSSL_WITH_PSK”,

CFLAGS = $(CFLAGS) /DHAVE_OPENSSL /DHAVE_OPENSSL_WITH_PSK #位于13行
修改成
CFLAGS = $(CFLAGS) /DHAVE_OPENSSL

在“Makefile_common.inc” add “/NODEFAULTLIB:LIBCMT”

/MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DYNAMICBASE:NO /PDB:$(TARGETDIR)\$(TARGETNAME).pdb #位于37行
修改成
/MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DYNAMICBASE:NO /PDB:$(TARGETDIR)\$(TARGETNAME).pdb /NODEFAULTLIB:LIBCMT

安装Agent到window服务,

1. 执行安装命令 :

F:\zabbix-5.0.15\bin\win64>zabbix_agentd.exe -c C:\zabbix_agent\conf\zabbix_agentd.win.conf   -i
zabbix_agentd.exe [3828]: service [Zabbix Agent] installed successfully
zabbix_agentd.exe [3828]: event source [Zabbix Agent] installed successfully
 

2. 运行测试

安装成功后,执行运行命令:

F:\zabbix-5.0.15\bin\win64>zabbix_agentd.exe -c C:\zabbix_agent\conf\zabbix_agentd.win.conf   -s
zabbix_agentd.exe [26004]: service [Zabbix Agent] started successfully

注意:如果执行CMD不是用管理员权限打开,看下以下信息,代表代安装成功

3.检查服务列表,看是否安装成功!

在这里插入图片描述

4.查看端口是否在处理监听状态

F:\zabbix-5.0.15\bin\win64>netstat -an | find "100"
  TCP    0.0.0.0:10050          0.0.0.0:0              LISTENING
  TCP    [::]:10050             [::]:0                 LISTENING

卸载安装

F:\zabbix-5.0.15\bin\win64>zabbix_agentd.exe -c C:\zabbix_agent\conf\zabbix_agentd.win.conf   -d
zabbix_agentd.exe [34180]: service [Zabbix Agent] uninstalled successfully
zabbix_agentd.exe [34180]: event source [Zabbix Agent] uninstalled successfully
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值