ZABBIX全栈级监控实践——(三)Windows自动化部署


《ZABBIX全栈级监控实践》系列将由浅入深探讨如何实现ZABBIX全栈级别的监控。

本文是《ZABBIX全栈级监控实践》的第三篇:主要讨论使用Windows组策略部署Zabbix Agent。


一、概述

如果您的环境中已经有成熟的配置管理工具,可以基于这些工具去实现。本文中所使用的通过组策略的部署方案更适合于没有Windows平台批量配置管理工具的场景。

正如第一篇中所说,越来越多的公司和企业的IT基础架构使用了多平台。最普遍的一种情况就是一个企业内部会同时使用Windows和Linux操作系统。

对于Linux而言,一般通过Puppet,SaltStack等配置管理工具实现Zabbix Agent的批量部署。

对于Windows而言,也可以使用此类配置管理工具,但存在一定的局限性,主要有下列几个问题:

1、对于Windows平台,Linux的配置管理工具的兼容性或功能不够完善。如Puppet之类的配置管理工具,虽然官方支持Windows平台,但调用Windows平台接口较少,实现Windows配置管理难度较大。

2、部署配置管理工具的Agent也是一个问题。为了部署Zabbix Agent,需要先部署配置管理的Agent。就好比你饿了,想吃点啥,结果得先让你造个厨房,雇个厨师给你做饭。为何不直接点个外卖呢:-)

事实上,Windows平台自带了一个非常强大的配置管理工具——组策略。通过组策略,即可完成Zabbix Agent在Windows平台上的批量部署。

二、实现思路

我们如何将大象放进冰箱?

第一步:开冰箱门。

第二步:把大象放进去。

第三步:把冰箱门关上。

我们如何部署Zabbix Agent?

第一步:将部署文件copy到客户端。

第二步:通过脚本生成配置文件,安装Zabbix Agent。

第三步:启动Zabbix Agent。


三、通过组策略部署Zabbix Agent

在此,将以Windows Server 2016域控为测试环境,通过组策略部署Zabbix Agent。特别说明的一点,Windows 2008、2012等服务器的操作方式也相同。对于部署Zabbix Agent的客户端,要求为Windows 2008及以后的服务器版本,Windows 7 及以后的客户端版本。

首先我们需要准备好Zabbix安装文件,对应的Windows安装文件可以从这个下载页面下载。选择对应版本的Zabbix pre-compiled agents(Windows All)。解压缩预编译Agent文件包后,应该可以看到这些文件

这里我们要用到的是zabbix_agentd.exe这个文件(注意区分32位和64位的版本),配置文件zabbix_agentd.win.conf后续通过脚本自动生成。


以下是具体的实现步骤:

1)在域控制器上,访问域的SYS VOL下的scripts文件夹,在本环境中,域名为sc.local,对应的文件夹为


2)新建一个Zabbix目录,并将对应版本的zabbix_agentd.exe文件复制到Zabbix目录下


3)在域控制器的运行中,输入gpmc.msc,上打开“组策略管理”。


4)新建一条叫做“Deploy Zabbix Agent”的组策略对象

5)编辑这个对象,浏览到“Computer Configuration"->"Preferences"->"Windows Settings"->“Files"中。


6)在右侧单击右键,选择”New" -> “File”,“Source file”选择刚才放入的Zabbix_agentd.exe文件,“Destination File"选择C:\Zabbix\zabbix_agentd.exe。域控制器将会将zabbix_agentd.exe下发到挂载该策略的计算机的该路径下。

7)另外,我们在这个路径下,新建一个叫install.bat的文件,采用同样方式进行下发,最终的配置结果如下:

8)在此,我们要编辑这个install.bat,用它来生成配置文件及启动Zabbix Agent服务,以下是这个文件的代码示例,可根据实际情况进行更改:

echo #create_by_shawncai_20170701 > C:\Zabbix\Zabbix_agentd.win.conf

echo #Zabbix Agent Auto-Install Script V1.0 >>C:\Zabbix\Zabbix_agentd.win.conf

echo #start_writing_conf >>C:\Zabbix\Zabbix_agentd.win.conf


::NETWORK1/PROXY1

ipconfig /all | findstr /i "ipv4" | findstr /i "192\.168\.1\." >nul 2>nul && set SERVER=192.168.1.1


::NETWORK2/PROXY2

ipconfig /all | findstr /i "ipv4" | findstr /i "172\.168\.6[4-9]\." >nul 2>nul && set SERVER=172.168.1.1

ipconfig /all | findstr /i "ipv4" | findstr /i "172\.168\.7[0-9]\." >nul 2>nul && set SERVER=172.168.1.1

