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++可以与桌面交互
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.在右下角可以看 像小蝴蝶的启动标,至此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++ 即可