# verify_pnp_config

In case of problems there is a script called `verify_pnp_config.pl` located on http://verify.pnp4nagios.org. It enables you to check the configuration settings as well as performance data of hosts or services. It can be used prior and during runtime of PNP.

* ATTENTION *: It ONLY supports verifying Nagios 3.x and Icinga 1.x as Monitoring core.

## Download

    wget http://verify.pnp4nagios.org/verify_pnp_config

## Test

The verify script is located on http://verify.pnp4nagios.org and needs three start options

- `--mode` One of the modes described on modes
- `--config` Location of nagios.cfg or icinga.cfg
- `--pnpcfg` Path to PNP´s etc directory

Calling `perl verify_pnp_config` will show the available options.

The following is a sample run

    lenny:~# perl verify_pnp_config --mode npcdmod --config=/usr/local/nagios/etc/nagios.cfg --pnpcfg=/usr/local/pnp4nagios/etc
    [INFO]  ========== Starting Environment Checks ============
    [INFO]  My version is: verify_pnp_config-0.6.14-R.31
    [INFO]  Reading /usr/local/nagios/etc/nagios.cfg
    [OK  ]  Running product is 'nagios'
    [OK  ]  object_cache_file is defined
    [OK  ]  object_cache_file=/usr/local/nagios/var/objects.cache
    [INFO]  Reading /usr/local/nagios/var/objects.cache
    [OK  ]  resource_file is defined
    [OK  ]  resource_file=/usr/local/nagios/etc/resource.cfg
    [INFO]  Reading /usr/local/nagios/etc/resource.cfg
    [INFO]  Reading /usr/local/pnp4nagios/etc/process_perfdata.cfg
    [INFO]  Reading /usr/local/pnp4nagios/etc/pnp4nagios_release
    [OK  ]  Found PNP4Nagios version "0.6.14"
    [OK  ]  Effective User is 'nagios'
    [OK  ]  User nagios exists with ID '1000'
    [OK  ]  Effective group is 'nagios'
    [OK  ]  Group nagios exists with ID '1000'
    [INFO]  ========== Checking npcdmod Mode Config  ============
    [OK  ]  process_performance_data is 1 compared with '/1/'
    [OK  ]  event_broker_options is defined
    [OK  ]  event_broker_options=-1
    [OK  ]  event_broker_option bits 2 and 3 enabled (12)
    [OK  ]  broker_module is defined
    [OK  ]  broker_module=/usr/local/pnp4nagios/lib/npcdmod.o config_file=/usr/local/pnp4nagios/etc/npcd.cfg
    [OK  ]  npcdmod.o config file is /usr/local/pnp4nagios/etc/npcd.cfg
    [OK  ]  /usr/local/pnp4nagios/etc/npcd.cfg used by npcdmod.o is readable
    [OK  ]  npcd daemon is running
    [OK  ]  /usr/local/pnp4nagios/etc/npcd.cfg is used by npcd and readable
    [OK  ]  npcd and npcdmod.o are using the same config file (/usr/local/pnp4nagios/etc/npcd.cfg)
    [INFO]  Nagios config looks good so far
    [INFO]  ========== Checking config values ============
    [INFO]  Reading /usr/local/pnp4nagios/etc/npcd.cfg
    [OK  ]  Script /usr/local/pnp4nagios/libexec/process_perfdata.pl is executable
    [INFO]  ========== Starting global checks ============
    [OK  ]  status_file is defined
    [OK  ]  status_file=/dev/shm/status.dat
    [INFO]  Reading /dev/shm/status.dat
    [INFO]  ==== Starting rrdtool checks ====
    [OK  ]  RRDTOOL is defined
    [OK  ]  RRDTOOL=/usr/bin/rrdtool
    [OK  ]  /usr/bin/rrdtool is executable
    [OK  ]  RRDtool 1.3.1  Copyright 1997-2008 by Tobias Oetiker <tobi@oetiker.ch>
    [OK  ]  USE_RRDs is defined
    [OK  ]  USE_RRDs=1
    [OK  ]  Perl RRDs modules are loadable
    [INFO]  ==== Starting directory checks ====
    [OK  ]  RRDPATH is defined
    [OK  ]  RRDPATH=/usr/local/pnp4nagios/var/perfdata
    [OK  ]  Perfdata directory '/usr/local/pnp4nagios/var/perfdata' exists
    [WARN]  62 hosts/services are not providing performance data
    [WARN]  'process_perf_data 1' is set for 43 hosts/services which are not providing performance data!
    [WARN]  'process_perf_data 0' is set for 27 of your hosts/services
    [OK  ]  'process_perf_data 1' is set for 243 of your hosts/services
    [INFO]  ==== System sizing ====
    [OK  ]  269 hosts/service objects defined
    [INFO]  ==== Check statistics ====
    [WARN]  Warning: 3, Critical: 0
    [WARN]  Checks finished...

## Performance data

Starting with `0.6.19-R.37` (2013-02-17) the script will accept the option `--object` (or `-o`) followed by a string to specify a host name and/or service description to additionally show performance data (if any) of the object(s) found. The data is enclosed in brackets, followed by the value of the directive `process_performance_data` (`ppd`=n).

`host` = show performance information for host `host`
`;service` = show performance information for service `service`
`host;service` = show performance information for service `service` on host `host`

The strings are taken as regular expressions (perl syntax).