zoukankan      html  css  js  c++  java
  • centos7上安装nagios

    前言:Nagios是一款开源的免费网络监视工具,可以监控WindowsLinuxUnix的主机状态,交换机路由器等网络设备,在系统或服务状态异常时发出邮件或短信报警,第一时间通知网站运维人员。流量监控不是他的强项,流量监控建议使用cacti(可以绘制非常直观的图形。

    总结一下nagios主要可以监控以下方面:

    主机是否宕机(通过ping命令,如果ping不通会认为主机属于宕机状态,但不影响所监控的其他服务)

    服务器资源(cpu使用率、硬盘剩余空间等)

    网络服务(smtppop3http

    l 监控网络设备(路由器、交换机等)

     

    一、需要了解的知识点

    1、nagios工作原理

    Nagios本身不包括监控主机和服务的功能。所有的监控、监测功能都是通过各种插件来完成的。安装完nagios之后,在nagios主目录下的/libexex里面放有nagios自带的插件,如:check_disk是检查磁盘空间的插件,check_load是检查cpu负载的插件,每一个插件可以通过运行./check_xxx -h命令来检查其使用方法和功能。

    2、nagios的四种监控状态

    Nagios可以识别四种状态返回信息。0OK)表示状态正常(绿色显示),1WARNING)表示出现警告(黄色),2CRITICAL)表示出现非常严重错误(红色),3UNKNOWN)表示未知错误(深黄色),nagios根据插件返回来的值来判断监控对象的状态,并通过web显示出来,以供管理员即时发现故障。

    3、nagios通过nrpe插件来远程管理服务的工作过程

    1) Nagios执行安装在它里面的check_nrpe插件,并告诉check_nrpe去检测哪些服务。

    2) 通过sslcheck_nrpe连接远端机器上的NRPE daemon

    3) NRPE运行本地的各种插件去检测本地服务器和状态(check_disk,...etc)。

    4) NRPE把检测的结果传给主机端的check_nrpecheck_nrpe再把结果送到nagios状态队列中。

    5) Nagios依次读取队列中的信息,再把结果显示出来。

     

     

    二、实验环境

    1、实验拓扑

     

    2、虚拟机上的实验环境

    三、实验步骤

    1、搭建nagios监控系统

    1)关闭防火墙

    # systemctl stop firewalld
    

    2)创建nagios用户和用户组

     

    # useradd -s /sbin/nologin nagios
    # mkdir /usr/local/nagios
    # chown -R nagios:nagios /usr/local/nagios
    

     

    3)编译安装nagios(需要提前配置yum

    安装支持包:

    # yum -y install httpd php mariadb mariadb-server openssl openssl-devel 

    配置:

    # tar -xvf nagios-4.0.6.tar.gz
    # cd nagios-4.0.6/
    # ./configure --prefix=/usr/local/nagios
    # make all
    # make install
    # make install-init
    # make install-commandmode
    # make install-config
    # make install-webconf
    注意:安装install-webconf是为了生成配置文件,后面在/etc/httpd/conf/httpd.conf最后添加的信息就不用手工打了,可以到/etc/httpd/conf.d/nagios.conf文件中复制。
    
    
    以上命令的解释:
    make install      //安装主程序,CGI和HTML文件 
    make install-init  //在/etc/rc.d/init.d安装启动脚本 
    make install-commandmode  //配置目录权限 
    make install-config  //安装示例配置文件 
    make install-webconf  //安装nagios的web接口,会在/etc/httpd/conf.d目录中创建nagios.conf文件。
    
    安装完成之后会在/usr/local/nagios目录下产生6个目录,下面分别解释一下。
    bin:nagios执行程序所在的目录,nagios文件即为主程序。 
    etc:nagios配置文件目录,当make install-config完以后etc下面就会出现默认的配置文件。 
    sbin:nagios CGI文件所在目录,这里存放的是一些外部命令执行程序。 
    share:nagios网页文件目录,存放一些html文件。 
    var:nagios日志文件、pid等文件目录。 
    Libexec:系统默认插件的存储位置
    

     1)添加为系统服务器

    # chkconfig --add nagios
    # chkconfig --level 35 nagios on

    1)安装nagios插件(监控功能通过插件完成) 

    # tar -xvf nagios-plugins-1.5.0.tar.gz
    # cd nagios-plugins-1.5.0/
    # ./configure --prefix=/usr/local/nagios/
    # make && make install

    6)安装nrpe(为了监控远程服务器)

     

    # tar -xvf nrpe-2.15.tar.gz
    # cd nrpe-2.15/
    # ./configure && make && make install-plugin
    

     

    7)在/etc/httpd/conf/httpd.conf文件最后添加授权,我们可以到/etc/httpd/conf.d/nagios.conf文件中复制,不用手打。

     

    # vim  /etc/httpd/conf/httpd.conf
    
    
    :r /etc/httpd/conf.d/nagios.conf
    剪切部分内容如下:
    # This file contains examples of entries that need
    # to be incorporated into your Apache web server
    # configuration file.  Customize the paths, etc. as
    # needed to fit your system.
    
    ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin"
    
    <Directory "/usr/local/nagios/sbin">
    #  SSLRequireSSL
       Options ExecCGI
       AllowOverride None
       Order allow,deny
       Allow from all
    #  Order deny,allow
    #  Deny from all
    #  Allow from 127.0.0.1
       AuthName "Nagios Access"
       AuthType Basic
       AuthUserFile /usr/local/nagios/etc/htpasswd.users
       Require valid-user
    </Directory>
    

    导入即可,不用修改,保存退出。

    8)执行htpasswd命令添加一个访问nagios页面的授权用户

     

    # /usr/bin/htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadminNew password: 
    Re-type new password: 
    Adding password for user nagiosadmin
    
    用户名和密码都是nagiosadmin
    

     

    9)启动nagioshttpd

    # systemctl start nagios
    # systemctl start httpd
    

      

    登陆进去后会显示如下图

    目前只能是打开网页,很多的监控选项不能看到,如果需要监控远程的服务器,还需要做很多配置,下面开始配置。

     

    2、配置nagios监控系统涉及知识点

    1nagios的配置文件:

     Nagios.cfg:主配置文件,定义各种配置文件的名称和位置
    
       Cgi.cfg:控制CGI的配置文件
    
       Resource.cfg:资源文件,定义各种变量,以便于其他文件调用
    
       Objects:其他配置文件存放目录,此目录下主要有:
    
                 Command.cfg:命令配置文件,定义各种命令格式,以备其他文件调用
    
                 contacts.cfg:联系人和组,发邮件等告警信息时可以调用
    
                 localhost.cfg:监控本机的配置文件
    
                 timeperiods.cfg:定义监控时间的配置文件,便于其他文件调用
    
                 Hostgroups.cfg:定义监控的主机(组),需手动创建。 

    2)配置文件之间的关系

    nagios的配置过程中涉及的几个定义有主机、主机组、服务、服务组、联系人、联系人组、监控时间和监控命令等。从这些定义可以看出,nagios各个配置文件之间互为关联、彼此引用的。成功配置出一台nagios监控系统,必须要弄清楚每个配置文件之间依赖与被依赖的关系,最重要的有四点

    定义监控那些主机,主机组,服务和服务组
    
    定义这个监控要用什么命令实现
    
    定义监控的时间段
    
    定义主机或服务器出现问题时要通知的联系人和联系人祖
    

    3)配置nagios

    为了能更清楚的说明问题,同时也为了维护方便,建议将nagios各个定义的对象创建独立的配置文件。

    创建conf目录来定义host主机
    
    创建hostgroups.cfg文件来定义主机组
    
    用默认的contacts.cfg文件来定义联系人和联系人组
    
    用默认的commands.cfg文件来定义命令
    
    用默认的timeperiods.cfg来定义监控时间段
    
    用默认的templetes.cfg文件作为资源引用文件

    3、配置nagios

    1)修改/usr/local/nagios/etc/nagios.cgf主配置文件

     

    # vim /usr/local/nagios/etc/nagios.cfg
    添加两行
    cfg_file=/usr/local/nagios/etc/objects/hostgroups.cfg
    cfg_file=/usr/local/nagios/etc/conf
    
    
    创建配置文件目录
    # mkdir /usr/local/nagios/etc/conf  

    2修改/usr/local/nagios/etc/objects/commands.cfg

    # vim /usr/local/nagios/etc/objects/commands.cfg
    
    添加下面4行内容
    
    define command{
            command_name    check_nrpe
            command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
     }
    

    3)修改/usr/local/nagios/etc/objects/contacts.cfg(定义监控服务器联系人)

     

    # vim /usr/local/nagios/etc/objects/contacts.cfg
    
    define contact{
            contact_name nsh
            alias Mage nsh
            email m1352142328@163.com
            host_notification_period  workinghours
            service_notification_period  workinghours
            host_notification_options  d,u,r
            service_notification_options  w,u,c,r 
            host_notification_commands     host-notify-by-email
            service_notification_commands   notify-by-email
    }      

    4)新建/usr/local/nagios/etc/objects/hostgroups.cfg(定义主机组)

     

    # vim /usr/local/nagios/etc/objects/hostgroups.cfg
    
    
    define hosstgroup
            {
                    hostgroup_name webservers
                    alias Linux web servers
                    members 192.168.92.132
            } 

    4)/usr/local/nagios/etc/conf下面新建192.168.92.132.cfg文件(用于监控192.168.92.132的主机存活,负载,进程)(所有内容需要手工输入)

     

    # vim /usr/local/nagios/etc/conf/192.168.92.132.cfg
    
    
    
    define host
            {
                    name generic-server
                    check_command check-host-alive
                    check_interval 5
                    retry_interval 1
                    max_check_attempts 5
                    check_period 24x7
                    notification_interval 30
                    notification_period 24x7
                    notification_options d,u,r
                    register 0
            }
    
    define host
            {
                    use generic-server
                    name webserver1
                    alias Web Server 01
                    address 192.168.92.132
                    contact_groups nsh
            }
    ~
    ~
    

      

    命令解释:

    define host{  
           use         linux-server  //定义使用的模板
           host_name   nagios  //被监控主机的名称,最好别带空格  
           alias         nagios  //别名        
           address      127.0.0.1  //被监控主机的IP地址        
           check_command    check-host-alive  
    normal_check_interval   3    //正常检测间隔时间
           	 retry_check_interval    2     //重试检测间隔时间
           //监控的命令check-host-alive,这个命令来自commands.cfg,用来监控主机是否存活  
           max_check_attempts    5 //检查失败后重试的次数  
           check_period        24x7   //检查的时间段24x7,同样来自timeperiods.cfg中定义 
    notification_interval  10  //提醒的间隔,每隔10秒提醒一次 
    notification_period   24x7  //提醒的周期, 24x7,同样来自timeperiods.cfg中定义
    contact_groups   admins  //联系人组,上面在contactgroups.cfg中定义的admins
    notification_options            d,u,r  //指定什么情况下提醒 
            }   

    4)重启nagios服务

     

      

     

     

    8)访问网页查看状态

    (注意:关闭selinux或者开例外)

    # setenforce 0
    或者:
    
    如果你开启了selinux 需要配置如下二步: 
    chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin/ 
    chcon -R -t httpd_sys_content_t /usr/local/nagios/share/
    

     

      

     

      未完待续。。。

      

     

      

     

      

     

  • 相关阅读:
    重建Exchange邮件系统的系统邮箱
    枚举算法001
    关于网站备案的44个问题
    wireshack使用
    格言
    程序员遇到BUG的解释
    只要有信心任何事情都可以做成,今天表现不错哦,加油!
    踏实,自信
    学会经营自己的关系
    戒酒
  • 原文地址:https://www.cnblogs.com/nshgo/p/9073279.html
Copyright © 2011-2022 走看看