86565656 发表于 2019-1-13 11:51:31

nagios之通过nrpe实现监控编译安装

一,实验环境以及软件版本:
1,CentOS release 6.4(IP:192.168.1.110)[服务器监控端]
2,CentOS release 6.4(IP:192.168.1.129)
3,nagios-3.5.1;nagios-plugins-2.0.3.tar;nrpe-2.15.tar;check_mk-1.2.6.tar
二,Nagios 可以监控的功能有:
1、监控网络服务(SMTP、POP3、HTTP、NNTP、PING等);
2、监控主机资源(处理器负荷、磁盘利用率等);
3、简单地插件设计使得用户可以方便地扩展自己服务的检测方法;
4、并行服务检查机制;
5、具备定义网络分层结构的能力,用"parent"主机定义来表达网络主机间的关系,这种关系可被用来发现和明晰主机宕机或不可达状态;
6、当服务或主机问题产生与解决时将告警发送给联系人(通过EMail、短信、用户定义方式);
7、可以定义一些处理程序,使之能够在服务或者主机发生故障时起到预防作用;
8、自动的日志滚动功能;
9、可以支持并实现对主机的冗余监控;
10、可选的WEB界面用于查看当前的网络状态、通知和故障历史、日志文件等;
三,Nagios 服务器端安装:
1,安装前准备
During portions of the installation you'll need to have root access to your machine.

Make sure you've installed the following packages on your linux installation before continuing.


[*]Apache
[*]PHP
[*]GCC compiler
[*]GD development libraries
2,Create a new nagios user account,Create a new nagcmd group for allowing external commands to be submitted through the web interface. Add both the nagios user and the apache user to the group.

useradd -s /sbin/nologin nagios
groupadd nagcmd

usermod -G nagcmd nagios
usermod -G nagcmd apache [根据httpd运行时的属主]
3,编译安装nagios
tar xf nagios-3.5.1.gz
cd nagios
# ./configure --with-command-group=nagcmd --prefix=/usr/local/nagios
# make all
# make install

4,Install init script, sample config files and set permissions on the external command directory
# make install-init
# make install-config
# make install-commandmode
5,在Apache中使用基本认证的方式创建一个nagiosadmin的用户用于Nagios的WEB界面登录,用户登录口令和账号信息会存储到/usr/local/nagios/etc/passwd.users文件中。相关apache配置文件放到/etc/http/conf.d目录下,文件名是nagios.conf。此文件默认,不需要修改。
# make install-webconf
# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

New password:
Re-type new password:
Adding password for user nagiosadmin
注意:Nagios主程序到此已经安装完成,当这只是一个控制中心,而能够起到服务监测和系统监测等功能的是众多Nagios的插件,因此在安装了Nagios平台之后还需要安装插件。

6,nagios插件安装
# tar xf nagios-plugins-2.0.3.tar.gz

# cd nagios-plugins-2.0.3
# ./configure --with-nagios-user=nagios --with-nagios-group=nagios --prefix=/usr/local/nagios
# make && make install
7,修改命令执行环境,增加nagios至服务列表,启动nagios,httpd运行。
# vim /etc/profile.d/nagios.sh
增加:export PATH=$PATH:/usr/local/nagios/bin
# . /etc/profile.d/nagios.sh
# chkconfig --add nagios
可以在浏览器上访问链接http://192.168.1.110/nagios,输入账号和密码,如果能够正常看到页面,证明主程序和插件都安装和配置成功。
四,Nagios 被监控端插件安装:
      这里采用NRPE外部构件监测远程主机。NRPE外部构件可以在远程的Linux/Unix主机上执行插件程序。在被监测主机上部署NRPE,相当于一个守护进程负责监听。而在监测主机使用check_nrpe并通过SSL连接访问这个daemon,然后调用被监测方相应安装目录下的check_disk,check_load等脚本获取信息并将结果传递到监测主机。同时这些脚本也有能力监测到其他主机的相关信息。下面是官网上的一张图片:
http://s3.运维网.com/wyfs02/M00/5D/D9/wKiom1UlKGfjg5FMAAFdm4HMCJ0394.jpg
  1,在192.168.1.129上安装,新建nagios账号
  # useradd nagios

  2,安装nagios-plugin
  # cd nagios-plugins-2.0.3
  # ./configure --prefix=/usr/local/nagios
  # make && make install
  3,对目录设置权限
  # chown nagios.nagios /usr/local/nagios
  # chown -R nagios.nagios /usr/local/nagios/libexec
  4,安装nrpe-2.15
  # cd nrpe-2.15
  # ./configure
  # make all
  # make install-plugin
  # make install-daemon
  # make install-daemon-config
  5,nrpe安装为依赖xinetd超级进程的非独立服务,所以前提是必须安装xinetd。一般系统都会自动安装该服务。执行下面的命令将NRPE安装为xinetd超级进程所管理的进程之一。
  # make install-xinetd
  /usr/bin/install -c -m 644 sample-config/nrpe.xinetd /etc/xinetd.d/nrpe
  系统提示创建了/etc/xinetd.d/nrpe文件,vim打开此文件,并且在最后添加允许实施监测的主机IP地址,这里是192.168.1.10,那么整个配置文件全文如下:
