PNP4NAGIOS. Características.

Vamos a tratar ahora de echar un vistazo más en profundidad a las características de PNP4Nagios mediante un rápido análisis de lo más importante. Tenemos una documentación decente del software también en castellano en la página oficial pero es mejor la documentación en Inglés que está más completa.
En dos artículos previos hemos visto como instalar y configurar PNP4Nagios. En la instalación mínima de OMD (esta en concreto no requiere configuración) y en la de Redhat / Centos donde si realizamos una configuración inicial del producto que nos servirá de base para cuando instalemos en cualquier otro sabor de Linux.

Revisión del Interface gráfico.

El GUI de PNP4Nagios es bastante vistoso y funcional. Podemos acceder a él o bien pinchando en el icono de la gráfica de nuestro host / servicio o directamente a través de su URI (…/pnp4nagios habitualmente).

pnp4_main

Las funcionalidades que nos ofrece en resumen son:

  • Visualización de gráficas para intervalos de tiempo predefinidos o especificados.
  • Acceso a las distintas gráficas de los servicios del host seleccionado.
  • Búsqueda de Hosts.
  • Exportación de gráficas a PDF.
  • Acceso directo desde un icono en Nagios, al lado del servicio / host a sus gráficas correspondientes.
  • Disponibilidad de valores prácticamente reales durante 10 días, a partir de ahí sumarizados en distintos intervalos según el tiempo (ver explicación posterior).
  • Personalización de gráficas.

Damos un breve repaso a la distribución de opciones en el interface gráfico:

Acciones.

pnp4_action_bar

Los iconos de acciones nos proporcionan las siguientes funcionalidades:

  • Selección de fechas de visualización en un calendario.
  • Exportar la presentación de las gráficas actuales a formato PDF. Si queremos que incluya todas las gráficas de todos los servicios de nuestro host seleccionamos este previamente.
  • View Pages. Podemos juntar gráficas de diferentes Host/Servicios en una sola página. Es una característica muy interesante pero tendremos que currarnos las plantillas (más adelante hablamos del tema). 
  • Ver las estadísticas (gráficas) internas del proceso que usa PNP para generar las gráficas.
  • Acceder a la documentación en Internet.

Selección de host/servicios. En la tabla “services” nos muestra los servicios del host seleccionado. Podemos acceder al que queramos. ¿Cómo llegamos a nuestro Host? O bien desde Nagios pinchando en el icono de acceso a PNP4Nagios al lado de nuestro Host/Servicio o bien buscándolo en la casilla correspondiente “Search” que nos ayudará gentilmente sugiriéndonos según escribimos.

My basket. Está característica es muy interesante. Nos permite mostrar gráficas de servicios de diferentes hosts juntas en la misma pantalla. Iremos añadiéndolas mediante el icono “+” que hay en las gráficas de servicios.

Time Ranges. Selección de rengos de tiempo más habituales.

pnp4_bar_time_ranges

Visualización de gráficas en intervalos de tiempo.A la izquierda nos muestra las gráficas en el tiempo del servicio seleccionado con distintos intervalos de tiempo. En el menú de la derecha tenemos ya predefinidos en la tabla “time ranges” los intervalos de tiempo más habituales pero podemos acotar más mediante el icono del calendario. También sobre las gráficas tenemos unos iconos con funcionalidades interesantes:

pnp4_graph_icons

  • Acceso a la páginas de Nagios con las alertas más recientes para este servicio.
  • Acceso a la página de Nagios con el informe de disponibilidad para este servicio.
  • “+”. Nos permite añadir esta gráfica a “My basket”.
  • Zoom. Muy interesante. Abre la gráfica en una ventana aparte y nos permite realizar zoom directamente en el intervalo de tiempo deseado.

Plantillas de pnp4nagios.

