哈哈
社区投稿专栏Z-share
All the great stories~
白
1
支持Windows2000的Zabbix agent 3.4.4
文| 齐天大圣
由于windows 2000 x86系统目前已经不在官方Zabbix的支持范围。我这里有少数Windows2000的机器,基于自己的经验,把编译的过程写出来分享给大家。
最近有一些监控服务器是windows系统的,因此着手开始编译zabbix agent for windows。
下载了zabbix-3.4.4.tar.gz,对接windows2008,Windows2012没有问题,发现官方版本是用visualstudio2008编译的。搭建了一个虚拟机,Windows 2003 x64,体积比较小,用visualstudio2008 加上windows sdk 7.0。环境搭好了,zabbix agent的编译可以进行了 。
整合相关的资源:
博文分享
Compiling Zabbix Agent on Windows
文中作者建议在resource.rc 文件中用"windows.h" 替换"afxres.h"。
Zabbix论坛相关的讨论
How to compile the windows agent?
其他建议
也有人建议按照示例安装Microsoft Windows SDK,agent需要afxres.h和winres.h来构建,SDK在默认情况下不具有这些headers。 要解决这个问题,请转到examples目录,拿到这些headers文件并将它们复制到SDK的主目录中。在SDK命令提示符处,从svn checkout转到目录build \ win32 \ project。 键入“nmake / f Makefile_agent”,构建代理二进制文件。 同样,您可以使用zabbix_get和zabbix_sender
Zabbix原厂培训师Oleksiy Zagorsky对于此问题的一些建议:
Zabbix3.0之后,Windows Agent编译发生了一些变化:
如果编译环境(fox x86 和 x64都是不同的)搭建顺利,直接发布命令nmake就可以。
注意- nmake不用再指定生成文件,所有的组建自动生成。
FYI-ZBX-10120要求重新构建“build”文件夹,以便增加用户友好性,如果进行这个操作的话,下面的指令会有一些不同的路径。
目前的指示是:安装Windows SDK。 不需要安装最新版本,建议:
Windows SDK for Windows 7(点击下载)
只需要几个组件。 在"Developer Tools"部分只需要选择"Windows Headers and Libraries","Visual C++ Compilers","Windows Development Tools":
例如提取zabbix源文件夹至C:\zabbix-3.0.0
然后运行cmd并在打开的窗口中执行:
cmd.exe /E:ON /V:ON /K "C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\SetEnv.Cmd" /x86 /xp
Window标题应该成为“Microsoft Windows XP x86 DEBUG Build Environment”
请注意,路径取决于安装的Windows SDK版本,上述路径实际为“Windows SDK for Windows 7”
如果要为x64平台构建可执行文件,请在第一个命令中用/ x64替换/ x86
然后去一个特定的zabbix源文件夹并编译:
cd C:\zabbix-3.0.0\build\win32\project nmake
编译的可执行文件应出现在主源文件夹的bin文件夹中。
如此一来,编译x64,x86的zabbixagent都不成问题。
让32位的zabbix_agentd 到windows 2000 下运行,弹出以下对话框:
参考链接:
Windows Agent incompatible with Windows 2000
进行了类似下图的patch
再次运行时,又出现了一下提示:
说函数GetNativeSystemInfo在kernel32.dll中不存在。
我用notepad++查询了该函数的使用,如下图,做了一些调整之后,例如修改为GetSystemInfo,或者注释掉一些无关语句,最后编译成功。
主要修改了以下文件:
该程序还可能需要进行测试。
文件大小: