windows客户端的设置:

下载地址: http://sourceforge.net/projects/nscplus

NSClient++-0.3.8-Win32.msi  
NSClient++-0.3.8-x64.msi

安装和普通软件安装方式一样
1.双击安装---》next---》同意
                               ---》next ---》next---》next---》设置允许IP
                                                                         设置密码(这里设置的密码一般可以不设置)
                                                                         Modules to load  前三个模块选上就行
                                                                          ---》next---》install---》finish

2.在服务中确定NSClient++可以与桌面交互image

 

3.进去安装目录,编辑nsc.ini

[modules] 中,所有的 .dll 注释都全都去掉,除了 CheckWMI.dll and RemoteConfiguration.dll

[Settings] 中,'password' 这个项目是在设置密码,作用是在 nagios 监控主机进行联机时,要求提供密码才能进一步进行联机,这里为了方便起见,跳过它,不要设定密码。

[Settings] 中,'allowed_hosts' 选项的 注释 去掉,并且加上 nagios 的监控服务器的 IP,修改如下 allowed_hosts=127.0.0.1/32,192.168.0.11 以逗点相隔。

[NSClient] 中,'port' 选项的 注释 须要拿掉,并且它的值是 '12489',这是 NSClient 的预设 port

 

4.完成之后,启动 NSClient++

在 cmd 中 C:\NSClient++ 下,执行 NSClient++ /start 或者直接进去服务重新启动

在 cmd 下,执行 netstat -an ,检查 port 12489 是否开启

5.在右下角可以看image 像小蝴蝶的启动标,至此windows客户端设置完毕!

 

监控端服务器端的配置:

● libexec 下须要 check_nt 执行程序。

● 设定 commands.cfg
增加:
# 'check_nt' windows client command definition for remote service
define command{
        command_name    check_nt
        command_line    $USER1$/check_nt -H $HOSTADDRESS$ -p 12489  -v $ARG1$ $ARG2$
        }

一般默认开启!

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

再设置项目之前,首先要了解一下nagios的配置文件和监控模板:

因为nagios-2.x与nagios-3.x配置文件有区别,在此叙述的是3.2中文版。
在nagios/etc下有 cgi.cgf                  cgi的配置文件
                        nagios.cgf             nagios的主配置文件            
                        htpasswd.users      登陆验证使用的用户和密码
                        nagiosgraph.cfg
                        ndo2db.cfg            nagios采集的数据写到数据库的插件ndo的配置文件
                        ndomod.cfg           nagios采集到的数据读出,然后交给ndo2db的配置文件
                        nrpe.cfg                nrpe采集本机的数据的配置文件
                        resource.cfg        外部命令资源配置文件
                        objects目录下        这个目录下的定义nagios采集数据的配置文件
                                   commands.cfg   这个是定义每个插件使用和报警的定义的
                                   contacts.cfg    这个是联系定义模板
                                   localhost.cfg    这个是本机监控模板
                                   printer.cfg      这个是打印机监控模板
                                   templates.cfg  这个是对监控的采集时间、联系人、状态检查机制等的模板
                                   timeperiods.cfg 这个是监控所使用的时间模板
                                   windows.cfg     这个是windows服务器监控模板
                                   switch.cfg        这个是监控switch或router的监控模板(需要使用到mrtg)
在templates.cfg这个配置文件中定义有一下几个模板,在自己定义的监控的服务就用写那么多,直接使用use 下面的模板就可以,在nagios中使用的是继承的关系。
generic-contact
generic-host
linux-server           linux服务器模板
windows-server   windows服务器模板
generic-printer     打印机模板
generic-switch      交换机路由器模板
generic-service     服务模板
local-service          本机的

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

● 设定主要监控项目 service.cfg

# 监控 windows 主机的开机运作时间
define service{
        use                             remote-service         ; Name of service template to use
        hostgroup_name                    windows-servers
        service_description             System Uptime
        check_command                   check_nt!UPTIME
        }
# 监控 windows 主机的 CPU 负载
define service{
        use                             remote-service         ; Name of service template to use
        hostgroup_name                    windows-servers
        service_description             CPU Load
        check_command                   check_nt!CPULOAD!-l 5,80,90
        }
监控 windows 主机的内存使用状况
define service{
        use                             remote-service         ; Name of service template to use
        hostgroup_name                    windows-servers
        service_description             Memory usage
        check_command                   check_nt!MEMUSE!-w 80 -c 90
        }
监控 windows 主机的 C:\ 的空间使用量
define service{
        use                             remote-service         ; Name of service template to use
        hostgroup_name                    windows-servers
        service_description             c:\ - total
        check_command                   check_nt!USEDDISKSPACE!-l c -w 80 -c 90
        }
另外还有:
监控 windows 主机的 MSSQLSERVER 服务的运作状况,如服务终止了,则会发 CRITICAL
check_command           check_nt!SERVICESTATE!-d SHOWALL -l MSSQLSERVER
监控 windows 主机的 Explorer.exe 执行程序的运作状况,如程序终止了,则会发 CRITICAL
check_command           check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe

问题排除

2008-02-12 17:44:24: error:.\PDHCollector.cpp:99: Detected language: 0x0404 but it could not be found in: counters.defs
2008-02-12 17:44:24: error:.\PDHCollector.cpp:100: You need to manually configure performance counters!
● 初步安装好时, NSClient++ 会有上述的错误,原因是操作语系的问题,NSClient++ 默认支持 OS 的语言并不多,所以这部份须进行手动配置,检示错误讯息为「0x0404」这个语系,直接复制「English US」这个项目内所有的数据,以「0x0404」这个语系取代,如下: 
修改 C:\NSClient++ 下 counters.defs 这个档案
[0x0404]
Description = "Chinese BIG5"
NT4_SystemTotalProcessorTime = "\System\% Total Processor Time"
NT4_SystemSystemUpTime = "\System\System Up Time"
NT4_MemoryCommitLimit = "\Memory\Commit Limit"
NT4_MemoryCommitByte = "\Memory\Committed Bytes"

W2K_SystemTotalProcessorTime = "\Processor(_total)\% Processor Time"
W2K_SystemSystemUpTime = "\System\System Up Time"
W2K_MemoryCommitLimit = "\Memory\Commit Limit"
W2K_MemoryCommitByte = "\Memory\Committed Bytes"

● 修改完后,重开 NSClient++ 即可