PNP incluye una serie de plantillas predefinidas para un montón de chequeos. Si no incluye la nuestra siempre podemos crearnos una personalizada para lo que hay que saber un poco de PHP y de bases de datos RRD (pag. Oficial)
Para capturar datos de los servicios es necesario configurar plantillas. Estas se ubican en diferentes directorios en /usr/share/nagios/html/pnp4nagios (en una instalación de OMD estarán normalmente en /opt/omd/versions/default/share/pnp4nagios/htdocs):

  • templates Plantillas creadas por nosotros o por programas de terceros. No las tocará si actualizamos PNP4Nagios por tanto es aquí donde procede ponerlas. Si hemos instalado check_mk después de PNP (importante el orden) veremos que ha colocado este un montón de plantillas adicionales en este directorio. Buscará primero las plantillas en este directorio por tanto si queremos dar prioridad a nuestro diseño, con mismo nombre de plantilla, basta con que lo creemos aquí.
  • templates.dist platillas que vienen con defecto con PNP4Nagios. En caso de actualización de versión serán estas las que actualice. Incluye numerosas plantillas para plugins habituales de Nagios y una plantilla estándar “default.php” que será la que use para todos aquellos servicios con valores numéricos para los que no encuentre una plantilla concreta.
  • templates.special En este directorio se ubicaran plantillas especiales… 🙂 ¿Qué tienen de especiales? Las plantillas estandar están ligadas a un solo servicio. Con las plantillas especiales podemos mostrar en una gráfica datos de varios host/servicios sin relación entre ellos. Tienen una sintaxis similar a las plantillas normales pero debemos “currárnoslas” y se accede a ellas desde su URI concreta:
    http://<servidor>/pnp4nagios/special?tpl=<nombre_sin_ext_php>
    No confundir con las “pages” que tienen una funcionalidad similar. Tenemos más flexibilidad con estas templates que con las pages. Estás últimas las podemos localizar habitualmente en el directorio etc de PNP4Nagios (p.e.: /etc/pnp4nagios/pages).
    Si queremos profundizar más sobre especial templates o sobre pages. En otro articulo profundizaremos más en estas características.

PNP4Nagios Trae un montón de plantillas clásicas predefinidas por lo que muchos servicios deben funcionar ya desde el principio. Si queremos crear nuestras propias plantillas tenemos información en la documentación oficial.

¿Cómo asocia una plantilla concreta con un servicio de Nagios?
PNP determina la plantilla a usar para cada servicio por el nombre del check command que usa este. Da igual como llames a tu servicio, si este ejecuta el command “check_http” ya lo relacionará con su plantilla “check_http.php” y creará la plantilla de visualización xml y el fichero rrd si no existen aún. Podemos ver que plantilla está usando una gráfica examinando el fichero XML que crea (se trata posteriormente). Existirá el valor:
<TEMPLATE>check-host-alive</TEMPLATE>
A veces los comandos tradicionales de los plugins de Nagios no se ajustan del todo a los nombres de las plantillas, es por eso que conviene mirar las plantillas existentes previamente a definir un chequeo. Es el caso por ejemplo de los chequeos de Windows (check_nt).La forma normal de hacerlos es llamar a check_nt pasándole como argumento el tipo de chequeo (disco, memoria, cpu, …) pero las plantillas de pnp incluyen el tipo de chequeo en la forma “check_nt_disk”, check_nt_cpu”, … por eso es mejor cambiar el comando de Nagios y definirlos de la siguiente forma:

# CHEQUEO WINDOWS UNIDAD DE DISCO
define command{
 command_name check_nt_disk
 command_line $USER1$/check_nt -H $HOSTADDRESS$ -v USEDDISKSPACE -l $ARG1$ -w $ARG2$ -c $ARG3$ -s $USER10$ -p 12489
 }

Ficheros RRD.

Ubicación de los ficheros.

PNP4Nagios genera las plantillas XML para mostrar los datos y los ficheros RRD de forma habitual en la instalación por paquetes en:
/var/lib/pnp4nagios/ (OMD-> /opt/omd/sites/nuestro_site/var/pnp4nagios/perfdata)
Crea un directorio por cada nombre de Host que ha encontrado una plantilla adecuada para gestionar los datos de rendimiento y genera en dicho directorio los ficheros rrd y xml para los servicios. Si queremos que genere de inicio nuevamente la gráficas o necesitamos espacio de urgencia en disco ya sabemos dónde borrar…:). También para realizar ciertos diagnósticos tendremos que venir a echar un ojo a este directorio.
Ambos ficheros XML y RRD son generados automáticamente cuando localiza una plantilla en cuestión para el plugin usado en Nagios. El fichero XML contiene datos importantes del servicio (nombre, ubicación fichero rrd y datos varios sobre este, plantilla usada para generar el rrd,…) y el fichero RRD es la BBDD con los resultados de los chequeos.
OJO: Solo creará ficheros de datos y gráficas para los plugins de Nagios que devuelvan datos de rendimiento (Perfomance data). Prácticamente todos los plugins devuelven esos datos pero hay algunos que no los contemplan.

