Zabbix如何監控Windows機器

  最近一直在研究Zabbix監控Windows機器,涉及到如何快速安裝agent,如何修改和完善windows監控模板等等。想把自己的經驗給大家分享一下,希望對大家有所幫助。
1)安裝agent客戶端
  首先分享一下用bat寫的自動化安裝Windows機器的agentd安裝腳本,腳本里面的tcp.time_wait和tcp.est分別統計服務器TCP TIME_WAIT和ESTABLISHED的連接數。

@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 UserParameter=tcp.time_wait,netstat -an |find /C "TIME_WAIT" >> C:\zabbix\conf\zabbix_agentd.win.conf
echo UserParameter=tcp.est,netstat -an |find /C "ESTABLISHED" >> 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使用率。

wKioL1P9k-biGWm2AAJLWHx7g0Y757.jpg

    定義監控項的Key:

wKiom1P9lNPQGPUHAAK6QlMFj7I207.jpg


    定義觸發器trigger,5分鐘之內如果CPU使用率大於85%則報警。

wKioL1P9lsqzULlbAAGksTMDktI188.jpg

3)性能指標的展示 

    CPU利用率,CPU和disk Idle time。

wKioL1P9mjjQ7bhaAATmKuRONPQ124.jpg

4)Zabbix監控windows網卡流量,zabbix 監控windows網卡流是監控所有接口的流量。

wKioL1P9nhjyMW3IAAbFdIg_k-A944.jpg

  使用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等)的指標都可以獲取到。












發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章