Algunas veces nos puede aparecer un error en PNP4Nagios del tipo “No DS called ...”, vamos a ver cómo solucionarlo, por que pasa y como evitarlo.

Empecemos explicando un poco el funcionamiento el almacenamiento de datos de PNP4Nagios:

- PNP4Nagios utiliza RRD para almacenar datos.

- Disponemos de un directorio donde se tenemos un subdirectorio por cada uno de los “hosts” configurados en Nagios: /usr/local/pnp4nagios/var/perfdata/HOST

- Dentro de este directorio disponemos de dos ficheros por servicio:

o XML que almacena la estructura de la base de datos.

o RRD es la base de datos.

Algunas características a tener en cuenta:

- RRD modifica el XML en función de los datos recibidos durante el “check”.

- Por defecto solo puede haber un RRD por servicio.

¿Cómo afecta este funcionamiento?

El problema se genera cuando un servidor “X” tiene un servicio “Y” y modificamos el plugin para “Y”. Un nuevo plugin para el servicio puede comportar un formato diferente de salida de datos a grabar en la base de datos.

Lo que pasa en estos casos es que se genera un nuevo XML, pero el RRD sigue teniendo la estructura del antiguo XML.

Si se da este caso, un XML con una definición diferente al RRD es cuando nos aparece el error “No DS called ...”.

Este funcionamiento se puede solucionar de dos formas:

- Podemos eliminar el XML y RDD. De esta manera en el siguiente check se crearan ambos ficheros correctamente.

- Existe un parámetro en la configuración de PNP4Nagios llamada: RRD_STORAGE_TYPE, con dos posibles valores, SINGLE y MULTIPLE.

o Si lo tenemos en SINGLE (viene así por defecto), el funcionamiento es el explicado anteriormente.

o Con opción MULTIPLE, al cambiar el XML se crea un nuevo RRD, dejando el antiguo. Esto provoca que el espacio requerido sea mayor a la vez que los IO del disco aumentan. La opción MULTIPLE no se aplica cuando ya tenemos el error, solo funcionara si cuando hay el cambio de formato ya está activo el valor.

Recomendamos valorar esta opción antes de arrancar un sistema, más espacio más recursos nos permitirán más flexibilidad si el entorno es cambiante. Menos espacio y menos recursos nos permiten menos flexibilidad.