0x01 前言
一些公有云服务商或使用VMware vCloud等私有化云平台可以使用模版建立虚拟机,并且启动时可以根据定义的信息自动修改系统参数,比如这篇文章里需要用到的Hostname。
在实际使用中会遇到安装zabbix agent用于系统状态监控的情况,当量少的时候还可以手动部署安装,量大的时候这就成为影响工作效率的一个严重问题。
所以提供一个全自动或半自动解决方案是有必要的。
0x02 准备
首先,从很久以前的版本开始,zabbix agent就已经有msi安装包,而这个安装包可以为我们提供安装上的便利,关于它的一些文档请留意以下地址:
在文档的底部可以看到支持的参数与简单的安装方式:
还需要准备msi安装包,建议使用最新的安装包,我们可以从以下地址找到:
建议使用包含OpenSSL的版本,当需要配置证书加密时不再需要重新安装。
0x03 Batch
我平常很少使用Windows Batch,但这次用起来感觉不错,以下是全部内容:
:: 设置变量,安装目录 SET INSTALLFOLDER=C:\Software\ZabbixAgent :: 设置变量,获取Hostname SET HOSTNAME=%computername% :: 执行msi,/qn 意为:静默模式,部署出任何内容或打开任何窗口 :: 末尾的 ^ 与Shell中的 \ 类似,用于换行 msiexec /i C:\Software\tmp\ZabbixOrigin\zabbix_agent.msi /qn^ LOGTYPE=file^ LOGFILE="%INSTALLFOLDER%\ZabbixAgent.log"^ ENABLEREMOTECOMMANDS=1^ SERVER=zbx.ngx.hk^ LISTENPORT=10050^ SERVERACTIVE=zbx.ngx.hk^ HOSTNAME=%HOSTNAME%^ TLSCONNECT=cert^ TLSACCEPT=cert^ TLSCAFILE="C:\Software\ZabbixAgent\ssl\ca.crt"^ TLSCERTFILE="C:\Software\ZabbixAgent\ssl\agent.crt"^ TLSKEYFILE="C:\Software\ZabbixAgent\ssl\agent.key"^ ENABLEPATH=1^ INSTALLFOLDER="%INSTALLFOLDER%"
而Zabbix agent的变量请留意以下页面:
脚本内容非常简单,如果希望安装完成后删除安装目录和脚本,可以再加一行:
rmdir C:\Software\tmp\ZabbixOrigin /S /Q
但该脚本没有检测安装结果和检测服务状态的部分,如果有需要,请自行编写。
0x04 使用
首先,脚本中任何变量或参数都可以随意修改,依我的习惯,我会在C盘下创建一个名为Software的文件夹并将自行安装的软件放置其中。而安装包的完整路径为:
C:\Software\tmp\ZabbixOrigin\zabbix_agent.msi
可以看到有个tmp的目录,也就是说它是临时的,安装完成后可以删除。
首先按脚本中的内容创建相关目录并将zabbix agent msi安装包放置到指定位置,再将脚本内容都写入到一个txt文本文档中,保存后将后缀改为bat或cmd,最后双击即可。
但需要注意的是,如果有配置TLS加密,则需要将证书先放置到指定位置,否则安装后尝试启动服务时会失败,而且不会有任何提示。
待cmd窗口自动关闭后即可打开任务管理器查看zabbix agent服务的运行情况:
上图仅用于展示,如果一切正常,那么默认是处于正在运行的状态。如果发现安装完成后无法启动,请检查zabbix agent的日志。
0x05 结语
第一次使用Batch,因为目前接触的windows环境比较多,接下来Batch也是一个学习方向,另外还要学习PowerShell。