天天看點

Zabbix如何監控Windows機器

  最近一直在研究Zabbix監控Windows機器,涉及到如何快速安裝agent,如何修改和完善windows監控模闆等等。想把自己的經驗給大家分享一下,希望對大家有所幫助。

1)安裝agent用戶端

  首先分享一下用bat寫的自動化安裝Windows機器的agentd安裝腳本,腳本裡面的tcp.time_wait和tcp.est分别統計伺服器TCP TIME_WAIT和ESTABLISHED的連接配接數。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

<code>@</code><code>echo</code> <code>off</code>

<code>color fd</code>

<code>cd</code> <code>\</code>

<code>#IP from Zabbix Server or proxy where data should be send to.</code>

<code>Set zabbix_server_ip=IP</code>

<code>echo</code> <code>Creating zabbix </code><code>install</code> <code>dir</code>

<code>mkdir</code> <code>c:\zabbix</code>

<code>mkdir</code> <code>c:\zabbix\conf</code>

<code>mkdir</code> <code>c:\zabbix\bin</code>

<code>mkdir</code> <code>c:\zabbix\log</code>

<code>mkdir</code> <code>c:\zabbix\install_file</code>

<code>echo</code> <code>Copying Zabbix </code><code>install</code> <code>file</code>

<code>xcopy \\共享伺服器IP\Share\zabbix_agents_2.2.1.win c:\zabbix\install_file </code><code>/s</code>

<code>copy </code><code>/y</code> <code>C:\zabbix\install_file\conf\zabbix_agentd.win.conf C:\zabbix\conf\</code>

<code>echo</code> <code>Modiy zabbix configuration files</code>

<code>echo</code> <code>LogFile=c:\zabbix\log\zabbix_agentd.log &gt;&gt; C:\zabbix\conf\zabbix_agentd.win.conf</code>

<code>echo</code> <code>Server=%zabbix_server_ip% &gt;&gt; C:\zabbix\conf\zabbix_agentd.win.conf</code>

<code>echo</code> <code>Hostname=%COMPUTERNAME% &gt;&gt; C:\zabbix\conf\zabbix_agentd.win.conf</code>

<code>echo</code> <code>StartAgents=10 &gt;&gt; C:\zabbix\conf\zabbix_agentd.win.conf</code>

<code>echo</code> <code>Timeout=30 &gt;&gt; C:\zabbix\conf\zabbix_agentd.win.conf</code>

<code>echo</code> <code>UserParameter=tcp.time_wait,</code><code>netstat</code> <code>-an |</code><code>find</code> <code>/C</code> <code>"TIME_WAIT"</code> <code>&gt;&gt; C:\zabbix\conf\zabbix_agentd.win.conf</code>

<code>echo</code> <code>UserParameter=tcp.est,</code><code>netstat</code> <code>-an |</code><code>find</code> <code>/C</code> <code>"ESTABLISHED"</code> <code>&gt;&gt; C:\zabbix\conf\zabbix_agentd.win.conf</code>

<code>echo</code> 

<code>echo</code> <code>Copy zabbix start-up  </code><code>file</code>

<code>if</code> <code>%processor_architecture% EQU x86 copy </code><code>/y</code> <code>C:\zabbix\install_file\bin\win32 C:\zabbix\bin\</code>

<code>if</code> <code>%processor_architecture% EQU AMD64 copy </code><code>/y</code> <code>C:\zabbix\install_file\bin\win64 C:\zabbix\bin\</code>

<code>echo</code> <code>start zabbix servic</code>

<code>C:\zabbix\bin\zabbix_agentd.exe -i -c C:\zabbix\conf\zabbix_agentd.win.conf</code>

<code>echo</code> <code>start zabbix services</code>

<code>net start </code><code>"Zabbix Agent"</code>

<code>echo</code> <code>set</code>  <code>zabbix service auto</code>

<code>sc config </code><code>"Zabbix Agent"</code> <code>start= auto</code>

<code>echo</code>  <code>Zabbix agentd Configuration and Install Successful</code>

  如果監控Winows機器有上百台,用上面的腳本安裝agent效率是提升了很多,但還是不夠理想,下面給大家分享一個小工具(http://technet.microsoft.com/en-us/Sysinternals/bb897553.aspx)。

  PsExec工具類似于Telnet,并且不需要在遠端通路伺服器上面安裝用戶端軟體即可執行安裝程式,批量執行安裝腳本,絕對不比Shell腳本遜色。下面看看其用法:

<code>Usage: psexec [\\computer[,computer2[,...] | @</code><code>file</code><code>]][-u user [-p psswd][-n s][-r servicename][-h][-l][-s|-e][-x][-i [session]][-c [-f|-</code><code>v</code><code>]][-w directory][-d][-&lt;priority&gt;][-a n,n,...] cmd [arguments]</code>

<code>隻需知道以下幾個參數即可:</code>

<code>@</code><code>file</code> <code>PsExec遠端安裝agent主機清單,如IP位址,主機名。</code>

<code>-u  指定用于登入遠端計算機的使用者名。</code>

<code>-p  指定使用者名的密碼。</code>

<code>-c  指定的程式複制到遠端系統來執行,即安裝腳本。</code>

    執行個體:

<code>PsExec.exe @ComputerList.txt -u </code><code>"sfzhang"</code> <code>–c zabbix_agentd_install_windows.bat</code>

2)擷取監控性能名額

  Zabbix監控windows常見的KEY可以參考官方文檔(https://www.zabbix.com/documentation/2.2/manual/config/items/itemtypes/zabbix_agent/win_keys):

  其中最常用的KEY是perf_counter[counter,&lt;interval&gt;],可以擷取windows性能螢幕的資料。Windows性能螢幕的資料可以通過typeperf擷取,可以把所有的性能螢幕裡資料重定向到文本檔案裡面檢視typeperf -qx &gt; win2003_Performance.txt。下面是擷取windows CPU使用率。

<a href="http://s3.51cto.com/wyfs02/M02/47/AA/wKioL1P9k-biGWm2AAJLWHx7g0Y757.jpg" target="_blank"></a>

    定義監控項的Key:

<a href="http://s3.51cto.com/wyfs02/M02/47/A8/wKiom1P9lNPQGPUHAAK6QlMFj7I207.jpg" target="_blank"></a>

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

<a href="http://s3.51cto.com/wyfs02/M00/47/AA/wKioL1P9lsqzULlbAAGksTMDktI188.jpg" target="_blank"></a>

3)性能名額的展示  

    CPU使用率,CPU和disk Idle time。

<a href="http://s3.51cto.com/wyfs02/M01/47/AB/wKioL1P9mjjQ7bhaAATmKuRONPQ124.jpg" target="_blank"></a>

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

<a href="http://s3.51cto.com/wyfs02/M02/47/AB/wKioL1P9nhjyMW3IAAbFdIg_k-A944.jpg" target="_blank"></a>

  使用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等)的名額都可以擷取到。

本文轉自 sfzhang 51CTO部落格,原文連結:http://blog.51cto.com/sfzhang88/1545761,如需轉載請自行聯系原作者

繼續閱讀