zoukankan      html  css  js  c++  java
  • Nagios详解(基础、安装、配置文件解析及监控实例)

    一、Nagios基础

    1.简介
    Nagios是一款开源网络监视工具。
    可监控网络服务(SMTP、POP3、HTTP、NNTP、ICMP、SNMP、FTP、SSH、PING~~~)、监控主机资源、根据需求设置相关插件监控、通过Email,短信及用户自定义方式实施警报、可选的web界面查看当前网络状态、通知和故障历史、日志文件等。
    2.工作原理
    Nagios的功能是监控服务和主机,但其监控、检测功能时通过插件完成。
    3.工作对象
    1).主机(交换机、路由器、虚拟机~~~),由多个主机组成组称为的主机组;
    2).服务(通过监听在某个套接字上对外输出信息),由多个服务组成的组称为服务组;
    3).联系人,由多个联系人组成的组称为联系人组;
    4).时段(定义监控对象在指定时间段处于非正常情况下时发出告警),无时段组概念;
    5).命令(对不同监控对象所设定的告警阀值不同,即需将对其监控工具的插件做相应修改后应用与监控对象)。
    4.监控状态
    状态 正常 警告 严重 未知错误
    代码 OK WARNING CRITICAL UNKOWN
    颜色 绿色 黄色 红色 深黄色
    5.图示

      Nagios系统提供插件NRPE,其通过周期性运行插件获得远端服务器各种状态信息并管理。
    1)Nagios执行check_nrpe插件,同时确定检测服务对象;
    2)通过SSL,check_nrpe连接远端机器上的NRPE daemon;
    3)NRPE运行本地插件检测本地服务与状态(check_disk,check_etc~~~);
    4)NRPE将检测结果传输给主机端的check_nrpe,再送到Nagios状态队列;
    5)Nagios依次读取队列信息,显示结果。
    6.软件版本

    7.object:各种对象的配置文件所存放的目录
    定义命令对象:commands.cfg

    1 define command{
    2 command_name check-host-alive
    3 command_line $USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5
    4 }

    command_name:定义命令名称,可自定义,必须全局唯一;
    command_line:定义真正执行的自定义模板,即将各种对被监控主机的特殊属性传递给模板,应用到被监控对象;
    -H:指定被监控对象的主机名或IP,其主机地址通过宏变量$HOSTADDRESS$进行引用,该变量会根据上下文自动引用当前被监控主机的地址;
    -w:warning的阈值(-w 3000.0,80% 意:延迟3000ms,丢包率达80%时告警);
    -c:critical的阈值(-c 5000.0,100% 意:延迟5000ms,丢包率达100%处于critical状态);
    -p:定义总共统计数据包数量。

    定义上下文内容:contacts.cfg

    1 define contact{
    2 contact_name nagiosadmin 
    3 use generic-contact 
    4 alias Nagios Admin 
    5 email kazihuo888@sina.com 
    6 }

    contact_name:定义联系人名字,必须全局唯一;
    use:指定从哪个模板继承属性;
    alias:对contact_name定义描述性名称;
    email:接收邮件的地址。

    定义时段:timeperiods.cfg

     1 define timeperiod{
     2 timeperiod_name 24x7
     3 alias 24 Hours A Day, 7 Days A Week
     4 sunday 00:00-24:00
     5 monday 00:00-24:00
     6 tuesday 00:00-24:00
     7 wednesday 00:00-24:00
     8 thursday 00:00-24:00
     9 friday 00:00-24:00
    10 saturday 00:00-24:00
    11 }

    定义模板:templates.cfg

     1 define host{
     2 name generic-host 
     3 notifications_enabled 1 
     4 event_handler_enabled 1 
     5 flap_detection_enabled 1 
     6 process_perf_data 1 
     7 retain_status_information 1 
     8 retain_nonstatus_information 1 
     9 notification_period 24x7 
    10 register 0 
    11 }

    notifications_enabled:是否发送通知;
    event_handler_enabled:是否启动额外的处理器;
    flap_detection_enabled:是否检测flap,即是否对状态频繁转换的服务或主机做特定检测;
    process_perf_data:进程性能数据是否输出;
    retain_status_information:是否保存状态信息;
    retain_nonstatus_information:是否保存非状态信息;
    notification_period:指定发送通知时间(使用timeperiods.cfg文件中时段);
    register :定义为模板,即可被其他主机或服务引用。

     1 define host{
     2 name linux-server 
     3 use generic-host 
     4 check_period 24x7 
     5 check_interval 5 
     6 retry_interval 1 
     7 max_check_attempts 10 
     8 check_command check-host-alive 
     9 notification_period workhours 
    10 notification_interval 120 
    11 notification_options d,u,r 
    12 contact_groups admins 
    13 register 0 
    14 }
    define host

    check_command:定义检测主机命令;
    notification_period:定义发送通知时间(workhours,即为timeperiods.cfg中定义的workhours的时间段):
    notification_interval:发送警告信息的时间间隔,单位为分钟;
    notification_options:被监控对象达到某状态时发送警告信息(d:done 服务宕机;u:unknown 未知状态;r:recovery 已重新上线);

    定义被监控主机与被监控主机上的被监控对象的配置文件:localhost.cfg

    1 define host{
    2 use linux-server 
    3 host_name localhost
    4 alias localhost
    5 address 127.0.0.1
    6 }

    use:引用模板,并继承引用其模板的属性信息;
    address:当前主机的IP地址。

    1 define service{
    2 use local-service 
    3 host_name localhost
    4 service_description PING
    5 check_command check_ping!100.0,20%!500.0,60%
    6 }
    define service

    host_name:指定被监控的服务运行在哪个主机上,因实现使用define host定义;

    二、Nagios安装

    实验前建议关闭selinux

    Nagios安装:
    1.解决依赖关系
    #yum install -y gcc glibc glibc-common gd gd-devel php php-mysql mysql mysql-server mysql-devel openssl-devel
    2.添加用户与组
    #groupadd -r nagcmd
    #useradd -G nagcmd -r -s /sbin/nologin nagios
    #echo 'redhat'|passwd --stdin nagios &> /dev/null
    #usermod -a -G nagcmd apache 添加apache用户到nagcmd组
    3.编译安装
    #tar -zxvf nagios-3.3.1.tar.gz
    #cd nagios-3.3.1
    #./configure --sysconfdir=/etc/nagios --with-command-group=nagcmd --enable-event-broker --prefix=/usr/local/nagios
    --enable-event-broker 选项是为NDOUtils提供服务。
    #make all
    #make install
    #make install-init 初始化脚本
    #make install-commandmode 设置运行目录权限
    #make install-config 配置文件
    #make install-webconf web接口,其用于识别nagios程序的位置,而实际nagios网页目录在/usr/local/nagios/share
    4.修改默认联系人
    #vim /etc/nagios/objects/contacts.cfg
    email nagios@localhost ==> xxx@xxx
    5.创建web接口管理员
    #htpasswd -c /etc/nagios/htpasswd.users nagiosadmin
    #cat /etc/httpd/conf.d/nagios.conf 验证web认证用户身份时是否是读取/etc/nagios/htpasswd.users文件
    6.启动httpd
    #/etc/init.d/httpd start
    7.安装插件
    #tar -zvxf nagios-plugins-1.4.15.tar.gz
    #cd nagios-plugins-1.4.15
    #./configure --with-nagios-user=nagios --with-nagios-group=nagios
    注:若需监控mysql服务器需在编译时指定其安装路径 --with-mysql=DIR
    8.启动nagios
    #chown -R nagios.nagcmd /etc/nagios
    #chown -R apache.nagcmd /etc/httpd
    #chown -R nagios.nagcmd /usr/local/nagios
    #chkconfig --add nagios
    #chkconfig nagios on
    #/etc/init. nagios start

    三、Linux监控实例

    监控Linux服务器
    监控端IP:192.168.11.128 被监控端:192.168.11.132
    监控端:
    1.启用check_nrpe插件
    #vim /etc/nagios/objects/command.cfg
    define command{
    command_name check_nrpe
    command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
    }
    2.编辑Nagios配置文件,添加Linux服务器模板文件
    #vim /etc/nagios/nagios.cfg
    # Definitions for monitoring a Linux machine
    cfg_file=/usr/local/nagios/etc/objects/linux.cfg
    3.安装nrpe
    #cd /tmp
    #tar -zxvf nrpe-2.15.tar.gz
    #cd nrpe-2.15
    #./configure
    #make all
    #make install-plugin
    #ls /usr/local/nagios/libexec/check_nrpe

    被监控端:
    1.添加用户
    #useradd nagios
    #echo "000" |passwd --stdin nagios &> /dev/null
    2.安装plugins
    #cd /tmp
    #tar -xzvf nagios-plugins-2.1.1.tar.gz
    #./configure --with-nagios-user=nagios --with-nagios-group=nagios
    #make
    #make install
    #chown -R nagios.nagios /usr/local/nagios/
    #ll /usr/local/nagios/
    3.安装nrpe
    #cd /tmp
    #tar -zxvf nrpe-2.15.tar.gz
    #cd nrpe-2.15.tar.gz
    #./configure
    #make all
    #make install-daemon
    #make install-daemon-config
    4.配置nrpe信息
    #vim /usr/local/nagios/etc/nrpe.cfg
    allowed_hosts=192.168.11.128 监控端主机IP
    5.启动nrpe
    #usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
    或添加到开机启动
    #vim /etc/rc.d/rc.local
    /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
    #netstat -atunpl |grep nrpe
    tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN 24735/nrpe

    监控端:
    1.测试
    #cd /usr/local/nagios/libexec
    #./check_nrpe -H 192.168.11.132
    NRPE v2.15
    2.配置linux.cfg文件
    #cd /etc/nagios/objects
    #cp -p windows.cfg linux.cfg

     1 define host{
     2 use linux-server
     3 host_name linux_server
     4 alias My linux Server
     5 address 192.168.79.132
     6 }
     7 
     8 define service{
     9 use generic-service
    10 host_name linux_server
    11 service_description check-swap
    12 check_command check_nrpe!check_swap
    13 }
    14 define service{
    15 use generic-service
    16 host_name linux_server
    17 service_description check-disk
    18 check_command check_nrpe!check_sda1
    19 }
    linux.cfg

    注:被监控端添加:
    command[check_sda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda1
    command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%
    被监控端重启nrpe:
    #kill -9 `ps aux | grep nrpe | grep -v grep | awk -F" " '{ print $2 }'`
    #/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
    监控端重启nagios:
    /etc/init.d/nagios restart
    登录WEB接口:192.168.11.128/nagios检测服务。

  • 相关阅读:
    项目管理
    开源视频会议bigbluebutton开发(1)——初始化安装以及配置
    oracle休系统结构
    Tomcat上安装配置Axis
    锁表头
    文件复制三种方法
    程序员技术练级攻略
    Linux (RHEL 5.4)下安装 Oracle 10g R2
    Android 学习资料收集汇总
    WAS61安装调整和应用部署.doc
  • 原文地址:https://www.cnblogs.com/kazihuo/p/6344471.html
Copyright © 2011-2022 走看看