Acfe 发表于 2019-1-12 12:38:49

Centos 6.5 监控配置Nagios (二)

  监控部署
  
  前面已经把最基本的Nagios以及插件安装好了,现在只能对本机进行监控,要想监控远程主机,就必须通过类似于NRPE的软件来实现。
  Nagios通过NRPE来远端管理服务的过程
  1. Nagios服务端执行安装在它里面的check_nrpe插件,并告诉check_nrpe 去检测哪些服务。
  2. 通过SSL,check_nrpe连接远端机子上的NRPE daemon
  3. 被监控端的NRPE运行本地的各种插件去检测本地的服务和状态(check_disk,..etc)
  4. 最后,被监控端的的NRPE把检测的结果传给nagios服务端的check_nrpe,check_nrpe再把结果送到Nagios状态队列中。
  5. Nagios 依次读取队列中的信息,再把结果显示出来。
  NRPE 总共由两部分组成:
  1、check_nrpe 插件,位于监控主机上
  2、NRPE daemon,运行在远程的Linux主机上(通常就是被监控机)
  当Nagios 需要监控某个远程Linux 主机的服务或者资源情况时:
  Nagios 会运行check_nrpe 这个插件,告诉它要检查什么;
  check_nrpe 插件会连接到远程的NRPE daemon,所用的方式是SSL;
  NRPE daemon会运行相应的Nagios插件来执行检查;
  NRPE daemon将检查的结果返回给check_nrpe 插件,插件将其递交给nagios做处理。
  注意:NRPE daemon需要Nagios 插件安装在远程的Linux主机上,否则,daemon不能做任何的监控。
  第一种方法
  服务端(监控端)安装过程
  1、安装nrpe所需的依赖,使用yum命令安装即可。
#yum -y install openssl openssl-devel  2、解压nrpe-2.15.tar.gz,进入其目录,执行如下命令。
# ./configure --with-nrpe-user=nagios  
# make all
  
# make install-plugin
  3、安装完成后会在/usr/local/nagios/libexec/下生成check_nrpe文件
  
  
  客户端(被监控端)的安装过程
  nagios-plugins-2.0.tar    (nrpe依赖于这个插件)
  被监控端必须得有/usr/local/nagios/libexec/check_load 检测脚本文件
  nrpe-2.12.tar                (远程通信)
  首先创建安装用户:
#useradd -s /sbin/nologin nagios  解压安装Nagios插件:
#wget http://nagios-plugins.org/download/nagios-plugins-2.0.tar.gz  
#tar xzf nagios-plugins-2.0.tar.gz
  
#cd nagios-plugins-2.0
  
#./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios
  
#make && make install
  1、安装nrpe所需的依赖,使用yum命令安装即可。
# yum install openssl-devel -y   //check_nrpd会通过ssl的方式,连接远端的NRPE Daemon  2、解压nrpe-2.12.tar.gz,进入其目录,执行如下命令:
#tar zxf nrpe.2.12.tar  
#cd nrpe-2.12
  
#./configure
  
#make all
  
#make install-plugin
  
#make install-daemon
  
#make install-daemon-config
  3、修改nrpe.cfg配置文件,允许监控端通过check_nrpe进行连接nrpe守护进程,默认只允许本机,加上监控端的IP即可。
allowed_hosts=127.0.0.1,192.168.32.55  4、启动nrpe守护进程,也可以将如下命令加入到开机启动脚本/etc/rc.local
# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d    //启动nrpe,监听TCP 5666 端口  OK现在安装好了,现在开始配置:
  5、验证是否安装及启动成功,可在服务端执行如下命令:(在监控端验证)
# /usr/local/nagios/libexec/check_nrpe -H 192.168.32.11  
NRPE v2.12    //显示被监控端nrpe的版本
  
# /usr/local/nagios/libexec/check_nrpe -H 192.168.32.11 -c check_load
  
//通过nrpe执行远端的检测插件
  
  
  服务端(监控端)的配置
  1、定义命令,在/usr/local/nagios/etc/objects/commands.cfg中增加对check_nrpe的定义,加入如下内容:
define command{  
      command_name    check_nrpe                     //定义命令名称为check_nrpe,在services.cfg中要使用这个名称.
  
      command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$   //这是定义实际运行的插件程序
  
}
  -c后的$ARG1$参数是传给nrpe daemon执行的检测命令,它必须是nrpe.cfg中所定义的那几条命令中的一条。在定义监控服务中使用check_nrpe的时候要用!带上这个参数。
  
  2、在/usr/local/nagios/etc/nagios.cfg配置文件中加上如下内容:
cfg_file=/etc/nagios/objects/linux.cfg   //让nagios包含此配置文件  3、定义主机与check_nrpe要检测的远端command名字。这里我们可以将主机与服务写在一个文件里,创建/usr/local/nagios/etc/objects/linux.cfg文件,写入如下内容:
http://common.cnblogs.com/images/copycode.gif
define host{                                    #定义一个主机  

  
      use                  linux-server         #引用etc/objects/templates.cfg中的linux-server配置
  
      host_name                linux11
  
      alias               linux11            #定义一个主机名,并不是http的实际主机名,任意即可,但要继续,后面要调用
  
      address                192.168.32.11         #指定地址
  
      }
  

  
define service{                                     #定义一个服务
  
      use                  generic-service          #引用etc/objects/templates.cfg中的generic-service配置
  
      host_name               linux11            #引用主机名
  
      service_description         cpu_load               #定义监控服务名,就是在web网页上显示的服务名
  
      check_command             check_nrpe!check_load       #定义要执行的命令:让check_nrpe调用被监控端的check_load命令执行
  
      notifications_enabled         0
  
      }
  

  

  
#后面可以定义N个服务
http://common.cnblogs.com/images/copycode.gif
  4、重启nagios服务。打开nagios监控网站。可以查看添加结果
  5、添加监控服务的时候,要获得客户端的数据(有几条是默认已添加的,具体还要根据自己需要添加),
  简单方法可以在监控端增加需要监控的服务(以获得数据传给服务端)
  再被监控端,打开/usr/local/nagios/etc/nrpe.cfg这个配置文件,找到
command=/usr/local/nagios/libexec/check_users -w 5 -c 10  
command=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
  
command=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda1
  
command=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
  
command=/usr/local/nagios/libexec/check_procs -w 150 -c 200
  

  

  

  
一般需要指定监控端的IP -w(警告值) -c(临界值):
  
-H 监控端的IP -w 参数 -c 参数
  第二种方法(https://www.cnblogs.com/ilanni/p/4366232.html)
  第一种方法有一点不足的情况,就是我们对监控对象的阀值修改很不容易。现在的情况是,每一次修改阀值都要到被监控主机上修改,很不方便。
  其实,我们完全可以通过传递参数的形式来达到修改不同监控主机的阀值。
  但是要实现以上要求,我们需要在被监控主机和nagios服务器上进行配置。
  第一、在安装配置NRPE时,必须要加上参数--enable-command-args,这个我们在前面安装配置NRPE时已经加上。如下:
https://images0.cnblogs.com/blog/62984/201503/251713551458466.png
  注意:如果在安装配置NRPE时,没有加上--enable-command-args参数,那么需要把已经安装好的NRPE删除掉重新安装。这一点非常重要。
  第二、修改nrpe.cfg文件中参数dont_blame_nrpe=1。如下:
https://images0.cnblogs.com/blog/62984/201503/251713570526081.png
  以上两处修改完毕后,我们现在来开始进行配置一个测监控对象。
  修改nrpe.cfg文件,去掉check_disk前的注释,并把其命名为check_disk_nrpe,如下:
  vi /usr/local/nagios/etc/nrpe.cfg +234
  其中+234表示显示第234行。
https://images0.cnblogs.com/blog/62984/201503/251713589588397.png
  command=/usr/local/nagios/libexec/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
  注意:该check_disk_nrpe命令中$ARG1$、$ARG2$、$ARG3$参数。等会我们在nagios服务器上传递的参数,就是这个进行一一对应。
  注意:修改nrpe.cfg文件后,一定要重新启动NREP daemon。如下:
  pkill nrpe
  /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
  netstat -tunlp |grep nrpe
https://images0.cnblogs.com/blog/62984/201503/251714004582655.png
  5.2 nagios服务器配置
  在被监控主机上修改完毕后,我们现在切换nagios服务器上进行配置。
  在command.cfg文件中定义一个名为check_disk_ilanni命令,如下:
  define command{
  command_name check_disk_ilanni
  command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -a $ARG2$ $ARG3$ $ARG4$
  }
https://images0.cnblogs.com/blog/62984/201503/251714034589171.png
  注意:
  command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -a $ARG2$ $ARG3$ $ARG4$
  命令中$ARG1$参数接收的是被监控主机nrpe.cfg文件中定义的监控命令,在此我们是以check_disk_nrpe命令为例的。
  -a表示接收额外的参数,其中$ARG2$参数对应被监控主机check_disk_nrpe命令中的$ARG1$参数,$ARG3$参数对应被监控主机check_disk_nrpe命令中的$ARG2$参数,$ARG4$参数对应被监控主机check_disk_nrpe命令中的$ARG3$参数。
  为了更能形象的说明问题,特意画了一张图:
https://images0.cnblogs.com/blog/62984/201503/251714055672017.png
  以上定义完毕后,我们现在修改248.cfg文件为192.168.1.248主机定义此服务。内容如下:
  define service{
  use local-service,srv-pnp
  host_name ilanni
  service_description DISK
  check_command check_disk_ilanni!check_disk_nrpe!10%!5%!/tmp
  }
https://images0.cnblogs.com/blog/62984/201503/251714065203175.png
  check_command check_disk_ilanni!check_disk_nrpe!10%!5%!/tmp
  表示监控192.168.1.248主机的/tmp分区,当该分区剩余10%时,就发出报警,当该分区剩余5%时,就发出紧急告警。
  248.cfg文件配置完毕后,我们再来重新加载nagios程序,如下:

  /etc/init.d/nagios>https://images0.cnblogs.com/blog/62984/201503/251714074274617.png
  现在登录到nagios上看看,实际的监控情况。如下:
https://images0.cnblogs.com/blog/62984/201503/251714083331761.png
  通过上图,我们可以很明显的看出,我们通过248.cfg的文件传递的参数已经成功的传递到被监控主机192.168.1.248上,并且也获得了正确的数据。
  本文转载自:
  http://www.cnblogs.com/5201351/p/4334089.html
  https://www.cnblogs.com/ilanni/p/4366232.html


页: [1]
查看完整版本: Centos 6.5 监控配置Nagios (二)