Resolución de los ficheros RRD

Los ficheros RRD que crea la herramienta tienen un correcto dimensionado en cuanto a la resolución y sumarizado de datos pero se pueden cambiar para, en determinados casos, contar con una resolución real durante más espacio de tiempo. RRD mantiene un intervalo “corto” de valores reales, a partir de ese intervalo empieza a consolidar datos y sumarizar con lo cual los datos dejan de ser reales y pasan a ser “medias”.
La resolución por defecto es:

Valores reales:

  • 48 horas con valores reales de 1 chequeo por minuto (normalmente no se chequearán servicio cada minuto por lo que es resolución de sobra).

Valores sumarizados (medias):

  • 10 días con resolución de valor cada 5 minutos (si chequeamos cada 5 minutos los servicios seguiremos conservando valores reales, si nuestro chequeos son cada menos, se acercará mucho a la realidad).
  • 90 días con resolución cada media hora (sumarizando valores de cada media hora)
  • 4 años con resolución cada 6 horas.

Esto nos genera ficheros de unos 400Kb por valor único (hay chequeos de servicios que reciben y archivan varios valores). La resolución de las gráficas se puede cambiar de forma global. Pero si la aumentamos hay que tener en cuenta que aumentará el tamaño de los archivos.
Los valores por defecto son bastante correctos. Lo normal será que los chequeos de los servicios sean cada 2-5 minutos o superiores para los que tendremos valores reales durante 10 días. Para servicios muy críticos que se chequeen cada menos tiempo (2 minutos) tendremos valores muy próximos a la realidad. En cualquier caso podemos adaptarlo a nuestras necesidades. Podemos cambiar estos valores por defecto editando el fichero rra.cfg pero sabiendo bien lo que hacemos y con unos conocimientos mínimos de rrd si no queremos que nuestras gráficas se comporten de forma extraña.

Debug.

Nos será muy útil, sobre cuando nos volvamos locos intentando averiguar porque no funciona una plantilla existente o una de nuestra creación poder ver que está pasando. En el fichero de configuración general de PNP4Nagios, habitualmente en “/etc/pnp4nagios/process_perfdata.cfg” tenemos dos variables que controlan el tema de logs.

LOG_FILE = /var/log/pnp4nagios/perfdata.log
# Loglevel 0=silent 1=normal 2=debug
LOG_LEVEL = 0

En caso de problemas debemos activar el modo debug (2) y podremos ver en el log entre otras cosas cómo cada vez que detecta un chequeo de Nagios, mira los datos de “perfomance” de este y si localiza o no una plantilla para este y cual.
Ojo, debemos acordarnos luego de desactivarlo para que no empiece a crecer el fichero.

En artículos posteriores espero entrar más en profundidad en la personalización de plantillas, plantillas especiales y “pages”.

 

4 thoughts on “PNP4NAGIOS. Características.

  1. Gerardo

    Oye gracias por publicar, yo lo tengo implementado usando check_nt pero fijate que tengo la necesidad de monitorear la temperatura de mis servidores que tienen sistema operativo windows.
    ¿me echas una mano?

    Reply
    1. eldespistado1 Post author

      Dependerá del modelo de tu servidor basicamente y/o de si implementa el standard IPMI.
      Con este plugin de Nagios Exchange podrías, en principio, monitorizar cualquier servidor con tarjeta de gestión que implemente dicho estandar IPMI (en los comentarios hablan de tarjetas HP ILO 2,3; Dell DRAC,…
      Existe un plugin específico para servidores HP de monitorización a través de la ILO del que hablamos en este artículo y otra opción para monitorizar servidores de HP a través de el agente de HP InsightManager instalado se menciona en este artículo.
      Un saludo.

      Reply
  2. israel G

    Como instalo pnp4nagios desde cero, para un dummie.
    Por favor alguién ayudeme.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

*

Comment moderation is enabled. Your comment may take some time to appear.