之前给大家介绍了如何在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如果大家有问题可以直接留言。