Showing posts with label pnp4nagios. Show all posts
Showing posts with label pnp4nagios. Show all posts

Wednesday, October 21, 2020

Install PNP4Nagios for adding a graph to Nagios




Nagios offers monitoring and alerting services for your business infrastructures like servers, switches, applications and services. Adding a graph to Nagios is necessary for effective monitoring especially to predict possible attacks on your servers. PNP4Nagios is a plugin for Nagios for creating graphs.

Click here to learn how to install Nagios Core.

Step 1: Install all required package

yum install rrdtool perl-Time-HiRes rrdtool-perl php-gd -y

Step 2: Download the source and extract 

cd /tmp

wget https://sourceforge.net/projects/pnp4nagios/files/latest/download/pnp4nagios-0.6.26.tar.gz

tar zxfv pnp4nagios-0.6.26.tar.gz

Step 3: Compile and Install 

cd pnp4nagios-0.6.26

./configure

make all

make fullinstall

Step 4: Setup the NPCD

Change config to run npcd only on level 3 and 5. Change also the install.php filename.

chkconfig --add npcd && chkconfig --level 35 npcd on 

service httpd reload

Check the URL http: // server / pnp4nagios / to make sure pnp4nagios has been installed. If all green and pass then proceed.

Backup install.php

mv /usr/local/pnp4nagios/share/install.php /usr/local/pnp4nagios/share/install.php-ori

Step 5: Edit nagios.cfg, and add this at the bottom of the file 

vi /usr/local/nagios/etc/nagios.cfg

[Esc]+ GA – to edit the bottom of the file

# Bulk / NPCD mode 

process_performance_data=1 

service_perfdata_file=/usr/local/pnp4nagios/var/service-perfdata 

service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECH$ 

service_perfdata_file_mode=a 

service_perfdata_file_processing_interval=15 

service_perfdata_file_processing_command=process-service-perfdata-file


host_perfdata_file=/usr/local/pnp4nagios/var/host-perfdata 

host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$ host_perfdata_file_mode=a 

host_perfdata_file_processing_interval=15 

host_perfdata_file_processing_command=process-host-perfdata-file

[Esc] :wq

Step 6: Edit commands.cfg

vi /usr/local/nagios/etc/objects/commands.cfg

[Esc]+ GA

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$ 

}

Step 7: Edit templates.cfg and add host-pnp & srv-pnp

vi /usr/local/nagios/etc/objects/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 

}

Put the host-pnp on every host like this:

define host{

        use                     linux-server,host-pnp

        host_name               localhost

        alias                   localhost

        address                 127.0.0.1

        }

Put the srv-pnp on every service like this:

define service{

        use                             local-service,srv-pnp         

        host_name                       localhost

        service_description             PING

        check_command check_ping!100.0,20%!500.0,60%

}

Step 8: Copy the status-header and restart services

Copy this file in the /usr/local/nagios/share/ssi/ for mouseover graph

cp contrib/ssi/status-header.ssi /usr/local/nagios/share/ssi/

Then restart npcd,httpd and nagios

service npcd restart

service httpd restart

service nagios restart