之前给大家介绍了如何在centos与ubuntu系统下安装omsa硬件监控(地址是http://dl528888.blog.51cto.com/2382721/1403893),但windows下安装omsa没有介绍,很多朋友咨询如何在windows里安装omsa,并使用zabbix进行硬件监控,现在我在给大家介绍一下。

1、windows系统安装omsa

可以参考http://zh.community.dell.com/techcenter/systems-management/w/wiki/559.omsawindows.aspx

2、在客户端的zabbix_agentd.conf里配置

1
2
3
4
5
6
7
8
9
10
UserParameter=hardware_battery,c:\zabbix\bin\zabbix_monitor_hardware.bat hardware_battery 
UserParameter=hardware_cpu_model,c:\zabbix\bin\zabbix_monitor_hardware.bat hardware_cpu_model 
UserParameter=hardware_fan_health,c:\zabbix\bin\zabbix_monitor_hardware.bat hardware_fan_health 
UserParameter=hardware_memory_health,c:\zabbix\bin\zabbix_monitor_hardware.bat hardware_memory_health 
UserParameter=hardware_nic_health,c:\zabbix\bin\zabbix_monitor_hardware.bat hardware_nic_health 
UserParameter=hardware_cpu,c:\zabbix\bin\zabbix_monitor_hardware.bat hardware_cpu 
UserParameter=hardware_power_health,c:\zabbix\bin\zabbix_monitor_hardware.bat hardware_power_health 
UserParameter=hardware_temp,c:\zabbix\bin\zabbix_monitor_hardware.bat hardware_temp 
UserParameter=hardware_physics_health,c:\zabbix\bin\zabbix_monitor_hardware.bat hardware_physics_health 
UserParameter=hardware_virtual_health,c:\zabbix\bin\zabbix_monitor_hardware.bat hardware_virtual_health

3、在c:\zabbix\bin\里添加一个脚本,名字为zabbix_monitor_hardware.bat,可以在附件里下载,内容为

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
@ echo  off
::goto program
goto %1
 
::check hardware_battery
:hardware_battery
for  /f  "tokens=2 delims=:"  %%b  in  ( 'omreport chassis batteries^|find /i "Health"' do  set  hardware_battery=%%b
Set hardware_battery=%hardware_battery: =%
if  %hardware_battery% EQU Ok ( set  hardware_battery=1)  else  set  hardware_battery=0
echo  %hardware_battery%
exit
::check hardware_cpu_model
:hardware_cpu_model
for  /f  "tokens=2 delims=:"  %%b  in  ( 'omreport chassis biossetup^|find /i "C State"' do  set  hardware_cpu_crontol=%%b
Set hardware_cpu_crontol=%hardware_cpu_crontol: =%
if  %hardware_cpu_crontol% EQU Enabled ( set  hardware_cpu_crontol=1)  else  set  hardware_cpu_crontol=0
 
for  /f  "tokens=2 delims=:"  %%b  in  ( 'omreport chassis biossetup^|findstr /i "C1[-|E]"' do  set  hardware_cpu_c1=%%b
Set hardware_cpu_c1=%hardware_cpu_c1: =%
if  %hardware_cpu_c1% EQU  Enabled ( set  hardware_cpu_c1=1)  else  set  hardware_cpu_c1=0
 
if  %hardware_cpu_crontol% == 1  if  %hardware_cpu_c1%  == 1 ( set  hardware_cpu_model=1)  else  set  hardware_cpu_model=0
echo  %hardware_cpu_model%
exit
::check hardware_fan_health
:hardware_fan_health
for  /f   %%b  in  ( 'omreport chassis fans^|find /i /C  "Index"' do  set  hardware_fan_number=%%b
for  /f   %%b  in  ( 'omreport chassis fans^|find /i /C  "Ok"' do  set  hardware_fan=%%b
if  %hardware_fan_number% ==  %hardware_fan% ( set  hardware_fan_health=1)  else  set  hardware_fan_health=0
echo  %hardware_fan_health%
exit
::check hardware_memory_health
:hardware_memory_health
for  /f  "tokens=2 delims=:"  %%b  in  ( 'omreport chassis memory^|find /i "Health"' do  set  hardware_memory=%%b
Set hardware_memory=%hardware_memory: =%
if  %hardware_memory% EQU Ok ( set  hardware_memory_health=1)  else  set  hardware_memory_health=0
echo  %hardware_memory_health%
exit
::check hardware_nic_health
:hardware_nic_health
for  /f   %%b  in  ( 'omreport chassis nics^|find /i /C  "Interface Name"' do  set  hardware_nic_number=%%b
for  /f   %%b  in  ( 'omreport chassis nics^|find /i /C  "Connection Status"' do  set  hardware_nic=%%b
if  %hardware_nic_number% ==  %hardware_nic% ( set  hardware_nic_health=1)  else  set  hardware_nic_health=0
echo  %hardware_nic_health%
exit
::check hardware_cpu
:hardware_cpu
for  /f  "tokens=2 delims=:"  %%b  in  ( 'omreport chassis processors^|find /i "Health"' do  set  hardware_cpu=%%b
Set hardware_cpu=%hardware_cpu: =%
if  %hardware_cpu% EQU Ok ( set  hardware_cpu=1)  else  set  hardware_cpu=0
echo   %hardware_cpu%
exit
::check hardware_power_health
:hardware_power_health
for  /f   %%b  in  ( 'omreport chassis pwrsupplies^|find /i /C  "Index"' do  set  hardware_power_number=%%b
for  /f   %%b  in  ( 'omreport chassis pwrsupplies^|find /i /C  "Ok"' do  set  hardware_power=%%b
if  %hardware_power_number% ==  %hardware_power% ( set  hardware_power_health=1)  else  set  hardware_power_health=0
echo  %hardware_power_health%
exit
::check hardware_temp
:hardware_temp
for  /f  "tokens=2 delims=:"  %%b  in  ( 'omreport chassis temps^|findstr /i "Status"' do  set  hardware_temp=%%b
Set hardware_temp=%hardware_temp: =%
if  %hardware_temp% EQU Ok ( set  hardware_temp=1)  else  set  hardware_temp=0
echo  %hardware_temp%
exit
::check hardware_physics_health
:hardware_physics_health
for  /F  %%b  in  ( 'omreport storage pdisk "controller=0"^|findstr /i "^State"^|find /i /C "State"' do  set  hardware_physics_disk_number=%%b
for  /F  %%b  in  ( 'omreport storage pdisk "controller=0"^|find /i /C "Online"' do  set  hardware_physics_disk=%%b
if  %hardware_physics_disk_number% ==  %hardware_physics_disk% ( set  hardware_physics_health=1)  else  set  hardware_physics_health=0
echo  %hardware_physics_health%
exit
::check hardware_virtual_health
:hardware_virtual_health
for  /F  %%b  in  ( 'omreport storage vdisk "controller=0"^|findstr /i "^State"^|find /i /C "State"' do  set  hardware_virtual_disk_number=%%b
for  /F  %%b  in  ( 'omreport storage vdisk "controller=0"^|find /i /C "Ready"' do  set  hardware_virtual_disk=%%b
if  %hardware_virtual_disk_number% ==  %hardware_virtual_disk% ( set  hardware_virtual_health=1)  else  set  hardware_virtual_health=0
echo  %hardware_virtual_health%
exit

这个脚本是bat脚本,使用bat脚本的原因是我这里有windows 2003、2008、2012系统,默认给与用户不允许安装其他环节,所以python、cygwin都不能安装,power shell在2003系统还不支持,所以只能使用bat了。

3、关联模板

http://dl528888.blog.51cto.com/2382721/1403893里的模板导入到web里,然后主机管理模板即可。

监控windows的硬件信息如下图

wKioL1ONKlrgUsGfAAPohRqSuPo836.jpg如果大家有问题可以直接留言。