NSClient++ 0.3.x和NSClient++ 0.4.x的配置完全不一样,官方的文档也没有全部更新。我记录下自己的一些操作。
一、下载安装NSClient++
1、到http://nsclient.org/nscp/downloads页面下载程序,这里以ZIP包为例。
2、将zip包解压为C:NSCP
在Powershell中运行以下命令:
#安装nscp服务
C:NSCP scp.exe service --install --name nscp
C:NSCP scp.exe service --install --name nscp
3、根据需要启用模块,所有模块列表见C:NSCPmodules文件夹
在Powershell中运行以下命令:
C:NSCP
scp.exe settings --activate-module CheckDisk
C:NSCP scp.exe settings --activate-module CheckEventLog
C:NSCP scp.exe settings --activate-module CheckExternalScripts
C:NSCP scp.exe settings --activate-module CheckHelpers
C:NSCP scp.exe settings --activate-module CheckSystem
C:NSCP scp.exe settings --activate-module CheckWMI
C:NSCP scp.exe settings --activate-module NRPEServer
C:NSCP scp.exe settings --activate-module CheckEventLog
C:NSCP scp.exe settings --activate-module CheckExternalScripts
C:NSCP scp.exe settings --activate-module CheckHelpers
C:NSCP scp.exe settings --activate-module CheckSystem
C:NSCP scp.exe settings --activate-module CheckWMI
C:NSCP scp.exe settings --activate-module NRPEServer
4、添加已启用模块的默认设置
在PowerSHell
#添加默认设置
C:NSCP scp.exe settings --generate settings --add-defaults
C:NSCP scp.exe settings --generate settings --add-defaults
这样在C:NSCP就有了配置文件nsclient.ini
添加Windows防火墙策略,开放5666端口给C:NSCP
scp.exe
在Powershell或CMD中输入:
netsh advfirewall firewall add rule name="NSClient++ 监控代理" dir=in protocol=tcp localport=5666 program="C:NSCP
scp.exe" localip=any remoteip=any profile=any action=allow
根据需要限制此策略的远程IP
修改NSClient++的允许服务器IP
修改配置文件nsclient.ini中[/settings/default]下的【allowed hosts】的值添加Nagios或Icinga服务端地址。
二、CheckCounter设置
CheckChounter功能属于CheckSystem模块
使用这个功能需要将配置文件nsclient.ini中[/settings/NRPE/server]下的【allow arguments】和【allow nasty characters】的值改为True。
重启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
不仅返回正常,还有性能数据。
另外如下图所示可以指定性能数据中label的名称
一些排错:
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