NSClient++ 0.3.x和NSClient++ 0.4.x的配置完全不一样,官方的文档也没有全部更新。我记录下自己的一些操作。
一、下载安装NSClient++
1、到http://nsclient.org/nscp/downloads页面下载程序,这里以ZIP包为例。
![](http://images0.cnblogs.com/blog/485200/201310/29180623-60ed114ec68e4f6d885063ffcaf2966e.png)
2、将zip包解压为C:\NSCP
在Powershell中运行以下命令:
#安装nscp服务
C:\NSCP\nscp.exe service --install --name nscp
C:\NSCP\nscp.exe service --install --name nscp
![](http://images0.cnblogs.com/blog/485200/201310/29180623-68bf18de24b34afea5ae7f57c9abe0df.png)
3、根据需要启用模块,所有模块列表见C:\NSCP\modules文件夹
在Powershell中运行以下命令:
C:\NSCP\nscp.exe settings --activate-module CheckDisk
C:\NSCP\nscp.exe settings --activate-module CheckEventLog
C:\NSCP\nscp.exe settings --activate-module CheckExternalScripts
C:\NSCP\nscp.exe settings --activate-module CheckHelpers
C:\NSCP\nscp.exe settings --activate-module CheckSystem
C:\NSCP\nscp.exe settings --activate-module CheckWMI
C:\NSCP\nscp.exe settings --activate-module NRPEServer
C:\NSCP\nscp.exe settings --activate-module CheckEventLog
C:\NSCP\nscp.exe settings --activate-module CheckExternalScripts
C:\NSCP\nscp.exe settings --activate-module CheckHelpers
C:\NSCP\nscp.exe settings --activate-module CheckSystem
C:\NSCP\nscp.exe settings --activate-module CheckWMI
C:\NSCP\nscp.exe settings --activate-module NRPEServer
4、添加已启用模块的默认设置
在PowerSHell
#添加默认设置
C:\NSCP\nscp.exe settings --generate settings --add-defaults
C:\NSCP\nscp.exe settings --generate settings --add-defaults
![](http://images0.cnblogs.com/blog/485200/201310/29180624-0209352e8cf34c12b8d22e2036d7bccb.png)
这样在C:\NSCP就有了配置文件nsclient.ini
添加Windows防火墙策略,开放5666端口给C:\NSCP\nscp.exe
在Powershell或CMD中输入:
netsh advfirewall firewall add rule name="NSClient++ 监控代理" dir=in protocol=tcp localport=5666 program="C:\NSCP\nscp.exe" localip=any remoteip=any profile=any action=allow
根据需要限制此策略的远程IP
修改NSClient++的允许服务器IP
修改配置文件nsclient.ini中[/settings/default]下的【allowed hosts】的值添加Nagios或Icinga服务端地址。
![](http://images0.cnblogs.com/blog/485200/201310/29180624-ff9b2080335044db9d4e87edae4cdb4d.png)
二、CheckCounter设置
CheckChounter功能属于CheckSystem模块
使用这个功能需要将配置文件nsclient.ini中[/settings/NRPE/server]下的【allow arguments】和【allow nasty characters】的值改为True。
![](http://images0.cnblogs.com/blog/485200/201310/29180624-86a17f4585da491782d889b8391d5baf.png)
重启nscp服务
net stop nscp
net start nscp
net start nscp
三、检查是否能够获取值
确认监控主机上的NRPE插件在编译时使用了--enable-command-args参数
在Linux监控端上运行一下命令确认配置是否成功:
check_nrpe -u -H 192.168.1.104 -p 5666 -c CheckCounter -a "\\Processor(_total)\\% Processor Time" ShowAll MaxWarn=50 MaxCrit=80
![](http://images0.cnblogs.com/blog/485200/201310/29180624-f66b4c5bb3de47f39caa2d296d2541cb.png)
不仅返回正常,还有性能数据。
另外如下图所示可以指定性能数据中label的名称
![](http://images0.cnblogs.com/blog/485200/201310/29180625-c39034e642da46eca565edd9a28c8bd6.png)
一些排错:
a. 报“CHECK_NRPE: Socket timeout after 10 seconds.”错误的话请检查服务是否启动,防火墙策略是否正确。
b. 报“CHECK_NRPE: Error - Could not complete SSL handshake.”错误的话请检查主机是否在Allowed Hosts里面,修改配置文件中该项后是否未重启服务。
c. 报“Exception processing request: Request command contained illegal metachars!”错误的话请检查allow arguments和allow nasty characters是否都为True,修改配置文件中该项后是否未重启服务。
CheckCounter的Nagios Command设置详见http://www.3open.org/d/nagios/monitoring_windows_with_nsclient
参考资料:
Netsh AdvFirewall Firewall Commands http://technet.microsoft.com/en-us/library/dd734783(v=ws.10).aspx
NSClient++ Help (#1) - Can't NRPE -c CheckCounter (#1044) - Message List http://www.nsclient.org/nscp/discussion/message/2775
Manual Installation of NSClient++ 0.4.x http://nsclient.org/nscp/wiki/doc/installation/0.4.x/manual
Monitoring Windows with NSClient http://www.3open.org/d/nagios/monitoring_windows_with_nsclient
nagios插件性能数据格式 http://www.cnblogs.com/huazi/archive/2012/07/27/2611020.html