• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    监控软件Nagios的服务器端在Linux系统上的安装和配置方法

    Nagios的基本思想就是nagios server 获取被监控节点(monitored server)的相关信息,通过CGI(Web GUI)或者邮件等方式展示给管理员。
    信息的获取主要分为主动拿,被动得到,其中主动拿分直接去被监控节点取或者中间数据库节点取。

    如果是个个被监控节点直接去取,机器一多,nagios所在的系统CPU可能会扛不住,所以我们系统在测试环境中中使用了被动获取NSCA的方式,以后可能会转到NDOUtils方式,通过数据库实现监控端和被监控端的分离。


    NSCA具体工作过程:

    1. 数据生成: 被监控端程序定时收集数据并发送到Nagios服务端,Nagios服务端的NSCA进程收到数据,数据放到指定文件(nagios.cfg和nsca.cfg中指定)。

    2. 数据处理: Nagios实时处理指定文件,将数据存到queue,同时Nagios会定期检查queue,对数据做最终处理,例如:发送alert邮件,记录日志等。
    监控系统的最终模式:Nagios + NSCA + Pnp4nagios(bulknpcd)。
    NSCA负责收集数据,Nagios把收集的数据按照Pnp4nagios要求的格式写到spool文件,每隔15分钟把文件移动到npcd处理的spool文件夹,npcd调用process_perfdata.pl处理spool文件夹中的文件,最后存到rrd里,在Nagios监控页面加入pnp4nagios的web访问url,就可以查看图形化监控数据了。

    接下来说说我们Nagios的安装,

    Nagios Server端安装

    一台liunx server(CentOS),安装以下安装包 的的对应版本

    1. 基本nagios以及Web GUI安装包

    复制代码
    代码如下:

    httpd-*.tar.gz,php-*.tar.gz, nagios-*.tar.gz, nagios-plugins-*.tar.gz

    安装步骤

    2. 图形化性能数据安装包

    复制代码
    代码如下:

    pnp4nagios-*.tar.gz

    安装步骤
    3.  Linux 系统监控插件

    主动方式:nrpe-*.tar.gz,被动方式:nsca-*.tar.gz
    nsca安装步骤
    Note: inetd或者xinetd没有使用在我们的系统中


    Nagios monitored Clients
    对于NSCA模式,我们使用了Python脚本+Cron Job(crontab)的方式来定时按格式发送数据到Nagios Server,所以被监控设备上面只要安装了Python就可以了。

    现在说说在我们系统中如何是用NSCA方式来获取我们需要的被监控节点的资源使用情况信息。


    Nagios Server端的基本配置:

    1. nagios web gui 访问配置,系统中使用的是nagios core中推荐的配置方式,通过apache httpd访问nagios web,安装nagios的时候会自动寻找系统中安装的httpd,把nagios的httpd文件放到httpd的conf.d目录下,这样,只要生成一次nagios web访问的密码就可以通过http://localhost/nagios/访问nagios web.

    复制代码
    代码如下:

    htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

    2. 在Nagios中定义要监控的机器和要监控的服务
    2. 1 在/usr/local/nagios/etc/objects/中定义被监听节点和需要被监听的服务,例如:

    复制代码
    代码如下:

    /usr/local/nagios/etc/objects/system_1.cfg
    ## define hosts
    # system_1 oam_1
    define host{
    use linux-server,host-pnp
    host_name system_1_oam_1
    address ip>
    contact_groups system_1_admins,systems_admins
    }
    ......
    # system_1 traffic_1
    define host{
    use linux-server,host-pnp
    host_name system_1_traffic_1
    address ip>
    contact_groups system_1_admins,systems_admins
    }
    ......
    ## define services
    # system_1 oam_1/p> p>define service{
    use passive_service,srv-pnp
    service_description CPU_Status
    host_name system_1_oam_1
    contact_groups system_1_admins,systems_admins
    }
    define service{
    use passive_service,srv-pnp
    service_description Memory_Status
    host_name system_1_oam_1
    contact_groups system_1_admins,systems_admins
    }
    ....../p> p># system_1 traffic_1
    define service{
    use passive_service,srv-pnp
    service_description CPU_Status
    host_name system_1_traffic_1
    contact_groups system_1_admins,systems_admins
    }

    Note:
    a. passive_service是NSCA需要的配置
    b. host-pnp和srv-pnp是pnp4nagios要用的配置
    2.2  把定义的配置文件添加到/usr/local/nagios/etc/nagios.cfg中

    复制代码
    代码如下:

    cfg_file=/usr/local/nagios/etc/objects/localhost.cfg/p> p>cfg_file=/usr/local/nagios/etc/objects/system_1.cfg
    cfg_file=/usr/local/nagios/etc/objects/system_2.cfg
    ......
    nagios_user=nagios
    nagios_group=nagios
    lock_file=/usr/local/nagios/var/nagios.lock
    status_update_interval=10

    3. 对不同的系统添加系统监控管理员

    3.1

    复制代码
    代码如下:

    /usr/local/nagios/etc/objects/contactgroups.cfg
    define contactgroup{
    contactgroup_name system_1_admins
    alias system_1_admins
    members oam-1,traffic-1
    }
    ......

    3.2

    复制代码
    代码如下:

    /usr/local/nagios/etc/objects/contacts.cfg
    define contact{
    contact_name oam-1 ; Short name of user
    use generic-contact ; Inherit default values from generic-contact template (defined above)
    alias oam-1 ; Full name of user
    service_notification_options c
    host_notification_options d
    email a href="mailto:nobody@localhost.com">nobody@localhost.com/a> ; ***** CHANGE THIS TO YOUR EMAIL ADDRESS ******
    }

    define contact{
    contact_name traffic-1 ; Short name of user
    use generic-contact ; Inherit default values from generic-contact template (defined above)
    alias traffic-1 ; Full name of user
    email a href="mailto:nobody@localhost.com">nobody@localhost.com/a> ; ***** CHANGE THIS TO YOUR EMAIL ADDRESS ******
    }
    ......


    4. NSCA配置
    4.1 NSCA端:如果没有端口冲突之类的问题,/usr/local/nagios/etc/nsca.cfg可以作为默认配置直接使用
    Note: 当Nagios端有问题的时候,nsca本身可以保存收到的数据,要小心数据量大小的问题,监控机器多的时候,Nagios挂的时间长了点,文件就很容易变的很大
    4.2 Nagios端:
    4.2.1 修改/usr/local/nagios/etc/objects/templates.cfg,增加被动检测模版

    复制代码
    代码如下:

    define service{
    use generic-service
    name passive_service
    active_checks_enabled 0
    passive_checks_enabled 1 # We want only passive checking
    flap_detection_enabled 0
    register 0 # This is a template, not a real service
    is_volatile 0
    check_period 24x7
    max_check_attempts 1
    normal_check_interval 5
    retry_check_interval 1
    check_freshness 0
    contact_groups system_admins
    check_command check_dummy!0
    notification_interval 120
    notification_period 24x7
    notification_options w,u,c,r
    stalking_options w,c,u
    }

    4. 2.2 修改/usr/local/nagios/etc/commands.cfg,增加命令定义如何处理NSCA发送来的数据

    复制代码
    代码如下:

    # 'check_nsca' command definition
    define command{
    command_name check_dummy
    command_line $USER1$check_dummy$ARG1$
    }

    Note: check_dummy很简单,处理Nagios中OK,WARNING,CRITICAL,UNKNOWN

    复制代码
    代码如下:

    nagios:/usr/local/nagios/etc # /usr/local/nagios/libexec/check_dummy 0
    OK
    nagios:/usr/local/nagios/etc # /usr/local/nagios/libexec/check_dummy 1
    WARNING
    nagios:/usr/local/nagios/etc # /usr/local/nagios/libexec/check_dummy 2
    CRITICAL
    nagios:/usr/local/nagios/etc # /usr/local/nagios/libexec/check_dummy 3
    UNKNOWN

    4.2.3 检查/usr/local/nagios/etc/nagios.cfg已经可以处理外部NSCA发送来的数据,默认是没有问题的

    复制代码
    代码如下:

    accept_passive_service_checks=1
    accept_passive_host_checks=1
    check_external_commands=1
    command_check_interval=-1
    command_file=/usr/local/nagios/var/rw/nagios.cmd
    log_passive_checks=1

    5. 查看Nagios GUI中新加的host和service已经存在

    6. 添加pnp4nagios bulk+npcd 模式监听系统

    6.1 修改/usr/local/nagios/etc/nagios.cfg

    复制代码
    代码如下:

    #处理performance数据
    process_performance_data=1
    #host_perfdata_command=process-host-perfdata
    #service_perfdata_command=process-service-perfdata
    #performance数据存储文件
    host_perfdata_file=/usr/local/pnp4nagios/var/host-perfdata
    service_perfdata_file=/usr/local/pnp4nagios/var/service-perfdata
    #performance数据存储格式
    host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$
    service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$\tSERVICESTATE::$SERVICESTATE$\tSERVICESTATETYPE::$SERVICESTATETYPE$\tSERVICEOUTPUT::$SERVICEOUTPUT$
    #performance文件存储方式
    host_perfdata_file_mode=a
    service_perfdata_file_mode=a
    #performance文件处理时间间隔
    host_perfdata_file_processing_interval=15
    service_perfdata_file_processing_interval=15
    #performance文件处理命令
    host_perfdata_file_processing_command=process-host-perfdata-fileservice_perfdata_file_processing_command=process-service-perfdata-file

    6.2 修改/usr/local/nagios/etc/objects/commands.cfg,增加performance文件处理命令

    复制代码
    代码如下:

    define command{
    command_name process-service-perfdata-file
    command_line /bin/mv /usr/local/pnp4nagios/var/service-perfdata /usr/local/pnp4nagios/var/spool/service-perfdata.$TIMET$
    }

    define command{
    command_name process-host-perfdata-file
    command_line /bin/mv /usr/local/pnp4nagios/var/host-perfdata /usr/local/pnp4nagios/var/spool/host-perfdata.$TIMET$
    }

    6.3 修改nagios.cfg,设置在nagios web gui中显示pnp4nagios图标的方式
    第一种方法在templates.cfg里面加入如下,只能在新窗口打开图像数据

    复制代码
    代码如下:

    define host {
    name host-pnp
    action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$srv=_HOST_
    register 0
    }/p> p>define service {
    name srv-pnp
    action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$srv=$SERVICEDESC$
    register 0
    }

    第二种方法可以在鼠标移到pnp4nagios图标的时候就可以开到实时图标,不过效果不是很好,按照说明加入如下:

    拷贝status-header.ssi到/usr/local/nagios/share/ssi/目录下面,同时修改templates.cfg,加入如下内容:

    复制代码
    代码如下:

    define host {
    name host-pnp
    action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$srv=_HOST_' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$srv=_HOST_
    register 0
    }
    define service {
    name srv-pnp
    action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$srv=$SERVICEDESC$' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$srv=$SERVICEDESC$
    register 0
    }

    Note1: 自动出现的小窗口清晰度不好,我喜欢第一种方式
    Note2: 这里没有涉及email的配置,记得通知设计的时候小心消息泛滥被投诉。。。

    上一篇:在Linux系统上安装配置DNS服务器的教程
    下一篇:Linux系统中uniq命令的基本使用教程
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    监控软件Nagios的服务器端在Linux系统上的安装和配置方法 监控,软件,Nagios,的,服务器,