Nagios环境下监控windows机方法介绍

Nagios环境下监控windows机方法介绍:

(以下方法默认是在配置好了nagios服务器端后所进行的操作)

NSClient的原理如下图

Nagios使用NSClient++监控远程Windows主机

Nagios3.0.5在CentOS5.2中安装(三)

可以看到,NSClientnrpe最大的区别就是:

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

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

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

 

 

 

 

 

Windows机中进行以下操作:

安装NSClient

下载NSClient++-0.3.8-Win32.zip

解压为C:\NSClient++

打开cmd 切换到C:\NSClient++

执行nsclient++ /install进行安装

 

执行nsclient++ SysTray 注意大小写,这一步是安装系统托盘,时间稍微有点长

(注意,SysTray为系统托盘管理,只用于将NSClient++的运行情况反映在系统的托盘中,所以要是此步不通过的话也没有直接的影响,只是方便用于的检查而已,实际中,还可以在windows系统服务器(右键“我的电脑”->管理->服务器)中来检查NSClient++的运行情况)

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

看到下图就说明NSClient服务已经安装上了

双击打开,点”登录”标签,在”允许服务与桌面交互”前打勾

 

编辑C:\NSClient++下的NSC.ini文件

[modules]部分的所有模块前面的注释都去掉,除了CheckWMI.dll and RemoteConfiguration.dll这两个

[Settings]部分设置'password'选项来设置密码,作用是在nagios连接过来时要求提供密码.这一步是可选的,我这里方便起见跳过它,不要密码.

[Settings]部分'allowed_hosts'选项的注释去掉,并且加上运行nagios的监控主机的IP.我改为如下这样allowed_hosts=127.0.0.1/32,192.168.0.111 以逗号相隔.这个地方是支持子网的,如果写成192.168.0.0/24则表示该子网内的所有机器都可以访问.如果这个地方是空白则表示所有的主机都可以连接上来.注意是[Settings]部分的,因为[NSClient]部分也有这个选项.

必须保证[NSClient]'port'选项并没有被注释,并且它的值是'12489',这是NSClient的默认监听端口

CMD中执行nsclient++ /start启动服务,注意所在目录是C:\NSClient++

 

(只要显示出来了就证明服务已启动)

这时在桌面右下角的系统托盘处会出现一个黄色的M字样的图标

(要是之前启动SysTray中失败的话将不会显示此图标)

查看服务

已经正常启动了.注意服务默认设的是”自动”,也就是说是开机自动启动的.

cmd里面执行netstat an可以看到已经开始监听tcp12489端口了

(要是没有防火墙的话可以忽略此步)这样外部就可以访问了吗?!防火墙也要打开tcp12489端口,否则nagios检查此服务的时候会报socket超时错误.critical!后果很十分严重啊.我就犯了这个错误,所以特别强调一下.

这样被监控机的配置就搞定了,它就等待nagios发出某个监控请求,然后它执行请求将监控的结果发回到nagios监控主机上.

 

 

 

 

 

 

接下来配置nagios服务器里面的内容

linux配置|   因为nagios是模块化调用,先到配置文件打开windows相关模块

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

# Definitions for monitoring the local (Linux) host

cfg_file=/usr/local/nagios/etc/objects/localhost.cfg

# Definitions for monitoring a Windows machine

cfg_file=/usr/local/nagios/etc/objects/windows.cfg   #去掉这的注

 

打开模块后配置windows.cfg

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

define host{

        use            windows-server 

        host_name      winserver       #被监控主机名

        alias           My Windows Server     

        address        192.168.0.8     ; 被监控的windows地址

#把下面的host_name都改成winserver

define service{

        use                     generic-service

        host_name               winserver

        service_description        CPU Load

        check_command          check_nt!CPULOAD!-l 5,80,90   #监控CPU使用

        }

define service{

        use                     generic-service

        host_name               winserver  *(在这里添加another服务器)

        service_description        Memory Usage

        check_command          check_nt!MEMUSE!-w 80 -c 90   #监控内存

        }

 

 

define service{
use generic-service
host_name lan-masterdata
service_description F:\ Drive Space
check_command check_nt!USEDDISKSPACE -l f -w 80 -c 90;-l f
表示是监控F:\
}

 

 

define service{
        use                     generic-service
        host_name               win14,win153,win152,win227,win91,win231,win51
        service_description     port80
        check_command           check_tcp!80
        check_period          24x7
        max_check_attempts    1
        normal_check_interval 1
        retry_check_interval  1
        notification_interval   1
        notification_period     24x7
        notification_options    u,c,r

}


define service{
        use                             local-service         ; Name of service template to use
        host_name                 win14,win153,win152,win227,win91,win231,win51
        service_description        PING
         check_period          24x7
        max_check_attempts    1
        normal_check_interval 1
        retry_check_interval  1
        notification_interval   1
        notification_period     24x7
        notification_options    u,c,r

        check_command              check_ping!100.0,20%!500.0,60%
        }


/usr/local/nagios/etc/nagios.cfg:

interval_length  表示时间单位,默认为60,即1分钟

/usr/local/nagios/etc/objects/services.cfg:

normal_check_interval  表示重新检测的时间间隔,默认为3个时间单位

check_interval  normal_check_interval的作用一样,只能在3.X中使用

etry_check_interval  重试时间

max_check_attempts 这个是出现故障的连接次数,达到这个次数之后就报警

关于max_check_attemptsnormal_check_intervalretry_check_interval三个参数。
首先要说明两个概念,一、软态:被监控项处于retry_check检测周期内的非正常状态;二、硬态:被监控项达到max_check_attempts最大次数后的非正常状态;除此之外的状态,我们估且称之为常态
我们试着看看设置如下参数时,Nagios是怎么做状态检测及告警的:
引用
        max_check_attempts      3
        normal_check_interval      3
        retry_check_interval        2
        notification_interval         3

首先,Nagios每三分钟检测一次服务,当某次检测到服务状态为异常时,直接进入软态(1/3 soft state),此后,以每2分钟(retry_check_interval)的检测频率,再进行2次(一共进行3次检测,从而达到 max_check_attempts)检测,如果这两三检测服务都为异常,则直接进入硬态(hard state)。进入硬态后,Nagios以每3分钟(normal_check_interva)一次的频率检测服务,这与常态时是一样的;同时每3分钟 notification_interval)进行一次告警。

 

最后,当nagios服务器和windowns客户端都准备好的时候,先重启nagios服务,然后打开http//localhost/nagios/刷新后就会在servies中看到被检测的win机了。

Enjoy!

你可能感兴趣的:(nagios,环境下监控,windows机,方法介绍)