Home

The www/pnp4nagios port

pnp4nagios-0.6.26p3 – Nagios/Icinga addon which graphs performance data (cvsweb github mirror)

Description

PNP is an addon to Nagios and Icinga which analyzes performance data
provided by plugins and stores them automatically into RRD-databases
(Round Robin Databases).
WWW: https://docs.pnp4nagios.org/

Readme

+-----------------------------------------------------------------------
| Running pnp4nagios on OpenBSD
+-----------------------------------------------------------------------

General
=======

Pnp4nagios has no default runtime dependencies to a monitoring tool,
as well as to a monitoring webinterface or web server. Example
instructions below are given for icinga, icinga-web and Apache2, as
well as icinga2, icinga-web2 and nginx.

Log file in ${VARBASE}/log/pnp4nagios will need to be rotated. Here is
a sample line for newsyslog.conf:

${VARBASE}/log/pnp4nagios/pnp4nagios.log _icinga:_icinga 644 7  250  * Z

Icinga, Icinga-web, Apache
==========================

Apache2 configuration
---------------------
Apache2 configuration for PNP4Nagios is stored under:
    ${VARBASE}/www/conf/modules.sample/pnp4nagios.conf

It needs to be enabled by running the following command:
# ln -s ../modules.sample/pnp4nagios.conf ${VARBASE}/www/conf/modules
# rcctl restart apache2

Icinga-web configuration
------------------------
To integrate PNP4Nagios into the Icinga Web frontend you will need to
install templates extensions which comes with icinga-web package:
% cd ${VARBASE}/www/icinga-web/app/modules/Cronks/data/xml/extensions
# ln -s pnp-host-extension.xml.dist pnp-host-extension.xml
# ln -s pnp-service-extension.xml.dist pnp-service-extension.xml

Icinga2, Icinga-web2, Nginx
===========================
Pnp4nagios runs with php_fpm behind nginx in a chrooted environment.

Prepare the chroot environment
------------------------------
 - follow the instructions in the rrdtool package README
   to chroot rrdtool
 - copy /bin/sh to ${VARBASE}/www/bin
 - copy ${SYSCONFDIR} ${VARBASE}/www${SYSCONFDIR}
 - copy ${LOCALBASE}/lib/kohana/system ${VARBASE}/www${LOCALBASE}/lib/kohana/system
 - edit ${VARBASE}/www${SYSCONFDIR}/config.php
   - ensure: $conf['rrdbase'] = "/pnp4nagios/rrd/";
   - ensure: $conf['nagios_base'] = "/icingaweb2";

Icinga2 configuration
---------------------
With Icinga2 enable the perfdata feature:

# icinga2 feature enable perfdata

Pnp4nagios will use the npcd daemon, and work in the 'bulk' mode.
In ${SYSCONFDIR}/npcd.cfg update the 'perfdata_spool_dir'
to point to '${VARBASE}/spool/icinga2/perfdata'. Additionally ensure
the 'perfdata_file_run_cmd_args' has a '--bulk' argument specified.

In ${SYSCONFDIR}/process_perfdata.cfg ensure the
RRDPATH setting points to '${VARBASE}/www/pnp4nagios/rrd'.

Finally enable npcd:

# rcctl enable npcd

Nginx configuration
-------------------
Below a minimal snippet for the nginx configuration:

server {

  ...

  location /pnp4nagios {

    alias ${VARBASE}/www/pnp4nagios;
  }

  location ~ ^(/pnp4nagios.*\.php)(.*)$ {


    root          /pnp4nagios;
    include       ${SYSCONFDIR}/nginx/fastcgi_params;

    fastcgi_pass  unix:run/php-fpm-pnp4nagios.sock;
    fastcgi_split_path_info ^(.+\.php)(.*)$;
    fastcgi_param PATH_INFO       $fastcgi_path_info;
    fastcgi_param SCRIPT_FILENAME $document_root/index.php;
  }
}

Php_fpm configuration
---------------------
Configure php_fpm pool, the most important configuration
entries:

[pnp4nagios]
listen = ${VARBASE}/www/run/php-fpm-pnp4nagios.sock
listen.owner = www
listen.group = www
listen.mode = 0660
user = _icinga
group = _icinga
chroot = ${VARBASE}/www

Icinga-web2 configuration
-------------------------
Pnp4nagios integration with Icinga-web2 is done via PNP
module, that can be found here:
 - https://github.com/Icinga/icingaweb2-module-pnp
For installation and configuration follow the modules
instructions.

RRD tweaks.
=====================
Optionally you may want to use rrdcached to reduce disk I/O.
Here is a sample /etc/rc.conf.local part:
rrdcached_flags=-b ${VARBASE}/www/pnp4nagios/rrd -m 0660 -s _icinga -l unix:${VARBASE}/www/pnp4nagios/rrd/rrdcached.sock -j ${VARBASE}/www/pnp4nagios/rrd//journal -p ${VARBASE}/www/pnp4nagios/rrd/rrdcached.pid -w 1800 -z 1800 -F -P FLUSH,PENDING
rrdcached_user=_icinga

Maintainer

Kirill Bychkov

Multi-packages

pnp4nagios-0.6.26p3 pnp4nagios-cgi-0.6.26p3

Broken

needs update for php 8

Categories

lang/php www

Build dependencies

Run dependencies

Search