首页 > 代码库 > Cacti+Nagios监控系统(五):Nagios监控windows(基于check_nt)

Cacti+Nagios监控系统(五):Nagios监控windows(基于check_nt)

一、工作原理

  wKioL1Pe-l2hCrUeAACR561lHpg439.jpg

  wKiom1PfSCDDRRq_AADS4T1tPk0108.jpg

    Nagios服务器使用check_nt工具与客户端程序通讯,客户端程序NSCP使用命令来获取本地客户端的信息并返回给check_nt。

    check_nt只是NSCP其中一项服务,Nagios还可以通过check命令(如check_http检查WEB服务)、check_nrpe、NSCA、WMI来监控windows客户端。


二、下载客户端程序

  下载地址:  http://nsclient.org/nscp/downloads

  64位系统下载:NSCP-0.4.1.105-x64.msi

  32位系统下载:NSCP-0.4.1.105-Win32.msi


三、安装NSCP(也叫NSClient++)

  设置Nagios服务器IP地址、客户端访问密码(后面Nagios设置check_nt命令时要用到)和启用各种监控服务。

  wKioL1Pe-l2jqhUtAAF9VTToHRQ695.jpg

  配置文件C:\Program Files\NSClient++\nsclient.ini中可以修改Allowed hosts和Password。



四、检查服务、端口状态

  wKioL1Pe_JDhj20iAAGCwlJSWo4410.jpg

  启动服务后netstat -an查看使用的端口,check_nt使用12489、check_nrpe使用5666

  wKiom1Pe-USylqmsAADINoh6vtE326.jpg


五、测试监控命令

  1、获取帮助信息:

    cd /usr/local/nagios/libexec

    ./check_nt -h 

  2、监控运行时间:

    ./check_nt -H 10.188.1.172 -v UPTIME -p 12489 -s 123456

System Uptime - 0 day(s) 3 hour(s) 16 minute(s) |uptime=196

   -p指定端口,-s指定客户端安装时设置的密码,UPTIME是监控工具。

  3、监控CPU负载 -w警告-c紧急 -l监测参数(过去5分钟平均值,80%警告,90%紧急):

    ./check_nt -H 10.188.1.172 -v CPULOAD -w 80 -c 90 -l 5,80,90 -p 12489 -s 123456

CPU Load 9% (5 min average) |   ‘5 min avg Load‘=9%;80;90;0;100

  4、监控C盘使用率(-l C指定盘符):

    ./check_nt -H 10.188.1.172 -v USEDDISKSPACE -w 80 -c 90 -l C -p 12489 -s 123456

C:\ - total: 35.00 Gb - used: 31.68 Gb (91%) - free 3.32 Gb (9%) | ‘C:\ Used Space‘=31.68Gb;28.00;31.50;0.00;35.00


六、配置Nagios监控

  1、修改check_nt命令

    cd /usr/local/nagios/etc/objects/

    vi command.cfg

    :/check_nt        #在VI编辑器中查找

# ‘check_nt‘ command definition

define command{

        command_name    check_nt

        command_line    $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s 123456 -v $ARG1$ $ARG2$

        }

    :wq              #保存退出

  2、创建windows监控主机配置文件夹

    mkdir winserver

  3、创建windows监控主机配置文件

    这里可参考/usr/local/nagios/etc/objects/windows.cfg,可以直接复制过来修改,不过太乱了。

   cd winserver

   vi winhost_172.cfg

#定义监控主机,设置主机名(不可重复)、别名、IP地址。

define host{

        use             windows-server

        host_name       winhost_172

        alias           ywzhou_pc

        address         10.188.1.172

        }

#定义主机组,在winserver文件下只需要一个文件定义了主机组,其他文件就不要再定义了。

define hostgroup{

        hostgroup_name  windows-servers

        alias           Windows Servers

        }

#第一部分:定义基于check_nt命令的监控服务。

#一个配置文件中的service_description不能重复

#监控NSClient++客户端软件版本

define service{

        use                     generic-service

        host_name               winhost_172

        service_description     NSClient++ Version

        check_command           check_nt!CLIENTVERSION

        }

#监控在线时长

define service{

        use                     generic-service

        host_name               winhost_172

        service_description     Uptime

        check_command           check_nt!UPTIME

        }

