zoukankan      html  css  js  c++  java
  • Nagios利用NSClient++监控Windows主机

    在Nagios的libexec下有check_nt这个插件,它就是用来检查windows机器的服务的。其功能类似于check_nrpe。不过还需要搭配另外一个软件NSClient++,它则类似于NRPE。我们需要下载NSClient合适的版本,然后安装在被监控的windows主机上。

    Overview of NRPE

    bubuko.com,布布扣

    NSClient++的原理如下图:
    bubuko.com,布布扣

    可以看到NSClient与nrpe最大的区别就是:

    • NRPE: 被监控机上安装有nrpe,并且还有插件,最终的监控是由这些插件来进行的。当监控主机将监控请求发给nrpe后,nrpe调用插件来完成监控。

    • NSClient++: NSClient++则不同,被监控机上只安装NSClient,没有任何的插件。当监控主机将监控请求发给NSClient++后,NSClient直接完成监控,所有的监控是由NSClient完成的。

        这也说明了NSClient++的一个很大的问题:不灵活、没有可扩展性。它只能完成自己本身包含的监控操作,不能由一些插件来扩展。好在NSClient++已经做的不错了,基本上可以完全满足我们的监控需求。

    1、在被监控的windows主机上安装NSClient++

    从http://www.nsclient.org/nscp/downloads 下载NSClient++。安装的过程和其他windows应用程序的安装过程类似,next即可,选项我们都保持默认。安装过程中需要填写监控端的IP地址和密码,以及把下面的Modules全部勾选上。

    bubuko.com,布布扣

    安装完成后,我们查看是否启用了5666和12489端口,如果有,表明NSClient服务启动正常。

    bubuko.com,布布扣

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

    bubuko.com,布布扣

    如果看到NSClient++,说明正常。

    bubuko.com,布布扣

    2、编辑NSClient++的配置文件

    默认是安装在C:Program FilesNSClient++ 目录下,nsclient.ini即为NSClient服务的配置文件,一般我们无需修改,但是当我们监控端的IP地址改变时,或者密码忘记,即可以在这里修改了。

    bubuko.com,布布扣

    这样外部就可以访问了吗?

    错!

    防火墙也要打开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监控页便可查看到相关信息了。

  • 相关阅读:
    平台建设-用户反馈跟踪模块(简单爬虫)
    Android Send event 汇总 (点击,滑动,两指操作 源码)
    uiautomator 获取控件,点击的原理
    自动化进程调用CommomService获取androidapi功能
    大快搜索“大数据与智慧城市”南京技术交流会成功举办
    系统架构都经历了怎样的演变?
    云计算的云数据安全与加密技术
    从服务端视角看高并发难题
    动态分配多任务资源的移动端深度学习框架
    详谈分布式系统缓存的设计细节
  • 原文地址:https://www.cnblogs.com/amma/p/5405213.html
Copyright © 2011-2022 走看看