设为首页 收藏本站
查看: 1085|回复: 0

[经验分享] Nagios利用NSClient++监控Windows主机(4)

[复制链接]

尚未签到

发表于 2018-6-13 09:39:42 | 显示全部楼层 |阅读模式
介绍
本文用来说明如何监控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
   DSC0000.jpg
  NSClient++的原理如下图:
DSC0001.jpg

  可以看到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全部勾选上。
   DSC0002.jpg
  安装完成后,我们查看是否启用了5666和12489端口,如果有,表明NSClient服务启动正常。

   DSC0003.jpg
  在“运行”里面,输入services.msc, 打开“服务”

   DSC0004.jpg
  如果看到NSClient++,说明正常。
   DSC0005.jpg
  2、编辑NSClient++的配置文件

  默认是安装在C:\Program Files\NSClient++ 目录下,nsclient.ini即为NSClient服务的配置文件,一般我们无需修改,但是当我们监控端的IP地址改变时,或者密码忘记,即可以在这里修改了。
   DSC0006.jpg
  这样外部就可以访问了吗?
错!
防火墙也要打开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监控页便可查看到相关信息了。
   DSC0007.jpg
  

  更多详细信息,请参考:
  http://www.nsclient.org/nscp/wiki/doc/usage/nagios/nrpe
  



附件:http://down.51cto.com/data/2364701

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-523094-1-1.html 上篇帖子: windows server backup 下篇帖子: 破解windows密码的方法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表