设为首页 收藏本站
查看: 757|回复: 0

Centos 6.5 监控配置Nagios (二)

[复制链接]

尚未签到

发表于 2019-1-12 12:38:49 | 显示全部楼层 |阅读模式
  监控部署
  
  前面已经把最基本的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、验证是否安装及启动成功,可在服务端执行如下命令:(在监控端验证)
[root@nagios_server libexec]# /usr/local/nagios/libexec/check_nrpe -H 192.168.32.11  
NRPE v2.12    //显示被监控端nrpe的版本
  
[root@nagios_server libexec]# /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文件,写入如下内容:

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个服务

  4、重启nagios服务。打开nagios监控网站。可以查看添加结果
  5、添加监控服务的时候,要获得客户端的数据(有几条是默认已添加的,具体还要根据自己需要添加),
  简单方法可以在监控端增加需要监控的服务(以获得数据传给服务端)
  再被监控端,打开/usr/local/nagios/etc/nrpe.cfg这个配置文件,找到
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_sda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda1
  
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
  

  

  

  
一般需要指定监控端的IP -w(警告值) -c(临界值):
  
-H 监控端的IP -w 参数 -c 参数
  第二种方法(https://www.cnblogs.com/ilanni/p/4366232.html)
  第一种方法有一点不足的情况,就是我们对监控对象的阀值修改很不容易。现在的情况是,每一次修改阀值都要到被监控主机上修改,很不方便。
  其实,我们完全可以通过传递参数的形式来达到修改不同监控主机的阀值。
  但是要实现以上要求,我们需要在被监控主机和nagios服务器上进行配置。
  第一、在安装配置NRPE时,必须要加上参数--enable-command-args,这个我们在前面安装配置NRPE时已经加上。如下:

  注意:如果在安装配置NRPE时,没有加上--enable-command-args参数,那么需要把已经安装好的NRPE删除掉重新安装。这一点非常重要。
  第二、修改nrpe.cfg文件中参数dont_blame_nrpe=1。如下:

  以上两处修改完毕后,我们现在来开始进行配置一个测监控对象。
  修改nrpe.cfg文件,去掉check_disk前的注释,并把其命名为check_disk_nrpe,如下:
  vi /usr/local/nagios/etc/nrpe.cfg +234
  其中+234表示显示第234行。

  command[check_disk_nrpe]=/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

  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$
  }

  注意:
  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$参数。
  为了更能形象的说明问题,特意画了一张图:

  以上定义完毕后,我们现在修改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
  }

  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>

  现在登录到nagios上看看,实际的监控情况。如下:

  通过上图,我们可以很明显的看出,我们通过248.cfg的文件传递的参数已经成功的传递到被监控主机192.168.1.248上,并且也获得了正确的数据。
  本文转载自:
  http://www.cnblogs.com/5201351/p/4334089.html
  https://www.cnblogs.com/ilanni/p/4366232.html



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-662367-1-1.html 上篇帖子: Nagios监控打印机 下篇帖子: 监控软件之二nagios
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表