CentLinux | Learn How to Install CentOS/Rocky Linux Servers

Sunday, September 4, 2016

Install PNP4Nagios for Nagios Core on CentOS 7

Install PNP4Nagios on Nagios Core over CentOS 7

In search of a graph add-on for Nagios, we have already explored the Nagiosgraph, although it works fine. But we kept looking for other alternates to Nagiosgraph. This is how PNP4Nagios pulls our attention towards it. PNP4Nagios is an add-on to Nagios which analyzes performance data provided by plugins and stores them automatically into RRD-databases (Round Robin Databases).

PNP4Nagios can be configured in different ways like SYNC, BULK, BULK+NPCD, etc. Although the SYNC mode is claimed to has the most straight forward configurations, but unfortunately it didn’t work for me due to some bug (related to Environment Variables) in Nagios 4.x. Therefore, I switched to BULK+NPCD mode.

In this article, we will install PNP4Nagios plugin on our Nagios Core Server over CentOS 7.

Before moving forward, it is required to have basic concepts of Nagios Core 4. Therefore, it is highly recommended that you should have Learning Nagios - Third Edition. It will be really helpful for you during your Nagios journey.

Install PNP4Nagios on Nagios Core over CentOS 7

System Specification:

We have configured a CentOS 7 virtual machine with Nagios Core 4.4 Server having following specifications.

  • CPU - 2.4 Ghz (1 Core)
  • Memory - 1 GB
  • Storage - 20 GB
  • Swap - 2 GB
  • Operating System - CentOS 7.6
  • Nagios Version - Nagios Core 4.4
  • IP Address -


Install PNP4Nagios on Nagios Core over CentOS 7:

Install prerequisites packages using yum.

# yum install rrdtool rrdtool-perl perl-Time-HiRes perl-GD -y

Download the latest tarball of PNP4Nagios from http://www.pnp4nagios.org/.

Go to the directory in which you have downloaded the PNP4Nagios tarball, and extract it.

# cd /soft/nagios
# tar xvf pnp4nagios-0.6.25.tar.gz

Go the directory, where PNP4Nagios is extracted, and install it.

# cd pnp4nagios-0.6.25
# ./configure
# make all
# make fullinstall

Edit nagios.cfg and comment (#) all performance parameters.

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

Add following parameters in nagios.cfg.

# service performance data

# host performance data

Now edit commands.cfg.

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

Add following commands in commands.cfg.

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$

Start and enable npcd service.

# /usr/local/pnp4nagios/bin/npcd -d -f /usr/local/pnp4nagios/etc/npcd.cfg
# systemctl enable npcd.service

Restart nagios and httpd services.

# systemctl restart nagios.service
# systemctl restart httpd.service

Open the URL in a client's browser to check configurations, and if there is a failed check then rectify it. (Change the IP address to your CentOS 7 server’s IP address here.)


It didn’t show me any failure.

Now remove the file /usr/local/pnp4nagios/share/install.php

# rm -f /usr/local/pnp4nagios/share/install.php

Again, open the URL in a client's browser and this time you will see the graphs.


We have successfully installed PNP4Nagios plugin on our Nagios Core Server over CentOS 7.

If you find this article useful? Consider supporting us by Buy Me A Coffee

© 2023 CentLinux. All Rights Reserved.