天天看点

Nagios监控window主机

一、简介

nagios不可以安装在window环境中,但是可以监控window主机。

在nagios的libexec下有check_nt这个插件,它就是用来检查windows机器的服务的,还需要搭配另外一个软件NSClient,它则类似于NRPE。NSClient与nrpe最大的区别就是:

  • 被监控机上安装有nrpe,并且还有插件,最终的监控是由这些插件来进行的.当监控主机将监控请求发给nrpe后,nrpe调用插件来完成监控。
  • NSClient则不同,被监控机上只安装NSClient,没有任何的插件.当监控主机将监控请求发给NSClient后,NSClient直接完成监控,所有的监控是由NSClient完成的。

这也说明了NSClient的一个很大的问题,不灵活,没有可扩展性.它只能完成自己本身包含的监控操作,不能由一些插件来扩展.好在NSClient已经做的不错了,基本上可以完全满足我们的监控需要。

二、window 下安装NClient++

1、从http://nsclient.org/nscp/downloads 下载NClient++,我下载的是NSClient++-0.3.9-Win32.zip 版本。

2、安装NSClient 服务

将NSClient++-0.3.9-Win32.zip 解压到D:\NSClient++目录中

打开cmd,切换到D:\NSClient++目录,执行 NSClient++  /install  进行安装服务。执行nstray,此操作是安装系统托盘。

在运行中输入:services.msc 打开 服务,我们可以看到其中有NSClientpp 服务,双击打开,点“登录” 标签,在“允许服务与桌面交互”前打勾。

三、window 下配置NClient++

1、修改配置文件NSC.ini 的[modules]项

去掉所有项前面的注释(除CheckWMI.dll)。

2、修改配置文件NSC.ini 的[Settings]项

将"allowed_hosts"此行注释,添加Nagios服务端IP,多个用逗号分隔,或者置为空允许所有。

3、修改配置文件NSC.ini 的[log]项

file=nsclient.log

4、修改配置文件NSC.ini 的[NSClient]]项

确认一下在[NSClient]段里的'port'选项里已经去掉注释并设置成'12489'(默认端口)。

5、重新启动该服务。

注意:nagios 要监控window主机,window主机的防火墙要开放12489端口(NSClient 中定义的端口)。在cmd里面执行netstat -an | more,可以看到已经开始监听tcp的12489端口了。此时要注意看看防火墙是否打开tcp的12489端口,否则nagios检查此服务的时候会报socket超时错误。是critical状态。

控制面板-> window 防火墙->高级设置->入站规则->新建规则。按照新建入站规则向导中的说明进行操作。

四、nagios 监控服务器端配置

1、由于nagios 是模块化调用,先到配置文件中打开window相关模块。

nano /usr/local/nagios/etc/nagios.cfg

cfg_file=/usr/local/nagios/etc/objects/windows.cfg  # 去掉这句的注释

2、配置windows.cfg

define host{         use                   windows-server          host_name      winserver                                                           ;被监控主机名         alias                 My Windows Server              address          192.168.0.8                                                           ;被监控的windows地址

#把下面的host_name都改成winserver

define service{         use                                     generic-service         host_name                        winserver         service_description        CPU Load         check_command              check_nt!CPULOAD!-l 5,80,90              ;监控CPU使用         }

define service{         use                                     generic-service         host_name                       winserver         service_description        Memory Usage         check_command             check_nt!MEMUSE!-w 80 -c 90               ;监控内存         } ……………………………………

3、重启nagios 

service nagios start