介绍
Nagios可以监控Windows主机的本地服务和特性,包括:
- 内存占用率
- CPU负载
- Disk利用率
对Windows机器的监控私有服务需要在机器上安装代理程序。代理将会在检测插件与Nagios服务之间起网关代理作用。如果没有在机器上安装代理的话,Nagios将无法对Windows私有服务或属性等进行监控。
在下面例子中,将在Windows机器上安装NSClient++外部构件并使用check_nt插件检测和与NSClient++构件进行通讯。默认情况下check_nt插件已经安装到了Nagios服务器上。
如果愿意,可以用其他的Windows代理(象NC_Net)替代NSClient++构件所起的作用-只是要稍稍改一下对应的命令和服务定义等。下面将只是讨论安装了NSClient++外部构件的情况。
Nagios配置
首次监控一台Winodws机器时需要对Nagios做点额外的工作。记住,仅仅是监控第一台Windows机器时需要做这些工作。
编辑Nagios的主配置文件 /usr/local/nagios/etc/nagios.cfg,把下面这行最前面的#号去掉:
#cfg_file=/usr/local/nagios/etc/objects/windows.cfg
这个操作是让Nagios起用/usr/local/nagios/etc/objects/windows.cfg这个配置文件里的对象定义。在这个配置文件里可以加些Windows的主机与服务对象定义。该配置文件里已经包含有几个样例主机、主机组及服务对象定义。对于第一台Windows机器,可以只是简单地修改里面已经有的主机与服务对象定义而不要新创建一个。
安装Windows代理程序
在用Nagios监控Windows机器的私有服务之前,需要先在机器上安装代理程序。推荐使用NSClient++外部构件,它可以在http://sourceforge.net/projects/nscplus 或者 http://nsclient.org/nscp/找到 。
下载“NSClient++-0.3.9-Win32.zip”,完成后操作步骤如下:
1)解压至“D:\NSClient++”
命令提示符下,安装服务
D:\NSClient++>nsclient++ /install
2)修改配置文件nsc.ini
部分 | 内容 |
modules | 将列出模块程序的注释标识去掉,除了CheckWMI.dll和RemoteConfiguration.dll |
Settings | 将’password’选项注释标识去掉,并设置秘密,作用是nagios连接过来时提供密码 |
Settings | 将’allowed_hosts’选项注释标识去掉,加上运行nagios的监控主机的ip。如果置空,则允许任何主机连接 |
NSClient | 将’port’选项注释标识去掉,并设置成’12489′(默认端口) |
3) 启动服务
点登录标签,勾选“允许服务与桌面交互”
4)开放端口
检查端口是否正常工作:
注意:防火墙也要打开tcp 12498端口,否则nagios检查此服务时会报socket超时错误。
接下来,就等待nagios发出某个监控请求,然后它执行请求,将监控的结果发回给nagios监控主机。
Nagios中对Windows监控服务的配置
nagios中需要配置监控哪个主机,哪些监控项,这里配置如下: define host{ use windows-server ; Inherit default values from a template host_name CHNET_2004 alias My Windows Server ; A longer name associated with the host address 192.168.182.1 ; IP address of the host }
define hostgroup{ hostgroup_name windows-servers ; The name of the hostgroup alias Windows Servers ; Long name of the group } define service{ use generic-service hostgroup_name windows-servers service_description NSClient++ Version check_command check_nt!CLIENTVERSION } define service{ use generic-service hostgroup_name windows-servers service_description Uptime check_command check_nt!UPTIME } define service{ use generic-service hostgroup_name windows-servers service_description CPU Load check_command check_nt!CPULOAD!-l 5,80,90 } define service{ use generic-service hostgroup_name windows-servers service_description Memory Usage check_command check_nt!MEMUSE!-w 80 -c 90 } define service{ use generic-service hostgroup_name windows-servers service_description C:\ Drive Space check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90 }
如果想指定保存在Windows机器上NSClient++配置文件里的口令,可以修改check_nt命令定义,让它带着口令。编辑方式打开/usr/local/nagios/etc/commands.cfg文件。
修改check_nt命令的定义,带上”-s “命令参数,如下:
# 'check_nt' command definition define command{ command_name check_nt command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s abc -v $ARG1$ $ARG2$ }
这样,通过nagios的web端,可以监控到以上指定的项目(会pending一段时间来初始化):
The post Nagios监控Windows主机 appeared first on SQLParty.