ipconfig /all | findstr /i "ipv4" | findstr /i "172\.168\.8[0-5]\." >nul 2>nul && set SERVER=172.168.1.1


echo SERVER=%SERVER% >>C:\zabbix\zabbix_agentd.win.conf

echo SERVERActive=%SERVER%:10051 >>C:\zabbix\zabbix_agentd.win.conf

echo LogFile=C:\zabbix\zabbix_agent.log >>C:\zabbix\zabbix_agentd.win.conf

echo #end_writing_conf >>C:\zabbix\zabbix_agentd.win.conf


C:\zabbix\zabbix_agentd.exe -c C:\Zabbix\Zabbix_agent.win.conf --install


net.exe start "Zabbix Agent"

这个脚本的好处在于针对于不同的网络地址,可以使用同一个脚本,根据主机的IP,指向对应的Zabbix Proxy或者Server。代码中客户端的IP如果在192.168.1.0/24中,那么Agent指向了192.168.1.1这个Proxy;如果在172.168.64.0/24 - 172.168.85.0/24中,则Agent指向了172.168.1.1这个Proxy。

这个脚本非常适合于跨多个网段,存在多个Proxy的Agent的统一部署!

9)文件都准备好了,这个策略也会将相关文件下发给客户端。那么下一步就是要启动这个安装脚本。

在同一个域策略(也可以单独再新建一个,但记得要挂载该策略),浏览到“Computer Configuration"->"Preferences"->"Control Panel Settings"->“Scheduled Tasks”,如下图:

10)在右侧单击右键,选择"New" ->Immediate Task(At least Windows 7),按示例配置,并根据实际情况进行调整。




这里有几个细节需要注意:

首先,建议使用Windows内建的SYSTEW账户进行安装,且无论用户登录与否都执行该计划任务。

其次,在Configure for中选择合适的操作系统版本。

最后,为了避免计划任务失败导致的一些问题,务必勾选停止任务的选项。


如此一来,域策略配置操作完成。将这个GPO挂在到对应的OU下,即可生效。


四、验证Zabbix Agent部署

等待一段时间(取决于成员服务器和域控制器的通信时间),或者直接在Windows的cmd中运行

gpupdate /force

以便立即同步组策略。可以在需要监控的计算机上发现C:\下生成了一些文件:


同时,在Windows服务(services.msc)中,发现一个名为“Zabbix Agent"的服务处于启动状态。

至此,Zabbix Agent在Windows上的部署完毕。

五、常见问题FAQ

由于系统网络等各方面的差异,上述部署过程在某些环境下可能会失败,以下是一些常见的问题。

Q1:发现无法下发Zabbix的安装文件或者安装脚本?

A1:请确保要下发的计算机可以访问上文中提到的Source File源文件路径。一般这个问题可能是网络不通(防火墙),或者用户访问权限不够导致的。建议放在域控制器的SYS VOL的SCRIPTS下,因为这个文件夹默认可以被所有的成员服务器访问。

Q2:发现无法下发计划任务?

A2:请确认计划任务中选择的对应的操作系统。比较老的操作系统(如windows 2000)不支持这种方式。

Q3:计划任务下发了,但未执行?

A3:确认执行计划任务得用户有足够权限。建议使用SYSTEM用户,因为Windows中的SYSTEM用户有高权限去安装和部署Zabbix Agent。如果处于安全目的考虑,使用其他账户,请确认执行账户拥有相应权限,同时账户没有锁定或者过期。

Q4:生成的配置文件为什么只有几行?源代码中不是有好几页吗?

A4:是的,自动生成的配置文件,仅仅保留了必要的参数(如Server,ServerActive等)。其他的参数(如debug level等)保持Zabbix默认设置,如需要个性化配置,可以根据需要自行使用下列方式添加到配置文件中。

echo XXXX=XXXX >>C:\Zabbix\Zabbix_agentd.win.conf

注意:一定是两个右尖括号">>",两个为续写,一个”>"为覆盖。

Q5:部署完后,还是无法在Zabbix Web端配置Agent?

A5:1,检查配置文件,查看指向的Proxy或者Server是否正确;2,检查网络,使用telnet方式检测客户端和服务器的链路是否已经打通。

六、总结

本文介绍了如何通过Windows组策略进行Zabbix Agent的部署。

这个方法的优势在于可以对客户端全自动化无感知的安装部署Zabbix Agent。但是,需要对Windows活动目录和组策略技术有深入了解。

题外话,Windows的组策略是Windows平台上非常好的配置管理工具,从文件下发、参数配置修改,无所不能。在没有微软SCCM的环境下,可以多了解组策略技术以实现快速部署和交付。

文中罗列了一些常见问题,如有其他问题,可以在本文后留言或者Email我的邮箱caixianghua@gmail.com,我会抽空进行解答。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容