zabbix基本架构:
1.Server
zabbix系统核心进程,轮询并捕获数据、发送通知等。是zabbix agent和zabbix proxy汇报数据的对象。server自身可远程检测网络服务。所有的前后端配置、统计信息、可 *** 作数据存储于此。包含server、前段界面和后端DB几部分。
2.Agent
部署在被监控主机上用于监控本地资源和应用并向zabbix server汇报结果。使用本地系统调用故非常高效。有主动和被动两种检测模式。被动模式下agent根据server或proxy的具体请求来返回数据。主动模式下先主动由server获取监控项列表在检测并返回新的数据。采用主动或被动检测取决于相应监控项的配置。
3.Proxy
可以自由选择部署或者不部署,主要用于分担server的负载。在集中化监控远程位置、分支、网络的场景中是很好的解决方案。可从被监控设备收集数据缓存在proxy本地后传递给其所属的zabbix server。proxy需要单独的数据库
最近一直在研究Zabbix监控Windows机器,涉及到如何快速安装agent,如何修改和完善windows监控模板等等。想把自己的经验给大家分享一下,希望对大家有所帮助。1)安装agent客户端
首先分享一下用bat写的自动化安装Windows机器的agentd安装脚本。
@echo off
color fd
cd \
#IP from Zabbix Server or proxy where data should be send to.
Set zabbix_server_ip=IP
echo Creating zabbix install dir
mkdir c:\zabbix
mkdir c:\zabbix\conf
mkdir c:\zabbix\bin
mkdir c:\zabbix\log
mkdir c:\zabbix\install_file
echo Copying Zabbix install file
xcopy \\共享服务器IP\Share\zabbix_agents_2.2.1.win c:\zabbix\install_file /s
copy /y C:\zabbix\install_file\conf\zabbix_agentd.win.conf C:\zabbix\conf\
echo Modiy zabbix configuration files
echo LogFile=c:\zabbix\log\zabbix_agentd.log >>C:\zabbix\conf\zabbix_agentd.win.conf
echo Server=%zabbix_server_ip% >>C:\zabbix\conf\zabbix_agentd.win.conf
echo Hostname=%COMPUTERNAME% >>C:\zabbix\conf\zabbix_agentd.win.conf
echo StartAgents=10 >>C:\zabbix\conf\zabbix_agentd.win.conf
echo Timeout=30 >>C:\zabbix\conf\zabbix_agentd.win.conf
echo
echo Copy zabbix start-up file
if %processor_architecture% EQU x86 copy /y C:\zabbix\install_file\bin\win32 C:\zabbix\bin\
if %processor_architecture% EQU AMD64 copy /y C:\zabbix\install_file\bin\win64 C:\zabbix\bin\
echo start zabbix servic
C:\zabbix\bin\zabbix_agentd.exe -i -c C:\zabbix\conf\zabbix_agentd.win.conf
echo start zabbix services
net start "Zabbix Agent"
echo set zabbix service auto
sc config "Zabbix Agent" start= auto
echo Zabbix agentd Configuration and Install Successful
如果监控Winows机器有上百台,用上面的脚本安装agent效率是提升了很多,但还是不够理想,下面给大家分享一个小工具(http://technet.microsoft.com/en-us/Sysinternals/bb897553.aspx)。
PsExec工具类似于Telnet,并且不需要在远程访问服务器上面安装客户端软件即可执行安装程序,批量执行安装脚本,绝对不比Shell脚本逊色。下面看看其用法:
Usage: psexec [\\computer[,computer2[,...] | @file]][-u user [-p psswd][-n s][-r servicename][-h][-l][-s|-e][-x][-i [session]][-c [-f|-v]][-w directory][-d][-<priority>][-a n,n,...] cmd [arguments]
只需知道以下几个参数即可:
@file PsExec远程安装agent主机列表,如IP地址,主机名。
-u 指定用于登录远程计算机的用户名。
-p 指定用户名的密码。
-c 指定的程序复制到远程系统来执行,即安装脚本。
实例:
PsExec.exe @ComputerList.txt -u "sfzhang" �c zabbix_agentd_install_windows.bat
2)获取监控性能指标
Zabbix监控windows常见的KEY可以参考官方文档(https://www.zabbix.com/documentation/2.2/manual/config/items/itemtypes/zabbix_agent/win_keys):
其中最常用的KEY是perf_counter[counter,<interval>],可以获取windows性能监视器的数据。Windows性能监视器的数据可以通过typeperf获取
,
可以把所有的性能监视器里数据重定向到文本文件里面查看typeperf -qx >win2003_Performance.txt。 下面是获取windows CPU使用率。
定义监控项的Key:
定义触发器trigger,5分钟之内如果CPU使用率大于85%则报警。
3)性能指标的展示
CPU利用率,CPU和disk Idle time。
4)Zabbix监控windows网卡流量,zabbix 监控windows网卡流是监控所有接口的流量。
使用Zabbix Macro能解决监控本地网卡的需求。其中IPADDRESS就是Zabbix Macro,表示被监控机的IP地址,用下面Key即可取到进出流量。
net.if.in[{IPADDRESS},bytes]
net.if.out[{IPADDRESS},bytes]
5)其它性能指标:
物理磁盘的读响应时间:perf_counter["\PhysicalDisk(_Total)\Avg. Disk sec/Read"]
物理磁盘的写响应时间:perf_counter["\PhysicalDisk(_Total)\Avg. Disk sec/Write"]
内存的使用百分率:vm.memory.size[pused]
CPU负载:system.cpu.load[all,avg1]
总结:Zabbix自带监控Windows机器模板里面监控指标很少,很多指标需要优化,并且需要通过Windows性能监视器获取数据,无论是系统层面(负载,内存利用率等)还是应用层面(IIS,SQLserver等)的指标都可以获取到。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)