五、     被监控主机设置 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

这一部分内容参考yahoon小屋的nagios全攻略(四)----监控linux上的”本地信息”,地址是:http://yahoon.blog.51cto.com/13184/41893

nrpe的工作原理图:

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

highlight监控部署_运维

       nrpe总共由两部分组成:

– check_nrpe 插件 , 位于在监控主机上

– nrpe daemon , 运行在远程的linux主机上(通常就是被监控机)

按照上图,整个的监控过程如下:

当nagios需要监控某个远程linux主机的服务或者资源情况时

1.nagios 会运行check_nrpe这个插件,告诉它要检查什么.

2.check_nrpe 插件会连接到远程的nrpe daemon,所用的方式是ssl

3.nrpe daemon 会运行相应的nagios插件来执行检查

4.nrpe daemon 将检查的结果返回给check_nrpe插件,插件将其递交给nagios做处理.

注意:nrpe daemon需要nagios插件安装在远程的linux主机上,否则,daemon不能做任何的监控.

 

      

1、linux 主机        1)添加用户

       2) 安装nagios插件

tar xvf  nagios-plugins-<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />1.4.14.tar.gz

cd nagios-plugins-1.4.14

./configure  --prefix=/usr/local/nagios   

make

make install

修改目录权限:

chown –R  nagios:nagios  /usr/local/nagios

chown –R  nagios:nagios  /usr/local/nagios/libexec

2) 安装nrpe

tar  xvf  nrpe-2.12.tar.gz

cd  nrpe nrpe-2.12.

./configure  --prefix=/usr/local/nagios    //也把它放到nagios这一个目录

make  all

make  install-plugin    //安装check_nrpe这个插件

make install-daemon     //安装deamon

make install-daemon-config    //安装配置文件

注意:安装nrpe时,要先安装SSL这一个工具,因为监控服务器与被监控主机之间通讯时是通过SSL的方式来进行的。

3)修改nrpe.cfg配置文件

allowed_hosts=127.0.0.1,192.168.0.10    //允许监控服务器访问,中间用逗号隔开;

server_address=192.168.0.10      //以单独的守护进程运行

# 修改NRPE的监控命令,添加相应的命令;

# The following examples use hardcoded command arguments...     
    
command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10     
    
command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20     
    
#command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/hda1     
    
command[check_df]=/usr/local/nagios/libexec/check_disk -w 20 -c 10     
    
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z     
    
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200      
    
command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%     
    
command[check_tcp]=/usr/local/nagios/libexec/check_tcp -p 80

4)启动nrpe服务

# /usr/local/nagios/bin/nrpe –c /usr/local/nagios/etc/nrpe.cfg -d

5) 在本机测试一下nrpe.cfg里面定义的命令有没有错误

/usr/local/nagios/libexec/check_nrpe -H localhost     
    
/usr/local/nagios/libexec/check_nrpe -H localhost  –c  check_users     
    
/usr/local/nagios/libexec/check_nrpe -H localhost  –c  check_load     
    
/usr/local/nagios/libexec/check_nrpe -H localhost  –c  check_df     
    
/usr/local/nagios/libexec/check_nrpe -H localhost  –c  check_zombie_procs     
    
/usr/local/nagios/libexec/check_nrpe -H localhost  –c  check_total_procs     
    
/usr/local/nagios/libexec/check_nrpe -H localhost  –c  check_swap     
    
/usr/local/nagios/libexec/check_nrpe -H localhost  –c  check_tcp

6)在监控服务器上修改/usr/local/nagios/etc/services.cfg文件,添加相对应的监控项目;

2、windows主机

       如果被监控主机是windows系统的话,需要安装nsclient++-0.3.6-win32.msi   这一个客户端工具;下载地址:http://sourceforge.net/projects/nscplus/

       它的工作原理图如下:

      

highlight监控部署_操作系统_02

可以看到它是通过监控服务器上的check_nt这一个插件来检查WINDOWS机器的服务,当监控服务器将监控请求发给NSClient后,通过NSClient客户端检查监控项目,所有的监控都是由NSClient来完成;

       双击安装,完成后进到安装目录,我的是安装在F:\Program Files\NSClient++,用记事本打开NSC.ini文件,修改如下:

在 [modules]部分的所在模块前面的注释“;”去掉,只保留CheckWMI.dll和RemoteConfiguration.dll这两个不用去掉注释;