#监控CPU负载,超过80%报警,超过90%严重

define service{

        use                     generic-service

        host_name               winhost_172

        service_description     CPU Load

        check_command           check_nt!CPULOAD!-l 5,80,90

        }

#监控内存使用情况,超过80%报警,超过90%严重

define service{

        use                     generic-service

        host_name               winhost_172

        service_description     Memory Usage

        check_command           check_nt!MEMUSE!-w 80 -c 90

        }

#监控C盘使用情况,可以复制该组服务来监控其他磁盘

define service{

        use                     generic-service

        host_name               winhost_172

        service_description     C:\ Drive Space

        check_command           check_nt!USEDDISKSPACE!-l c -w 80 -c 90

        }

#监控系统服务状态(是否启动),默认的W3SVC是IIS的服务,可以复制该组服务来监控其他系统服务

#可以在任务管理器中的服务项查看哪些服务器比较重要就监控起来,比如IIS、SQLServer等。

define service{

        use                     generic-service

        host_name               winhost_172

        service_description     W3SVC

        check_command           check_nt!SERVICESTATE!-d SHOWALL -l W3SVC

        }

#监控程序状态(是否运行),默认的Explorer.exe是桌面进程的程序,可以复制该组服务来监控其他系统服务

#可以在任务管理器中的进程项查看哪些服务器比较重要就监控起来。

define service{

        use                     generic-service

        host_name               winhost_172

        service_description     Explorer

        check_command           check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe

        }

#第二部分:定义基于check plugins的监控服务。

#安装NSCP时启用了Enable common check plugins功能

#check plugins是位于/usr/local/nagios/libexec下的Nagios自带的监控插件

#监控ftp服务

define service{

        use                     generic-service

        host_name               winhost_172

        service_description     FTP

        check_command           check_ftp

        }

#监控http服务

define service{

        use                     generic-service

        host_name               winhost_172

        service_description     HTTP

        check_command           check_http

        }

#监控ssh服务

define service{

        use                     generic-service

        host_name               winhost_172

        service_description     SSH

        check_command           check_ssh

        }

#监控dhcp服务

define service{

        use                     generic-service

        host_name               winhost_172

        service_description     DHCP

        check_command           check_dhcp

        }

#监控pop3服务

define service{

        use                     generic-service

        host_name               winhost_172

        service_description     POP

        check_command           check_pop

        }

#监控imap服务

define service{

        use                     generic-service

        host_name               winhost_172

        service_description     IMAP

        check_command           check_imap

        }

#监控smtp服务

define service{

        use                     generic-service

        host_name               winhost_172

        service_description     SMTP

        check_command           check_smtp

        }

#监控tcp端口,常用于监控多个网站使用不同端口时,监控端口状态

define service{

        use                     generic-service

        host_name               winhost_172

        service_description     TCP

        check_command           check_tcp!80

        }

#还有很多其他插件,暂时没空去研究,欢迎共同探讨。

wKiom1PfBWrzWuDlAAKSky3CRLY042.jpg


  4、载入监控配置并重启nagios

    vi /usr/local/nagios/etc/nagios.cfg

    cfg_dir=/usr/local/nagios/etc/objects/winserver

     service nagios restart


七、Nagios页面操作

  1、查看Hosts主机页面:


wKioL1PfSYGj-ApUAAUN_Weilno641.jpg


  2、查看Down主机,有两台PING不通(关机了)

wKiom1PfSGjSzT5pAALvr7M2DW0016.jpg

 

  3、查看主机hv02的信息,可以设置各种开关

wKioL1PfSYKxPXviAAWqv-Vq_zw044.jpg


  4、查看主机hv02的所有监控服务

wKioL1PfSYKyV6MjAAQukdenEbs102.jpg

  5、查看所有报警的监控服务

wKiom1PfSGmhtKh5AAUZJsWDd50535.jpg


  6、查看所有监控服务,观察正常状态的状态值status informationwKiom1PfSGnzAn8SAARdq-YbL2k282.jpg

wKioL1PfSYOSggFKAATEHiAJ5v4183.jpg


本文出自 “月晴星飞” 博客,请务必保留此出处http://ywzhou.blog.51cto.com/2785388/1535424