zabbix客户端软件安装配置(Windows操作系统)

1、手工安装zabbix客户端

(1)下载Windows的zabbix客户端

从官方下载Zabbix Agent后,压缩包里面有2个目录,一个为win32,另一个是win64,每个目录下应该有3个文件,分别为:zabbix_agentd.exe zabbix_get.exe zabbix_sender.exe

根据操作系统不同,将文件放在c:\zabbix目录下

(2)添加客户端zabbix_agentd,conf文件

在c:\zabbix文件夹中新建zabbix_agentd.conf文件,写入如下基本内容:

LogFile=c:\zabbix\zabbix_agentd.log

PidFile=c:\zabbix\zabbix_agentd.pid

Server=<服务端IP地址>

Hostname=<客户端主机名>


c.执行如下命令,把zabbix_agentd注册为windows服务。

C:Program Fileszabbix>zabbix_agentd --config "C:Program Fileszabbixzabbix_agentd.conf --install

d.启动zabbix_agentd服务

C:Program Fileszabbix>zabbix_agentd start

e.到windows的系统服务列表里面查看ZabbixAgent的状态,正常情况下你会看到ZabbixAgent已经存在在系统服务里,而且是自动启动。


(3)安装zabbix客户端并启动

进入到目标主机的c:\zabbix目录下,执行如下命令完成客户端的安装:

zabbix_agentd.exe –c c:\zabbix\zabbix_agentd.conf -i

执行如下命令,启动客户端:

zabbix_agentd.exe –c c:\zabbix\zabbix_agentd.conf –s

参数含义:

-c制定配置文件所在位置

-I是安装客户端

-s启动客户端

-x停止客户端

-d卸载客户端

2、自动化安装zabbix客户端

如果要为大量Windows服务器部署zabbix客户端可以通过写批处理文件来完成客户端的安装和启动。但是考虑到网卡流量的监控,就需要使用perl或python脚本来实现了。

我的perl自动化安装脚本见附件

下载安装ActiveState.Perl.Dev.Kit.Pro.v9.0,将perl程序生成exe可执行文件,放到c:\zabbix目录下。

clip_image002[3]

此外,我还写了一个Windows批处理脚本agentd.bat放在c:\zabbix目录下用来对客户端服务器上的zabbix_agentd进行安装、启动、停止、卸载。脚本内容如下:

@echo off

echo ****************************************

echo *****Zabbix Agentd Operation************

echo ****************************************

echo **a.startZabbix Agentd********

echo **b.stopZabbix Agentd********

echo **c.restartZabbix Agentd********

echo **d.installZabbix Agentd********

echo **e.uninstallZabbix Agentd********

echo ****************************************

choice /c:abcd /M [a]start,[b]stop,[c]install,[d]uninstall

if errorlevel 5 goto uninstall

if errorlevel 4 goto install

if errorlevel 3 goto restart

if errorlevel 2 goto stop

if errorlevel 1 goto start

:start

c:\zabbix\zabbix_agentd.exe -c c:\zabbix\zabbix_agentd.conf -s

goto end

:stop

c:\zabbix\zabbix_agentd.exe -c c:\zabbix\zabbix_agentd.conf -x

goto end

:restart

c:\zabbix\zabbix_agentd.exe -c c:\zabbix\zabbix_agentd.conf -x

c:\zabbix\zabbix_agentd.exe -c c:\zabbix\zabbix_agentd.conf -s

:install

c:\zabbix\zabbix_agentd.exe -c c:\zabbix\zabbix_agentd.conf -i

goto end

:uninstall

c:\zabbix\zabbix_agentd.exe -c c:\zabbix\zabbix_agentd.conf -d

goto end

:end

自动化安装包制作过程如下:

(1)选择需要打包的zabbix安装包文件(默认是放在C盘),右键选择“添加到压缩文件”

clip_image002[1]

(2)我用的是好压软件,在弹出的对话框中,压缩文件格式选择为7Z,压缩方式根据需求选择,我选择的是默认的标准。压缩选项中在“创建固实压缩文件”和“创建自解压格式压缩文件”前打钩。

clip_image004[1]

(3)进入自解压选项,选择解压选项卡,按照下图进行填写:

clip_image006[1]

(4) 之后点击确定,开始进行压缩。压缩完毕后生成自解压文件zabbix.exe

(5) 安装包解压安装,双击安装包,点击install即可完成软件的安装部署

clip_image008[1]


###############################



4.15 添加对Windows服务器的监控4.15.1为Windows模板添加自定义监控项

Zabbix能对Windows服务器进行监控,但是zabbix默认Windows监控模板并没有提供更多更好的监控项目。很多监控项目需要自己手工添加或是在zabbix.agentd,conf文件中进行自定义。

