Nagios利用NSClient++监控Windows主机(4)-创新互联
介绍
成都创新互联拥有网站维护技术和项目管理团队,建立的售前、实施和售后服务体系,为客户提供定制化的做网站、网站建设、网站维护、达州托管服务器解决方案。为客户网站安全和日常运维提供整体管家式外包优质服务。我们的网站维护服务覆盖集团企业、上市公司、外企网站、成都做商城网站、政府网站等各类型客户群体,为全球千余家企业提供全方位网站维护、服务器维护解决方案。本文用来说明如何监控windows主机的本地服务和特性,包括:
内存占用率
CPU负载
disk利用率
服务状态
运行进程等
对windows机器的监控私有服务需要在机器上安装代理程序(agent)。代理将会在检测插件与Nagios服务之间起网关代理作用。如果没有在机器上安装代理的话,Nagios将无法对windows私有服务或属性等进行监控。
下面的例子中,将在被监控端的windows主机上安装NSClient++外部构件并在监控中心使用check_nt插件检测和玉NSClient++构件进行通信。
在Nagios的libexec下有check_nt这个插件,它就是用来检查windows机器的服务的。其功能类似于check_nrpe。不过还需要搭配另外一个软件NSClient++,它则类似于NRPE。我们需要下载NSClient合适的版本,然后安装在被监控的windows主机上。
Overview of NRPE
NSClient++的原理如下图:
可以看到NSClient与nrpe大的区别就是:
NRPE: 被监控机上安装有nrpe,并且还有插件,最终的监控是由这些插件来进行的。当监控主机将监控请求发给nrpe后,nrpe调用插件来完成监控。
NSClient++: NSClient++则不同,被监控机上只安装NSClient,没有任何的插件。当监控主机将监控请求发给NSClient++后,NSClient直接完成监控,所有的监控是由NSClient完成的。
这也说明了NSClient++的一个很大的问题:不灵活、没有可扩展性。它只能完成自己本身包含的监控操作,不能由一些插件来扩展。好在NSClient++已经做的不错了,基本上可以完全满足我们的监控需求。
步骤:
为完成对windows主机的检测,有几个步骤要做,他们是:
在被监控端的windows机器上安装代理agent(本例中采用的NSClient++构件)
给windows机器创建新的主机和服务对象定义
重启Nagios守护进程
1、在被监控的windows主机上安装NSClient++
从http://www.nsclient.org/nscp/downloads 下载NSClient++。安装的过程和其他windows应用程序的安装过程类似,next即可,选项我们都保持默认。安装过程中需要填写监控端的IP地址和密码,以及把下面的Modules全部勾选上。
安装完成后,我们查看是否启用了5666和12489端口,如果有,表明NSClient服务启动正常。
在“运行”里面,输入services.msc, 打开“服务”
如果看到NSClient++,说明正常。
2、编辑NSClient++的配置文件
默认是安装在C:\Program Files\NSClient++ 目录下,nsclient.ini即为NSClient服务的配置文件,一般我们无需修改,但是当我们监控端的IP地址改变时,或者密码忘记,即可以在这里修改了。
这样外部就可以访问了吗?
错!
防火墙也要打开tcp的12489端口,否则nagios 检查此服务的时候会报错。
这样被监控机的配置就搞定了,它就等待nagios 发出某个监控请求,然后它执行请求将监控的结果发回到nagios监控主机上。
3、在监控端操作,检测能否正常工作
[root@localhost ~]# cd /usr/local/nagios/libexec/ # 查看使用帮助 [root@localhost libexec]# ./check_nt -h # 如果没有指定端口,默认使用1248去连接 [root@localhost libexec]# ./check_nt -H 192.168.11.105 -v UPTIME connect to address 192.168.11.105 and port 1248: Connection refused could not fetch information from server # 没有指定密码 [root@localhost libexec]# ./check_nt -H 192.168.11.105 -p 12489 -v UPTIME NSClient - ERROR: Invalid password. # OK [root@localhost libexec]# ./check_nt -H 192.168.11.105 -p 12489 -s 123456 -v UPTIME System Uptime - 0 day(s) 0 hour(s) 51 minute(s) |uptime=51 [root@localhost libexec]# ./check_nt -H 192.168.11.105 -p 12489 -s 123456 -v CPULOAD -w 80 -c 90 -l 5,80,90 CPU Load 21% (5 min average) | '5 min avg Load'=21%;80;90;0;100 # -w 警告比例 -c 紧急比例 -l(小写L) 表示过去5分钟的平均值,80%为警告,90%为紧急 # ./check_nt -H 192.168.1.5 -p 12489 -s -v USEDDISKSPACE -w 80 -c 90 -l C C:\ - total: 50.01 Gb - used: 18.94 Gb (38%) - free 31.07 Gb (62%) | 'C:\ Used Space'=18.94Gb;40.01;45.01;0.00;50.01 ### 信息回显格式 一般信息 | 资源的性能信息 他们之间输出要用|隔开,如果自己开发插件必须使用这种格式,如果 只输出一般信息一行就行。
4、定义主机、服务、命令
[root@localhost ~]# cd /etc/nagios/monitor/
(1)定义命令
# vi commands.cfg define command{ command_name check_win command_line $USER1$/check_nt -H "$HOSTADDRESS$" -p 12489 -s 123456 -v $ARG1$ $ARG2$ } # $..$表示系统内置的宏,也就是所谓的变量 # $USER1$表示插件所在的目录 # -H 指定主机地址 # $HOSTADDRESS$ 应用到哪个主机,就用哪个主机的地址 # $ARG1$传递的参数,形参 # -s指定密码,如果有需要加,如上面安装时设置了密码为123456
(2)定义主机
# vim hosts.cfg define host{ use windows-server host_name win-192.168.11.105 alias my win server address 192.168.11.105 }
(3)定义服务
# vi services.cfg define service{ use generic-service host_name win-192.168.11.105 service_description NSClient++ Version check_command check_win!CLIENTVERSION ;传递给-v 的参数第一个参数 } define service{ use generic-service host_name win-192.168.11.105 service_description Uptime check_command check_win!UPTIME } define service{ use generic-service host_name win-192.168.11.105 service_description CPU Load check_command check_win!CPULOAD!-l 5,80,90 ;传递两过参数!CPULOAD 和-! -l 5,80,90 }
5、查看结果
由于修改了配置文件,我们最好先检查一下配置文件的语法。
# /usr/local/nagios/bin/nagios -v /etc/nagios/nagios.cfg # 如果没有问题, 就可以重启nagios服务 # service nagios restart
现在打开Nagios Web监控页便可查看到相关信息了。
更多详细信息,请参考:
http://www.nsclient.org/nscp/wiki/doc/usage/nagios/nrpe
附件:http://down.51cto.com/data/2364701另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
分享文章:Nagios利用NSClient++监控Windows主机(4)-创新互联
本文来源:http://azwzsj.com/article/ggihg.html