在 [Settings] 部分找到”allowed_hosts”选项,将前面的 “;”注释去掉,并在后面加上监控服务器的IP,这里也可以写成一个子网,如:192.168.0.0/24的形式,表示所有来自这个子网的机器都可以访问。

修改后如下:allowed_hosts=127.0.0.1/32,192.168.0.10 ;在多个IP之间用逗号相隔。

在 [NSClient] 部分找到“port=12489”这一行,并把前面的注释去掉;这是NSClinet的默认监听端口。

 

打开CMD ,进入到NSClient的安装目录,如下:

F:\Program Files\NSClient++> dir
    
2009-10-10  20:54    <DIR>          .
    
2009-10-10  20:54    <DIR>          ..
    
2009-06-14  13:20           442,368 nsclient++.exe
    
2009-06-14  13:24           278,528 nstray.exe
    
2009-10-10  23:08            13,087 NSC.ini
    
2009-06-14  13:13            43,129 changelog.txt
    
2008-06-15  18:20             8,804 counters.defs
    
2008-06-15  18:20            18,351 license.txt
    
2009-10-10  20:54    <DIR>          modules
    
2009-10-10  20:54    <DIR>          scripts
    
2009-10-14  20:00            26,592 nsclient.log
    
               7 个文件        830,859 字节
    
               4 个目录  3,589,242,880 可用字节
    
//依次执行下面的命令:
    
F:\Program Files\NSClient++> nsclient++.exe  /install
    
e NSClient++.cpp(212) Service installation failed: Service already installed!
    
F:\Program Files\NSClient++> nsclient++.exe  /install SysTray   //注意大小写;
    
Service SysTray installed...     
    
l NSClient++.cpp(224) Service installed!     
    
F:\Program Files\NSClient++>nsclient++.exe /start    //启动服务

接下来在运行里面输入:services.msc 打开服务管理;

看到下图时就表明已经安装上了:

highlight监控部署_操作系统_03

在NSClinet++上面点右键属性,打开服务,如下图:

highlight监控部署_highlight监控部署_04

服务已经启动了

点登录,在登录登录身份下面勾选允许服务与桌面交互,如下图:

highlight监控部署_网络_05

到这里就已经在WINDOWS主机上安装好了,如果你有防火墙的话请打开TCP的12489端口,否则nagios检查此服务的时候会报socket 超时错误。

这样被监控的主机就搞定了,现在回到nagios-server 监控服务器上做下面三个步骤:

1) 安装监控windows的插件(已经默认安装了check_nt)

2 )定义命令

#'check_nt' command definition    
   
define command{    
   
        command_name    check_nt    
   
        command_line    $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$    
   
        }

//这一部分在3.20里面默认就已经有了,不用再添加;

3 )定义要监控的项目

修改/usr/local/nagios/etc/services.cfg文件,增加windows 被监控主机的监控项目;

详情请参阅前面第三步内容;

关于check_nt的用法可以使用下面命令查看帮助:

# /usr/local/nagios/libexec/check_nt  -h

下面给出一些常用的参数:

1) 监控windows服务器运行的时间

check_command           check_nt!UPTIME

2) 监控Windows服务器的CPU负载,如果5分钟超过80%则是warning,如果5分钟超过90%则是critical

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

3) 监控Windows服务器的内存使用情况,如果超过了80%则是warning,如果超过90%则是critical .

check_command           check_nt!MEMUSE!-w 80 -c 90

4) 监控 Windows 服务器 C:\ 盘的使用情况 , 如果超过 80% 已经使用则是 warning, 超过 90% 则是 critical

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

注:-l后面接的参数用来指定盘符

5) 监控 Windows 服务器 D:\ 盘的使用情况 , 如果超过 80% 已经使用则是 warning, 超过 90% 则是 critical

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

6) 监控Windows服务器的W3SVC服务的状态,如果服务停止了,则是critical

check_command           check_nt!SERVICESTATE!-d SHOWALL -l W3SVC

7) 监控Windows服务器的 Explorer.exe 进程的状态 , 如果进程停止了 , 则是 critical

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

 

这一部分被控主机设置这一部分是参考yahoon的小屋   原文:http://yahoon.blog.51cto.com/13184/41897


转载于:https://blog.51cto.com/kyhack/213367