1、zabbix自定义监控Windows服务器的原理

Zabbix为Windows服务器的监控提供了PerfCounter(性能计数器)这个功能。Zabbix客户端通过PerfCounter获取Windows服务器上的相关性能信息,然后发送给服务器端。

2、如何获取Windows服务器的PerfCounter表达式

方法一:

在Windows服务器的控制面板-&gt;管理工具-&gt;性能的系统监视器中,可以看到这些性能监控。

clip_image002

点击添加计数器后,在弹出的添加计数器对话框中,可以在性能对象下拉菜单中选择相应的监控项目,然后在下面的列表中选择需要使用的计数器,在右边的里表中选择范例。点击添加。

clip_image004

添加后的计数器在下面列表中可以看到

clip_image006

在添加的计数器上面右键选择属性,在弹出的窗口中的数据选项卡中可以看到具体的perfCounter表达式

clip_image008

方法二:

进入开始-&gt;运行,输入CMD进入命令窗口。输入typeperf –qx| more 获取相关PerfCounter表达式。也可以配合管道输出给find,查找想要的相关表达式。以获取网卡PerfCounter为例,在命令行输入:typeperf –qx |find “Network Interface”|find /V “LoopBack”

clip_image010

命令的意思是,查找和“Network Interface”相关的PerfCounter。/V是忽略和”LoopBack”回环接口的PerfCounter

3、在zabbix中使用Perfcounter为Windows模板添加监控项

在zabbix中,使用PerfCounter的方法有两种:

方法一:

在模板添加监控项时使用perf_counter作为key表达式:

以添加CPU空闲时间监控为例:

系统配置-&gt;模板,选择Windows监控模板。进入监控项,点击右上角的Create Item,创建监控项,在key中添加PerfCounter相关的参数,然后在设置一下其他选项,保存即可。

clip_image012

方法二:

在客户端配置文件zabbix_agentd.conf文件中添加类似于Parameter自定义监控的PerfCounter参数。具体使用格式如下

PerfCounter=<监控项key表达式>,<性能计数器名称>

以添加网卡监控为例:

修改Windows服务器上的zabbix客户端配置文件zabbix_agentd.conf,添加通过typeperf-qx命令获取的和网卡相关信息

#Network

PerfCounter=NetAllInt0,"\Network Interface(Intel[R] PRO_1000 MT Network Connection)\Bytes Total/sec",30

PerfCounter=NetInInt0,"\Network Interface(Intel[R] PRO_1000 MT Network Connection)\Bytes Received/sec",30

PerfCounter=NetOutInt0,"\Network Interface(Intel[R] PRO_1000 MT Network Connection)\Bytes Sent/sec",30

PerfCounter=NetBandInt0,"\Network Interface(Intel[R] PRO_1000 MT Network Connection)\Current Bandwidth",30

4.15.2 Windows服务器网卡流量监控

方法一:

windows的key的关键字可以使用网卡的ip地址来替代。例如:net.if.out[192.168.101.1,bytes]

方法二:

如果更改了ip地址,上面的方法就不灵了。使用Macro能比较好的解决监控本地网卡的需求net.if.out[{IPADDRESS},bytes]

方法三:

Macro中的{IPADDRESS}只是获取主机的外网IP地址,对于多网卡的主机来说内网网卡就监控不到了。在客户端配置文件中使用PerfCounter可以解决这个问题。但每个机器的网卡型号不一定相同,因此typeperf的输出也不一样。我写了个perl脚本,来解决这个问题。

use strict;

use warnings;

#添加对网卡的监控

my @network=`typeperf -qx |find "Network Interface"|find /V "Loopback"|find "Bytes Total"`;

my $i=0;

foreach my $int (@network)

{

if($int=~ /^(\\Network Interface.*\\).*$/)

{

my $intname=($1);

open OUT_FILE, "&gt;&gt;c:\\zabbix\\zabbix_agentd.conf" or die("Could not write the file");

print OUT_FILE &lt;&lt;EOF;

#Network

PerfCounter=NetAllInt${i},"${intname}Bytes Total/sec",30

PerfCounter=NetInInt${i},"${intname}Bytes Received/sec",30

PerfCounter=NetOutInt${i},"${intname}Bytes Sent/sec",30

PerfCounter=NetBandInt${i},"${intname}Current Bandwidth",30

EOF

close(OUT_FILE);

$i++;

}

}

不同的windows服务器只要运行这个脚本,就可以根据服务器上网卡型号还有网卡数量,将监控写入到zabbix_agentd.conf配置文件中。


你可能感兴趣的:(windows)