• Nagios图像绘制插件PNP4Nagios部署和测试


    注:本篇博客Nagios版本Nagios-3.5.1

    1. 概述

    本篇博客主要介绍在Nagios3.5和Nagios4.4系统中部署pnp4nagios0.4和pnp4nagios0.6。
    Nagios展示的实时数据,无历史数据存储和展示功能。通过pnp4nagios来实现Nagios历史数据的绘制。

    2. 关于PNP4Nagios

    PNP4Nagios目前有两个主要版本0.6版本和0.4版本。

    3. 部署PNP4Nagios

    PNP4Nagios利用了rrdtool工具来收集和处理图像。因此系统中需要安装rrdtool以及rrdtool-perl模块。
    有关rrdtool的部署,本篇不做详细介绍。参阅博客《RRDTool的部署和测试.md》,博客园地址:

    3.1 下载PNP4Nagios

    官方网站:https://docs.pnp4nagios.org/
    注意官方网站的提示,PNP4Nagios的Broker Module模式无法应用在Nagios Core 4.x上

    3.2 编译安装

    执行命令解压:tar -zxvf tar -zxvf nagiosgraph-1.5.2.tar.gz -C /tmp/
    进入目录进行configure:cd /tmp/pnp4nagios-0.6.26
    执行命令:

    ./configure 
    --prefix=/usr/local/globle/softs/monitor/nagios/pnp4nagios/0.6.26 
    --sysconfdir=/usr/local/globle/softs/monitor/nagios/pnp4nagios/0.6.26/etc 
    --localstatedir=/usr/local/globle/softs/monitor/nagios/pnp4nagios/0.6.26/var 
    --with-nagios-user=nagios 
    --with-nagios-group=nagios 
    --with-perl_lib_path=/usr/local/globle/softs/rrdtool/1.7.0/lib/perl 
    --with-rrdtool=/usr/local/globle/softs/rrdtool/1.7.0/bin/rrdtool 
    --with-perfdata-logfile=/usr/local/globle/softs/monitor/nagios/pnp4nagios/0.6.26/process_perfdata 
    --with-perfdata-dir=/usr/local/globle/softs/monitor/nagios/pnp4nagios/0.6.26/var 
    --with-perfdata-spool-dir=/usr/local/globle/softs/monitor/nagios/pnp4nagios/0.6.26/var 
    --with-httpd-conf=/usr/local/globle/softs/monitor/nagios/pnp4nagios/0.6.26/etc 
    --with-base-url=/pnp4nagios 
    --with-init-dir=/usr/local/globle/softs/monitor/nagios/pnp4nagios/0.6.26/etc/init.d 
    --with-debug 

    执行命令make all
    执行命令make fullinstall
    至此,已经完成了PNP4Nagios的编译和安装。

    3.3 目录文件说明

    在路径/usr/local/globle/softs/monitor/nagios/pnp4nagios/0.6.26下,能够看到以下目录:
    bin,etc,lib,libexec,man,share,var
    bin目录存放npcd可执行文件
    lib目录存放npcdmod.o模块文件
    libexec目录存放process_perfdata.pl等perl脚本
    etc比较重要,存放了配置PNP4Nagios的配置文件,包括:
    process_perfdata.cfg,npcd.cfg,nagios.cfg,misccommands.cfg,rra.cfg
    以及编译时指定的init.d启动脚本目录

    注:上过的.cfg文件,实际是以.cfg-sample存在,配置时拷贝一份或者重命名即可

    4. 配置Nagios

    4.1 配置说明

    PNP4Nagios有四种运行模式:

    • Synchronous mode
    • Bulk mode
    • Bulk with NPCD mode
    • Module mode

    这四种模式的配置,在配置文件nagios.cfg和missconmmands.cfg中都有提到。
    实际上nagios.cfg和miscommands.cfg就是源码提供的不同模式下对Nagios整合PNP4Nagios配置的示例。
    nagios.cfg的内容,为在四种模式时,对Nagios主配置文件nagios.cfg的修改示例;而miscommands.cfg的内容,为在四种不同模式下,
    对Nagios的command模板的修改示例;

    4.2 配置Nagios主配置文件

    本篇博客主要配置的是PNP4Nagios的第三种模式,即Bulk with NPCD mode。
    这要求PNP4Nagios能够以独立进程npcd运行,并且能够处理Nagios抛出的临时状态文件。
    修改Nagiso的主配置文件,内容如下:

    #打开性能文件输出
    process_performance_data=1
    #定义用于输出的命令对象
    host_perfdata_command=process-host-perfdata
    service_perfdata_command=process-service-perfdata
    #定义存放性能数据的文件
    host_perfdata_file=/usr/local/globle/softs/monitor/nagios/pnp4nagios/0.6.26/var/host-perfdata
    service_perfdata_file=/usr/local/globle/softs/monitor/nagios/pnp4nagios/0.6.26/var/service-perfdata
    #定义存放性能数据的模板
    host_perfdata_file_template=DATATYPE::HOSTPERFDATA	TIMET::$TIMET$	HOSTNAME::$HOSTNAME$	HOSTPERFDATA::$HOSTPERFDATA$	HOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$	HOSTSTATE::$HOSTSTATE$	HOSTSTATETYPE::$HOSTSTATETYPE$
    service_perfdata_file_template=DATATYPE::SERVICEPERFDATA	TIMET::$TIMET$	HOSTNAME::$HOSTNAME$	SERVICEDESC::$SERVICEDESC$	SERVICEPERFDATA::$SERVICEPERFDATA$	SERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$	HOSTSTATE::$HOSTSTATE$	HOSTSTATETYPE::$HOSTSTATETYPE$	SERVICESTATE::$SERVICESTATE$	SERVICESTATETYPE::$SERVICESTATETYPE$
    #定义存放性能数据的模式
    host_perfdata_file_mode=a
    service_perfdata_file_mode=a
    #定义输出性能数据的时间
    host_perfdata_file_processing_interval=15
    service_perfdata_file_processing_interval=15
    #定义处理性能数据的命令对象
    host_perfdata_file_processing_command=process-host-perfdata-file
    service_perfdata_file_processing_command=process-service-perfdata-file

    4.3 配置Nagios对象模板command.cfg文件

    上面对Nagios的主配置文件修改过程种,配置了处理性能文件的命令对象host_perfdata_file_processing_command和service_perfdata_file_processing_command,
    这两个命令,需要在Nagios的命令模板种定义方可使用。
    修改配置文件:vim /usr/local/globle/softs/monitor/nagios/3.5.1/etc/objects

    #这段命令的定义,可以参照示例配置文件/usr/local/globle/softs/monitor/nagios/pnp4nagios/0.6.26/etc/misccommands.cfg
    #或者官方文档地址:
    define command {
           command_name process-service-perfdata-file
           command_line /bin/mv /usr/local/globle/softs/monitor/nagios/pnp4nagios/0.6.26/var/service-perfdata /usr/local/globle/softs/monitor/nagios/pnp4nagios/0.6.26/var/service-perfdata.$TIMET$
    }
    
    define command {
           command_name process-host-perfdata-file
           command_line /bin/mv /usr/local/globle/softs/monitor/nagios/pnp4nagios/0.6.26/var/host-perfdata /usr/local/globle/softs/monitor/nagios/pnp4nagios/0.6.26/var/host-perfdata.$TIMET$
    }

    4.4 配置Nagios对象模板template.cfg文件

    因为需要在Nagios的web站点展示性能数据图,因此需要定义一个主机和服务模板,将模板添加到主机监控即可
    修改配置文件:/usr/local/globle/softs/monitor/nagios/3.5.1/etc/objects/templates.cfg

    #这段配置可以参考官方文档地址:http://docs.pnp4nagios.org/pnp-0.6/webfe
    define host {
       name hosts-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 services-pnp
       action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=$SERVICEDESC$
       register 0
    }

    4.5 配置主机和服务监控

    上面的配置完成之后,在需要配置性能数据输出的对象配置上,进行配置。如本篇博客配置

    define host {
        use linux-server,hosts-pnp
        host_name node11
        alias node11
        address 192.168.80.11
    }
    define service {
        use local-service,services-pnp ; Name of service template to use
        host_name node11
        service_description Root Partition
        check_command check_nrpe!check_disk
        notifications_enabled 1
    }
    define service {
        use local-service,services-pnp ; Name of service template to use
        host_name node11
        service_description Current Users
        check_command check_nrpe!check_users
        notifications_enabled 1
    }
    define service {
        use local-service,services-pnp ; Name of service template to use
        host_name node11
        service_description Total Processes
        check_command check_nrpe!check_total_procs
        notifications_enabled 1
    }

    5. 测试

    重启Nagios便可在监控站点上看到node11的性能监控数据。

    6.总结

    PNP4Nagios可以理解为PNP for Nagios,即为Naigos监控对象配置性能数据可视化。
    该插件弥补了Nagios实时监控的短板,能够给监控着对于监控对象性能以很直观的认知。

  • 相关阅读:
    kubernetes概述与入门
    kubernetes入门到放弃-docker基础篇
    Git远程仓库☞GitLab的使用
    Git远程仓库☞GitHub的使用
    Git版本控制系统
    持续集成-DevOps概念篇
    持续集成扫盲篇
    Centos7系统介绍
    LNMP架构说明
    dynamic_cast c++
  • 原文地址:https://www.cnblogs.com/liwanliangblog/p/9290644.html
Copyright © 2020-2023  润新知