准备工作

默认情况下,Zabbix官方包中没有包含TLS功能。

在开始编译之前要准备以下内容:

以下是下载好的文件:

VC、openssl和cmake下载后直接安装即可,但在安装cmake的时候要注意选择将path应用到所有用户:

Add CMake to system PATH for all users

而pcre和zabbix源码只用一次,可以解压到任意位置。为了在cmd窗口中输入更少的字符,放置在以下路径中:C:\temp

安装完VS后,在开始菜单中找到以下内容:

如果编译32位和64位的应用分别使用以下工具:

  • x32:VS2015 x86 Native Tools Command Prompt
  • x64:VS2015 x64 Native Tools Command Prompt

在这里使用64位的工具。

 编译

PCRE

先整合pcre,在pcre根目录中新建一个build文件夹并进入:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC>cd c:\temp\pcre-8.41
c:\temp\pcre-8.41>mkdir build 
c:\temp\pcre-8.41>cd build

先cmake:

c:\temp\pcre-8.41\build>cmake -G "Visual Studio 14 2015 Win64" -DPCRE_SUPPORT_UNICODE_PROPERTIES=ON -DPCRE_SUPPORT_UTF=ON -DCMAKE_C_FLAGS_RELEASE:string="/MT" ..

然后编译:

c:\temp\pcre-8.41\build>msbuild PCRE.sln /property:Configuration="Release"

最终结果只要没有错误即可,警告信息可以忽略。

修改文件

处理完pcre后进入zabbix源码目录,先修改以下文件:

C:\temp\zabbix-3.4.2\build\win32\project\resource.rc

将内容 #include "afxres.h修改为 #include "windows.h"

然后修改以下文件:

C:\temp\zabbix-3.4.2\build\win32\project\Makefile_sender_dll

将内容 ..\..\..\src\zabbix_sender\win32\zabbix_sender.o修改为 ..\..\..\src\zabbix_sender\zabbix_sender.o

编译agent

先进入相关文件夹:

C:\>cd C:\temp\zabbix-3.4.2\build\win32\project

然后运行nmake:

#64位
C:\temp\zabbix-3.4.2\build\win32\project>nmake CPU=AMD64 TLS=openssl TLSINCDIR="C:\OpenSSL-Win64\include" TLSLIBDIR="C:\OpenSSL-Win64\lib" PCREINCDIR="C:\temp\pcre-8.41" PCRELIBDIR="C:\temp\pcre-8.41\build\Release"
 
#32位
C:\temp\zabbix-3.4.2\build\win32\project>nmake CPU=i386 TLS=openssl TLSINCDIR="C:\OpenSSL-Win32\include" TLSLIBDIR="C:\OpenSSL-Win32\lib" PCREINCDIR="C:\temp\pcre-8.41" PCRELIBDIR="C:\temp\pcre-8.41\build\Release"

完成后即可在以下路径找到相关文件:C:\temp\zabbix-3.4.2\bin\win64

openssl

最后还需要将openssl的几个动态链接库复制到zabbix agent文件目录中:

  • C:\OpenSSL-Win64\bin\msvcr120.dll
  • C:\OpenSSL-Win64\libcrypto-1_1-x64.dll
  • C:\OpenSSL-Win64\libssl-1_1-x64.dll

完成后的文件如下:

至此,所有编译工作均已完成。现在只需要将win64这个文件夹放置需要使用zabbix监控的windows系统中即可。

使用

首先将win64这个文件夹重命名并放置到适当位置,我选择的路径如下:

#agent路径
C:\zabbix_agents\bin\win64\zabbix_agentd.exe
 
#配置文件路径
C:\zabbix_agents\conf\zabbix_agentd.conf
 
#TLS配置信息
TLSConnect=cert
TLSAccept=cert
TLSCAFile=C:\zabbix_agents\crt\ca.crt
TLSCertFile=C:\zabbix_agents\crt\win10.t.com.crt
TLSKeyFile=C:\zabbix_agents\crt\win10.t.com.key

如果你已经安装过zabbix agent服务,那么需要先删除旧的服务。以管理员权限打开CMD窗口并输入以下内容即可删除旧服务:

sc delete "Zabbix Agent"

然后通过以下命令重新安装:

c:\zabbix_agents\bin\win64\zabbix_agentd.exe --config c:\zabbix_agents\conf\zabbix_agentd.conf -i

然后放置数字证书到指定位置,再打开服务窗口启动服务:

参考文件

Windows Zabbix Agent Binary is not compiled with TLS Supporthttps://support.zabbix.com/browse/ZBXNEXT-3047?focusedCommentId=242351&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-242351

  • 无标签
写评论...