# default: on
# description: NRPE (Nagios Remote Plugin Executor)
service nrpe
{
      flags         = REUSE
      socket_type   = stream
      port            = 5666
      wait            = no
      user            = nagios
      group         = nagios
      server          = /usr/local/nagios/bin/nrpe
      server_args   = -c /usr/local/nagios/etc/nrpe.cfg --inetd
      log_on_failure+= USERID
      disable         = no
      only_from       = 127.0.0.1 192.168.1.110
}  6,修改/etc/services,执行命令对check_nrpe插件进行测试:
  最后一行增加:nrpe            5666/tcp                # nrpe
  # service xinetd restart
  # netstat -tln | grep 5666
  tcp      0      0 :::5666                     :::*         LISTEN
  # /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1
  NRPE v2.15
  7,在监控主机上安装check_nrpe插件:
  # tar xf nrpe-2.15.tar.gz
  # cd nrpe-2.15
  # ./configure
  错误:checking for SSL headers... configure: error: Cannot find ssl headers
  # yum -y install openssl-devel
  # make all
  # make install-plugin
  此处只需要make install-plugin,然后测试与被监控端的通信
  # /usr/local/nagios/libexec/check_nrpe -H 192.168.1.129
  NRPE v2.15
  8,为使用check_nrpe插件建立Nagios命令定义以及服务定义,在commands.cfg中增加对check_nrpe的定义
  # vi /usr/local/nagios/etc/objects/commands.cfg
define command{
       command_name check_nrpe
       command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
       }  9,创建hosts.cfg主要用来指定被监控的主机地址以及相关属性信息

  # vim objects/hosts.cfg
define host{   
      use                  linux-server          #引用主机linux-server的属性信息,linux-server主机在templates.cfg文件中进行了定义。
      host_name            Nagios-Conan3          #主机名
      alias               Nagios Conan3          #主机别名
      address                192.168.1.129         #被监控的主机地址,这个地址可以是ip,也可以是域名。
      }   
#定义一个主机组   
define hostgroup{      
      hostgroup_name         linux-servers      #主机组名称,可以随意指定。
      alias               linux servers      #主机组别名
      members                Nagios-Conan3      #主机组成员,其中“Nagios-Linux”就是上面定义的主机。   
      }  10,创建services.cfg,并中定义对Nagios-Conan3的监控了

  # vim objects/services.cfg
         services.cfg文件主要用于定义监控的服务和主机资源,例如监控http服务、ftp服务、主机磁盘空间、主机系统负载等等。Nagios-Server 和Nagios-Windows 相关服务已在相应的配置文件中定义,这边只需要定义Nagios-Conan3 相关服务即可,这里只定义一个检测是否存活的服务来验证配置文件的正确性。
  
  define service{
  use                local-service          #引用local-service服务的属性值,local-service在templates.cfg文件中进行了定义。
  host_name            Nagios-Conan3          #指定要监控哪个主机上的服务,“Nagios-Conan3”在hosts.cfg文件中进行了定义。
  service_description   check-host-alive         #对监控服务内容的描述,以供维护人员参考。
  check_command         check-host-alive         #指定检查的命令。
  }
  11,在nagios.cfg中增加
  cfg_file=/usr/local/nagios/etc/objects/hosts.cfg
  cfg_file=/usr/local/nagios/etc/objects/services.cfg
  
出现的错误:
  # service nagios restart
  Running configuration check... CONFIG ERROR!Restart aborted.Check your Nagios configuration.
  nagios -v /usr/local/nagios/etc/nagios.cfg 排查错误
  # nagios -v /usr/local/nagios/etc/nagios.cfg
Warning: Duplicate definition found for hostgroup 'linux-servers' (config file '/usr/local/nagios/etc/objects/hosts.cfg', starting on line 6)
Error: Could not add object property in file '/usr/local/nagios/etc/objects/hosts.cfg' on line 7.
   Error processing object config files!  原因分析:
  在services.cfg和localhost.cfg中定义hostgroup_name时名字重复了,需要修改一下。
  

  # service nagios restart
  Running configuration check...done.
  Stopping nagios: done.
  Starting nagios:This account is currently not available.
   done.
  出现:This account is currently not available.
  解决办法:
  # chsh -s /bin/bash nagios
  Changing shell for nagios.
  Shell changed.
  # service nagios restart
  Running configuration check...done.
  Stopping nagios: done.
  Starting nagios: done.
  

  测试成功:
http://s3.运维网.com/wyfs02/M00/5D/D5/wKioL1UlSIGxp_iyAAJrf5_psN0068.jpg
http://s3.运维网.com/wyfs02/M00/5D/DA/wKiom1UlRzuScXGlAAJarCr-1L4040.jpg
  

  

  
  参考资料:
   1,http://www.cnblogs.com/mchina/archive/2013/02/20/2883404.html
        2,Nagios官方网站:http://www.nagios.org/
  




页: [1]
查看完整版本: nagios之通过nrpe实现监控编译安装