nscp是windows下nagios监控client的一个合集。其包含check plugins 、check_nt、check_nrpe 、nsca client 、wmi checks 。一般需要的监测项基本都包含在内了 。

一、安装

下载地址: http://nsclient.org/nscp/downloads ,直接下载下来的是msi包 。同windows下其他软件的安装一样,直接下一步下一步就好了。

NSClient

需要配置的一步如上图所示 。第一处需要添写允许的监控server的IP地址,第二处,是密码项,如果该处设置了密码,监控端就需要加上-s参数加密码认证 。modules块我未启用wmi check ,该插件的功能是可以通过编写本地脚本,调用被监控端的wmi系统进程来监控要监控的内容 。

如果配置完了上面的配置,需求有变更,需要更改时,可以进到nscp的安装目录,修改配置文件。其配置文件示例如下:

 1[/modules]
 2CheckDisk = 1
 3CheckEventLog = 1
 4CheckExternalScripts = 1
 5CheckNSCP = 1
 6CheckHelpers = 1
 7CheckSystem = 1
 8NRPEServer = 1
 9NSCAClient = 1
10NSClientServer = 1
11; Undocumented section
12[/settings/default]
13; ALLOWED HOSTS - A comaseparated list of allowed hosts. You can use netmasks (/ syntax) or * to create ranges.
14allowed hosts = 192.168.8.200
15[/modules]

以上我只列出了部分配置,配置方件以” ;”做为注释 。具体每项前,一般都有注释说明是做什么用途的。

二、被控端配置相关

默认安装完之后,就可以使用 。如果不能正常使用可以以下几方法检测 。

1、首先用server端的check_nrpe和check_nt插件对被控端的机器进行检测,看是否正常 ?

1[root@web3 libexec]# ./check_nt -H 192.168.8.14 -p 12489 -v UPTIME
2System Uptime - 23 day(s) 9 hour(s) 57 minute(s)
3[root@web3 libexec]# ./check_nrpe -H 192.168.8.14
4I (0,4,0,172 2012-05-08) seem to be doing fine...

如果能正常输出,表示正常 。需要注意的是check_nt默认检测的端口是 1248 ,而nscp 默认提供的check_nt端口是12489 。

2、如果上面的输出不正常。先在监控端使用下面的命令检测端口监听是否正常 。即确认是否启动 。

1nestat -ano|findstr 5666
2nestat -ano|findstr 12489

如果正常监听,再查看防火墙是否允许通过 防火墙 –> 例外 –> 添加端口 5666/TCP 12489/TCP 。

3、如果端口都未发现监听,就需要手动启下服务 。

services.msc –> NSClient++ 属性登录允许服务与桌面交互确定

三、nagios server端配置

关于nrpe 、nsca块不用新增,一般在检测其他机器时 ,都会事先配置过的 。这里只讲下check_nt ,配置如下:

1define command{
2        command_name    check_nt
3        command_line    $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$
4        }

如果设置了密码,其中command_line的行,需要换成下面的:

1command_line    $USER1$/check_nt -H $HOSTADDRESS$ -p 12489  -s 888888 -v $ARG1$ $ARG2$

对主机监测的cfg配置文件增加下面的内容:

 1define service{
 2        use                     windows-service,srv-pnp
 3        host_name               361way
 4        service_description     Uptime
 5        check_command           check_nt!UPTIME
 6        }
 7define service{
 8        use                     windows-service,srv-pnp
 9        host_name               361way
10        service_description     CPU Load
11        check_command           check_nt!CPULOAD!-l 5,80,90
12        }
13define service{
14        use                     windows-service,srv-pnp
15        host_name               361way
16        service_description     D: Drive Space
17        check_command           check_nt!USEDDISKSPACE!-l d -w 80 -c 90
18        }
19define service{
20        use                     windows-service
21        host_name               361way
22        service_description     java
23        check_command           check_nt!PROCSTATE!-d SHOWALL -l java.exe
24        }
25define service{
26        use                     windows-service
27        host_name               361way
28        service_description     explorer
29        check_command           check_nt!PROCSTATE!-d SHOWALL -l exploer.exe
30        }

平时在对windows监控时主要使用check_nt插件,check_nt的其他用法,可以在nagios server的libexec目录里执行./check_nt -h查看更多帮助说明。如果想使用check_nrpe也可以,不过需要先在NSClient或nscp安装目录下的nsclient.ini配置文件中进行配置定义:

1check_cpu = checkCPU warn=80 crit=90 time=5m time=1m time=30s
2check_disk = CheckDriveSize MinWarn=30% MinCrit=15% CheckAll FilterType=FIXED

使用和linux上的check_nrpe一样:

1[root@web3 libexec]# ./check_nrpe -H 192.168.8.14 -c check_cpu
2OK CPU Load ok.|'5m'=6%;80;90 '1m'=8%;80;90 '30s'=9%;80;90