martes, 31 de marzo de 2009

Documentación de Nagios

Pues en este sitio continuare agregando entradas referentes a la documentación 3.x de Nagios.

Monitoreando Servicios publicamente disponibles

Introducción

Este documento describe como monitorear servicios, aplicaciones y protocolos publicamente disponibles. Al decir "público" quiere decir que esos servicios son accesibles a traves de la red - ya sea en la red local o por Internet. Ejemplos de servicios publicos son HTTP, POP3, IMAP, FTP, and SSH. Hay más servicios públicos que tal vez usted utilice en sus tareas diarias. Estos servicios y aplicaciones, así como sus protocolos, pueden ser monitoreados por Nagios sin necesidad de requerimientos de acceso especiales.

Servicios privados, en contraste, no pueden ser monitoreados con Nagios sin la intervención de algún agente. Ejemplos de servicios privados asociados con los equipos son como la carga de CPU, uso de Memoria, uso en disco, cuenta de usuarios activos, información de procesos, etc. Estos servicios privados o atributos de los equipos usualmente no son expuestos a clientes externos. Esta situación requiere que un agente de monitoreo intermediario sea instalado en el equipo que se desea monitorear esa información. Mayor información en monitorear servicios privados en diferentes tipos de equipos pueden ser localizados en la documentación siguiente:



Tip Tip: Ocasionalmente usted encontrará que la información de servicios y aplicaciones privadas pueden ser monitoreadas utilizando SNMP. El agente SNMP le permite monitorear remotamente información privada (e inaccesible) acerca del equipo. Para mayor información acerca de monitorear servicios utilizando SNMP, revise la documentación en monitoreando switches y routers.

Note Nota: Estas instrucciones asumen que usted instaló Nagios de acuerdo a la guía de instalación rápida. La configuración de ejemplo en la parte inferior hace referencia a objetos que estan definidos en los archivos de configuración de ejemplo (commands.cfg, localhost.cfg) que fueron instalados si usted siguio la guía rápida.

Plugins para Monitorear Servicios

Cuando usted se encuentra en la necesidad de monitorear una aplicación, servicio o protocolo en particular, las oportunidades son buenas de que un plugin exista para monitorearlo. La distribución oficial de plugins de Nagios viene con plugins que pueden ser utilizados para monitorear una variedad de servicios y protocolos. Tambien existe un gran numero de plugins contribuidos que pueden ser localizados en el subdirectorio contrib/. El sitio NagiosExchange.org hospeda un numero considerable de plugins adicionales que han sido creados por usuarios del sistema, reviselo cuando tenga una oportunidad.

Si no encuentra un plugin apropiado para sus necesidades de monitoreo, usted puede escribir uno por su cuenta. Los plugins son fáciles de escribir, por lo cual no deje que esto lo asuste. Lea la documentación sobre desarrollo de plugins para más información.

Lo guiaremos para monitorear algunos servicios básicos que usted probablemente utilizara tarde o temprano. Cada uno de estos servicios pueden ser monitoreados utilizando uno de los pluginsque fueron instalados como parte de la distribución de plugins de Nagios. Comencemos...

Creando una definición de equipo (Host)
Antes de que empiece a monitorear un servicio, usted primero tiene que definir un equipo que esta asociado con el servicio. Puede poner definiciones de equipos en cualquier archivo de configuración de objetos especificado por el archivo de la directiva cfg_file o puesto en el directorio especificado por la directiva cfg_dir. Si ya creo una definición de equipo, usted puede saltar este paso.

Para este ejemplo, digamos que desea monitorear una variedad de servicios en el equipo remoto. Llamemos al equipo remotehost. La definición de equipo puede ser puesta en su propio archivo o ser agregada en un archivo de configuración existente. Asi es como la definición del equipo remotehost debe verse:

define host{
use generic-host ; Inherit default values from a template
host_name remotehost ; The name we're giving to this host
alias Some Remote Host ; A longer name associated with the host
address 192.168.1.50 ; IP address of the host
hostgroups allhosts ; Host groups this host is associated with
}

Ahora que la definición ha sido agregada para el equipo que vamos a monitorear, podemos empezar a definir servicios que deben ser monitoreados. Como las definiciones de equipos, las definiciones de servicios pueden ser agregadas en cualquier archivo de configuración de objetos.
Creando Definiciones de Servicios
Para cada servicio que desee monitorear, debe definir un servicio en Nagios que este asociado con la definición de equipo que acaba de crear. Usted puede agregar definiciones de servicios en cualquier archvio de configuración de objetos especificado en la directiva cfg_file o agregado en el directorio especificado en la directiva cfg_dir.

Algunos ejemplos de definición de servicios para monitorear servicios publicos comunes (HTTP, FTP, etc) son mostrados abajo.
Monitoreando HTTP
En algún momento usted querrá monitorear servidores web - el suyo o el de alguien más. El plugin check_http esta diseñado para ello. El entiende el protocolo HTTP y usted puede monitorear el tiempo de respuesta, códigos de error, cadenas que regresa HTML, certificados de servidor y mucho más.

El archivo commands.cfg contiene la definición del comando que vamos a utilizar por el plugin check_http. Debe verse así:

define command{
name check_http
command_name check_http
command_line $USER1$/check_http -I $HOSTADDRESS$ $ARG1$
}

Una definición de servicio simple para monitorear el servicio de HTTP el la máquina remotehost debe verse así:

define service{
use generic-service ; Inherit default values from a template
host_name remotehost
service_description HTTP
check_command check_http
}


Esta simple definición de servicio va a monitorear el servicio HTTP ejecutadose en remotehost. Producira alertas si el servidor web no responde dentro de 10 segundos o si el HTTP regresa códigos de error (403, 404, etc.). Eso es lo que usted necesita para un monitoreo simple. Un poco simple, huh?

Tip Tip: Para monitoreo avanzado, ejecute el plugin check_http manualmente con --help como argumento en la línea de comandos para ver todas las opciones que el plugin nos puede dar. Esta sintaxis --help funciona con todos los plugins que seran cubiertos en este documento.

Una definición más avanzada sobre el monitoreo del servicio HTTP es mostrado a continuación. Esta definición de servicio revisará si el URI /download/index.php contiene la cadena "latest-version.tar.gz". Producirá un error si la cadena no es encontrada, la URI es invalida, o el servidor web toma más de 5 segundos para responder.

define service{
use generic-service ; Inherit default values from a template
host_name remotehost
service_description Product Download Link
check_command check_http!-u /download/index.php -t 5 -s "latest-version.tar.gz"
}

Monitoreando FTP
Cuando necesite monitorear servidores FTP, puede utilizar el plugin check_ftp. El archivo commands.cfg contiene una definición de comando para ser utilizado por el plugin check_ftp, el cual se ve como sigue:

define command{
command_name check_ftp
command_line $USER1$/check_ftp -H $HOSTADDRESS$ $ARG1$
}

Una definición de servicio simple para monitorear un servidor FTP en remotehost debe verse así:

define service{
use generic-service ; Inherit default values from a template
host_name remotehost
service_description FTP
check_command check_ftp
}

Esta definición de servicio va a monitorear el servicio de FTP y generará alertas si el servidor FTP no responde dentro de 10 segundos.

Una definición de servicio más avanzada es mostrada a continuación. Este servicio revisara al servidor FTP ejecutandose en el puerto 1023 en remotehost. Generará una alerta si el servidor no responde dentro de 5 segundos o si la respuesta del servidor no contiene la cadena "Pure-FTPd [TLS]".

define service{
use generic-service ; Inherit default values from a template
host_name remotehost
service_description Special FTP
check_command check_ftp!-p 1023 -t 5 -e "Pure-FTPd [TLS]"
}

Monitoreando SSH
Cuando necesite monitorear servidores SSH, puede utilizar el plugin check_ssh. El archivo commands.cfg contiene la definición de comandos que son utilizadas por el plugin check_ssh, el cual debe verse así:

define command{
command_name check_ssh
command_line $USER1$/check_ssh $ARG1$ $HOSTADDRESS$
}

Una definición de servicio simple para monitorear el servidor SSH en remotehost debe verse así:

define service{
use generic-service ; Inherit default values from a template
host_name remotehost
service_description SSH
check_command check_ssh
}

Esta definición de servicio debe monitorear el servicio SSH y generar alertas si el servidor SSH no responde dentro de 10 segundos.
Una definición de servicio más avanzada es mostrada acontinuación. Este servicio revisará el servidor SSH y generará una alerta si el servidor no responde dentro de 5 segundos o si la cadena de la versión de servidor no empata con "OpenSSH_4.2".

define service{
use generic-service ; Inherit default values from a template
host_name remotehost
service_description SSH Version Check
check_command check_ssh!-t 5 -r "OpenSSH_4.2"
}

Monitoreando SMTP
El plugin check_smtp es utilizado para monitorear servidores de correo. El archivo commands.cfg contiene una definición de comando para utilizar el plugin check_smtp, el cual debe verse así:

define command{
command_name check_smtp
command_line $USER1$/check_smtp -H $HOSTADDRESS$ $ARG1$
}

Una definición de servicio simple para monitorear el servidor SMTP en remotehost debe verse así:

define service{
use generic-service ; Inherit default values from a template
host_name remotehost
service_description SMTP
check_command check_smtp
}

Esta definición de servicio debe monitorear el servicio SMTP y generar alertas si el servidor SMTP no responde dentro de 10 segundos.
Una definición de servicio más avanzada se puede ver acontinuación. Este servicio deberá revisar el servidor SMTP y generar una alerta si el servidor no responde en 5 segundos o si la respuesta del servidor no contiene "mygreatmailserver.com".

define service{
use generic-service ; Inherit default values from a template
host_name remotehost
service_description SMTP Response Check
check_command check_smtp!-t 5 -e "mygreatmailserver.com"
}

Monitoreando POP3
El plugin check_pop es utilizado para monitorear el servicio POP3 en los servidores de correo. El archivo commands.cfg contiene la definición de comando para utilizar el plugin check_pop, el cual debe verse así:

define command{
command_name check_pop
command_line $USER1$/check_pop -H $HOSTADDRESS$ $ARG1$
}

Una simple definición de servicio para monitorear el servicio POP3 en remotehost deberá verse así:

define service{
use generic-service ; Inherit default values from a template
host_name remotehost
service_description POP3
check_command check_pop
}

Esta definición de servicio deberá monitorear el servicio POP3 y generar alertas si el servidor POP3 no responde dentro de 10 segundos.
Una definición de servicio más avanzada es mostrada acontinuación. Este servicio revisará el servicio POP3 y deberá generar una alerta si el servidor no responde dentro de 5 segundos o si la respuesta del servidor no contiene "mygreatmailserver.com".

define service{
use generic-service ; Inherit default values from a template
host_name remotehost
service_description POP3 Response Check
check_command check_pop!-t 5 -e "mygreatmailserver.com"
}

Monitoreando IMAP
El plugin check_imap puede ser utilizado para monitorear servicios IMAP4 en los servidores de correo. El archivo commands.cfg contiene una definición de comando para utilizar el plugin check_imap, el cual se ve así:

define command{
command_name check_imap
command_line $USER1$/check_imap -H $HOSTADDRESS$ $ARG1$
}

Una definición de servicio simple para monitorear el servicio IMAP4 en remotehost deberá verse así:

define service{
use generic-service ; Inherit default values from a template
host_name remotehost
service_description IMAP
check_command check_imap
}

Esta definición de servicio deberá monitorear el servicio IMAP4 y generar alertas si el servidor IMAP4 no responde dentro de 10 segundos.

Una definición de servicio más avanzada es mostrada acontinuación. Este servicio deberá revisar el servicio IAMP4 y generar una alerta si el servidor no responde dentro de 5 segundos o si la respuesta del servidor no contiene "mygreatmailserver.com".

define service{
use generic-service ; Inherit default values from a template
host_name remotehost
service_description IMAP4 Response Check
check_command check_imap!-t 5 -e "mygreatmailserver.com"
}

Reiniciando Nagios
Una vez que usted ha agregado nuevas definiciones de equipos y servicios en sus archivos de configuración de objetos, usted esta listo para monitorearlos. Para esto, usted necesita verificar su configuración y reiniciar Nagios.

Si el proceso de verificación produce mensajes de error, solucione los archivos de configuración antes de continuar. Asegurese de no reiniciar Nagios hasta que el proceso de verificación se complete sin errores!.

Monitoreando Routers y Switches

Introducción

Switch

Este documento describe como usted puede monitorear el estado de los switches y routers de la red. Algunos switches y hubs baratos "inadministrables" no tienen una dirección IP y esencialmente son invisibles en su red, por lo tanto no hay forma de poder monitorearlos. A switches y routers más caros se les puede asignar direcciones y pueden ser monitoreados pingeandolos o utilizando SNMP para solicitar información sobre su estado.

Se describira como usted puede monitorear las siguientes cosas en switches, hubs y routers administrables:


  • Pérdida de Paquetes, round trip average

  • Información sobre el estado usando SNMP

  • Ancho de Banda / Taza de Tráfico


Note Nota: Estas instrucciones asumen que usted instaló Nagios de acuerdo a las guías de instalación rápida. La configuración de ejemplo en la parte inferior hace referencia a objetos que estan definidos en los archivos de configuración de ejemplo (commands.cfg, templates.cfg, etc.) que fueron instalados si usted siguio la guía rápida.

Descripción

Monitoreando Routers y Switches

Monitoring switches and routers can either be easy or more involved - depending on what equipment you have and what you want to monitor. As they are critical infrastructure components, you'll no doubt want to monitor them in at least some basic manner.

Los switches y routers pueden ser monitoreados facilmente "pingueandolos" para determinar pérdida de paquetes, RTA, etc. Si su switch soporta SNMP, usted puede monitorear el estado de los puertos, etc. con el plugin check_snmp y el ancho de banda (si usted esta utilizando MRTG) con el plugin check_mrtgtraf.

El plugin check_snmp solamente puede ser compilado e instalado su usted tiene instalados los paquetes net-snmp y net-snmp-utils instalados en su sistema. Asegurese que su plugin existe en /usr/local/nagios/libexec antes de continuar. Si no es así, instale net-snmp y net-snmp-utils y recompile/reinstale los plugins de Nagios.

Pasos

Hay varios pasos que usted necesita seguir en orden para monitorear un nuevo router o switch. Estos son:


  1. Realizar prerequisitos por primera vez

  2. Crear nuevas definiciones de equipos y servicios para monitorear el equipo

  3. Reiniciar el servicio de Nagios



Que es lo que ya se ha hecho por usted

Para hacerle la vida un poco más fácil, algunas tareas de configuración ya se han realizado para usted:


  • Dos definiciones de comandos (check_snmp y check_local_mrtgtraf) han sido agregadas al archivo commands.cfg. Esto le permite utilizar los plugins check_snmp y check_mrtgtraf para monitorear routers de red.

  • Una plantilla de switch (llamada generic-switch) ha sido creada en el archivo templates.cfg. Esto le permite a usted agregar nuevas denificiones de equipo router/switch de una manera simple.



Los archivos de configuración anteriormente mencionados pueden ser localizados en el directorio /usr/local/nagios/etc/objects/. UUsted puede modificar estas definiciones u otras definiciones para satisfacer mejor sus necesidades si usted así lo desea. Sin embargo, se le recomienda esperar mientras usted se familiariza con la configuración de Nagios antes de hacerlo. Por el momento, solo siga las instrucciones en la parte inferior y usted estará monitoreando sus routers/switches de red rápidamente.

Prerequisitos
La primera vez que usted configure Nagios para monitorear una máquina Windows, usted necesitara realizar un poco más de trabajo. Recuerde, usted necesita realizar esto para el *primer* switch que va a monitorear.

Edite su archivo de configuración de Nagios principal (main).


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


Quite el caracter asterisco (#) de la siguiente línea de su archivo de configuración principal:


#cfg_file=/usr/local/nagios/etc/objects/switch.cfg


Grabe y salga.

¿Qué es lo que ha hecho?, usted le acaba de decir a Nagios que vea el archivo /usr/local/nagios/etc/objects/switch.cfg para encontrar definiciones de objetos adicionales. Ahi es donde usted estara agregando definiciones de equipos y servicios para los routers y switches. El archivo de configuración ya contiene definiciones ejemplo de equipos, grupo de equipos (hostgroups) y servicios. Para el *primer* router/switch que va a monitorear, usted simplemente modifique las definiciones de ejemplo de equipos y servicios en ese archivo, en vez de crear nuevas.

Configurando Nagios

Usted necesita crear algunas definiciones de objetos en orden para monitorear un nuevo router/switch.

Abra el archivo switch.cfg para editarlo.


vi /usr/local/nagios/etc/objects/switch.cfg


Agregue una nueva definición de equipo para el switch que usted va a monitorear. Si este es el *primer* switch que va a monitorear, usted simplemente puede modificar la definición de equipo de ejemplo en el archivo switch.cfg. Cambie los campos host_name, alias, y address a los valores apropiados para el switch.


define host{
use generic-switch ; Inherit default values from a template
host_name linksys-srw224p ; The name we're giving to this switch
alias Linksys SRW224P Switch ; A longer name associated with the switch
address 192.168.1.253 ; IP address of the switch
hostgroups allhosts,switches ; Host groups this switch is associated with
}


Monitoreando Servicios

Ahora usted puede agregar definiciones de servicios (en el mismo archivo de configuración) para monitorear diferentes aspectos del switch. Si este es el *primer* witch que va a monitorear, usted simplemente puede modificar las definiciones de servicios en el archivo switch.cfg.

Note Nota: Reemplace "linksys-srw224p" en las definiciones de ejemplo en la parte inferior con el nombre que usted especifico en la directiva host_name de la definición de equipo que acaba de agregar.

Monitoreando Pérdida de Paquetes y RTA

Agregue la siguiente definición de servicio en orden para monitorear pérdida de paquetes y promedio de round trip entre el equipo de Nagios y el switch cada 5 minutos bajo condiciones normales.


define service{
use generic-service ; Inherit values from a template
host_name linksys-srw224p ; The name of the host the service is associated with
service_description PING ; The service description
check_command check_ping!200.0,20%!600.0,60% ; The command used to monitor the service
normal_check_interval 5 ; Check the service every 5 minutes under normal conditions
retry_check_interval 1 ; Re-check the service every minute until its final/hard state is determined
}


Este servicio será:


  • CRITICO (CRITICAL) si el promedio de round trip (RTA) es mayor a 600 milisegundos o la pérdida de paquetes es 60% o más

  • PRECAUCIÓN (WARNING) si el RTA es mayor a 200 ms o la pérdida de paquetes es 20% o más

  • OK si el RTA es menor a 200 ms y la pérdida de paquetes es menor a 20%



Monitorando Información de Estado con SNMP

Si su switch o router soporta SNMP, usted puede monitorear mucha información utilizando el plugin check_snmp. Si no es así, salte esta sección.

Agregue la siguiente definición de servicio para monitorear el tiempo de actividad (uptime) del switch.

define service{
use generic-service ; Inherit values from a template
host_name linksys-srw224p
service_description Uptime
check_command check_snmp!-C public -o sysUpTime.0
}


En la directiva check_command de la definición de servicio anterior, el "-C public" le dice al plugin que la comunidad SNMP que va a ser utilizada es "public" y el "-o sysUpTime.0" indica cual OID deberá ser revisada.

Si usted desea asegurarse si un puerto o interfaz en especifico del switch estan en funcionamiento, usted puede agregar una definición de servicio como la siguiente:

define service{
use generic-service ; Inherit values from a template
host_name linksys-srw224p
service_description Port 1 Link Status
check_command check_snmp!-C public -o ifOperStatus.1 -r 1 -m RFC1213-MIB
}


En el ejemplo anterior, el "-o ifOperStatus.1" se refiere al OID para el estado operacional del puerto 1 en el switch. La opción "-r 1" le dice al plugin check_snmp que regrese el estado OK si "1" si es recibido como resultado de SNMP (1 indica un estado de funcionamiento ("up") del puerto) y (CRÍTICO) CRITICAL si no fue recibido 1. El "-m RFC1213-MIB" es opcional y le dice al plugin check_snmp que solo cargue el "RFC1213-MIB" en vez de cada una de las MIBs que estan instaladas en su sistema, lo cual puede hacer que se agilice todo.

Eso es todo para el ejemplo de monitoreo con SNMP. Hay muchas cosas que pueden ser monitoreadas utilizando SNMP, por lo cual es cuestion de usted que necesita y que quiere monitorear. Buena suerte!

Tip Tip: Usted puede usualmente encontrar OIDs que pueden ser monitoreadas en un switch ejecutando el siguiente comando (reemplace 192.168.1.253 con la dirección IP del switch):
snmpwalk -v1 -c public 192.168.1.253 -m ALL .1

Monitoreando Ancho de Banda / Taza de Tráfico

Si usted esta monitoreando el uso de ancho de banda en switches y routers utilizando MRTG, usted puede hacer que Nagios le alerte cuando las tazas de tráfico exceden umbrales o rangos que usted especifica. El plugin check_mrtgtraf (el cual es incluido en la distribución de plugins de Nagios) le permite a usted hacer eso.

Usted necesita permitir al plugin check_mrtgtraf conocer cual archivo de registro (log) donde se guardan los datos de MRTG, junto con los rangos o umbrales, etc. En este ejemplo, se va a monitorear uno de los puertos de un switch linksys. El archivo de registros (log) de MTRG esta grabado en /var/lib/mrtg/192.168.1.253_1.log. A continuación se muestra la definición de servicio que se utiliza para monitorear el uso ancho de banda que esta grabada en ese archivo de registro (log file)...


define service{
use generic-service ; Inherit values from a template
host_name linksys-srw224p
service_description Port 1 Bandwidth Usage
check_command check_local_mrtgtraf!/var/lib/mrtg/192.168.1.253_1.log!AVG!1000000,2000000!5000000,5000000!10
}


En el ejemplo anterior, la opción "/var/lib/mrtg/192.168.1.253_1.log" que es pasada al comando check_local_mrtgtraf le dice al plugin cual archivo de registros de MRTG se va a leer. La opción "AVG" le dice que deberá utilizar estadisticas promedio de ancho de banda. Las opciones "1000000,2000000" son los rangos de precaución (en bytes) para las tazas de tráfico entrante. Las opciones "5000000,5000000" son rangos críticos (en bytes) para tazas de tráfico saliente. La opción "10" cause que el plugin regrese un estado CRÍTICO (CRITICAL) si el archivo de registros no se ha actualizado en 10 minutos (se debe actualizar cada 5 minutos).

Grabe el archivo.

Reiniciando Nagios

Una vez que usted ha agregado las nuevas definiciones de equipos y serviciosen el archivo switch.cfg, usted esta listo para monitorear un router/switch. Para esto, usted necesita verificar su configuración y reiniciar Nagios.

Si el proceso de verificación produce un error, arregle los archivos de configuración antes de continuar. Asegurese de no reiniciar Nagios hasta que el proceso de verificación se complete sin errores!

Monitoreando Impresoras de Red

Introducción
Printer

Este documento describo como monitorear el estado de impresoras dentro de la red. Especificamente impresoras HP que tienen tarjetas internas/externas Jetdirect u otros servidores de impresión (como el Troy PocketPro 100S o el Netgear PS101) que soportan el protocolo JetDirect.

El plugin check_hpjd (que es parte de la distribución estandar de plugins de Nagios) permite a usted monitorear el estado de impresoras disponibles con JetDirect que tienen SNMP habilitado. El plugin es capaz de detectar los siguientes estados de la impresora:

  • Paper Jam (Papel atascado)

  • Out of Paper (Sin Papel)

  • Printer Offline (Impresora fuera de Linea)

  • Intervention Required (Intervención Requerida)

  • Toner Low (Toner Bajo)

  • Insufficient Memory (Memoria Insuficiente)

  • Open Door (Puerta Abierta)

  • Output Tray is Full (Bandeja de Salida esta llena)

  • y más...



Note Nota: Estas instrucciones asumen que usted instaló Nagios de acuerdo a las guías de instalación rápida. La configuración de ejemplo en la parte inferior hace referencia a objetos que estan definidos en los archivos de configuración de ejemplo (commands.cfg, templates.cfg, etc.) que fueron instalados si usted siguio la guía rápida.

Descripción

Monitoreando una Impresora de Red

Monitorear el estado de una impresora en red es bastante simple. Las impresoras con JetDirect habilitado usualmente tienen SNMP activado, lo cual permite a Nagios monitorear su estado utilizando el plugin check_hpjd.

El plugin check_hpjd solamente se compilará y se instalará si usted tiene instalados los paquetes net-snmp y net-snmp-utils. Asegurese que el plugin existe en /usr/local/nagios/libexec antes de continuar. Si no existe, instale net-snmp y net-snmp-utils, recompile y reinstale los plugins de Nagios.

Pasos

Hay varios pasos que debe de seguir en orden para monitorear una nueva impresora en red. Estos son:

  1. Realizar los prerequisitos por primera vez

  2. Crear nuevas definiciones de equipo y servicios para monitorear la impresora

  3. Reiniciar el servicio de Nagios



Que es lo que ya se ha hecho por usted

Para hacerle la vida un poco más fácil, algunas tareas de configuración ya han sido realizadas para usted:

  • Una definición del comando check_hpjd ha sido agregada en el archivo commands.cfg. Esto permite a usted utilizar el plugin check_hpjd para monitorear impresoras.

  • Una plantilla de equipo para impresora (llamada generic-printer) ha sido creada en el archivo templates.cfg. Esto permite a usted el agregar nuevas definiciones de equipos de impresora de una manera simple.



Los archivos de configuración anteriormente mencionados pueden ser localizados en el directorio /usr/local/nagios/etc/objects/. Usted puede modificar estas definiciones u otras definiciones para satisfacer mejor sus necesidades si usted así lo desea. Sin embargo, se le recomienda esperar mientras usted se familiariza con la configuración de Nagios antes de hacerlo. Por el momento, solo siga las instrucciones en la parte inferior y usted estara monitoreando sus impresoras de red rápidamente.

Prerequisitos

La primera vez que usted configure Nagios para monitorear una impresora de red, usted necesitara realizar un poco más de trabajo. Recuerde, usted necesita realizar esto para la *primera* impresora de red que va a monitorear.

Edite el archivo de configuración principal de Nagios.

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

Remueva el caracter asterisco (#) de la siguiente línea del archivo de configuración principal:

#cfg_file=/usr/local/nagios/etc/objects/printer.cfg

Grabe el archivo y salga.

¿Qué es lo que ha hecho?, usted le acaba de decir a Nagios que vea el archivo /usr/local/nagios/etc/objects/printers.cfg para buscar definiciones adicionales de objetos. Ahi es donde usted agregara definiciones de equipos y servicios para la impresora. Este archivo de configuración ya contiene algunos ejemplos de definiciones de equipos, grupos de equipos (hostgroups) y servicios. Para la *primer* impresora a monitorear, usted simplemente modifique las definiciones de equipo y servicio en ese archivo, no hay necesidad de crear nuevos, solo copie, pegue y modifique.

Configurando Nagios

Usted necesita crear algunas definiciones de objetos en orden para monitorear una nueva impresora.

Habra el archivo printer.cfg para editarlo.

vi /usr/local/nagios/etc/objects/printer.cfg

Agregue una nueva definición de equipo para la impresora de red que usted va a monitorear. Si esta es la *primer* impresora a monitorear, usted puede simplemente modificar la definicion de equipo de ejemplo en el archivo printer.cfg. Cambie los campos host_name, alias, y address a los valores apropiados para la impresora.

define host{
use generic-printer ; Inherit default values from a template
host_name hplj2605dn ; The name we're giving to this printer
alias HP LaserJet 2605dn ; A longer name associated with the printer
address 192.168.1.30 ; IP address of the printer
hostgroups allhosts ; Host groups this printer is associated with
}

Ahora puede agregar algunas definiciones de servicio (al mismo archivo de configuración) para monitorear diferentes aspectos de la impresora. Si esta es la *primer* impresora que va a monitorear, usted simplemente puede modificar el ejemplo de la definición de servicio en el archivo printer.cfg.

Note Nota: Reemplace "hplj2605dn" en las definiciones de ejemplo de la parte superior con el nombre que usted especifico en la directiva host_name de la definicion del equipo que acaba de agregar.

Agregue la siguiente definición de servicio para revisar el estatus de la impresora. El servicio utiliza el plugin check_hpjd para revisar el estatus de la impresora cada 10 minutos por default. La cadena de la comunidad SNMP utilizada para realizar la petición a la impresora es "public" en este ejemplo.

define service{
use generic-service ; Inherit values from a template
host_name hplj2605dn ; The name of the host the service is associated with
service_description Printer Status ; The service description
check_command check_hpjd!-C public ; The command used to monitor the service
normal_check_interval 10 ; Check the service every 10 minutes under normal conditions
retry_check_interval 1 ; Re-check the service every minute until its final/hard state is determined
}

Agregue la siguiente definición de servicio para realizar un ping a la impresora cada 10 minutos por default. Esto es útil para monitorear RTA, perdida de paquetes y conectividad en general en la red.

define service{
use generic-service
host_name hplj2605dn
service_description PING
check_command check_ping!3000.0,80%!5000.0,100%
normal_check_interval 10
retry_check_interval 1
}

Grabe el archivo.

Reiniciando Nagios

Una vez que usted ha agregado las nuevas definiciones de equipo y servicio al archivo de configuración printer.cfg, usted esta listo para empezar a monitorear la impresora. Para hacer esto, usted necesita verificar su configuración y reiniciar Nagios.

Si el proceso de verificación produce un error, arregle los archivos de configuración antes de continuar. Asegurese de no reiniciar Nagios hasta que el proceso de verificación se complete sin errores!

Monitoreando Equipos con Novell Netware

Introducción
Este documento proporciona información sobre como monitorear servidores Novell Netware.
Recursos Externos
Usted puede encontrar documentación de como monitorear servidores Netware con Nagios en el sitio de Novell Cool Solutions, incluyendo:

Tip Tip: Cuando visite el sitio de Novell Cool Solutions, realice una busqueda de "Nagios" para encontrar más articulos y componentes de software relacionados al monitoreo.
Gracias a Christian Mies, Rainer Brunold, y otros por contribuir con documentación, complementos, etc. de Nagios y Netware en el sitio de Novell!

Monitoreando Equipos con Linux/Unix

Introducción

Este documento describe el como monitorear servicios "privados" y atributos en servidores Linux/UNIX, como son:


  • Carga de CPU

  • Uso de Memoria

  • Uso en Disco Duro

  • Usuarios firmados

  • Procesos Ejecutandose

  • Etc.



Los servicios publicamente disponibles que son proporcionados por los servidores Linux (HTTP, FTP, SSH, SMTP, etc.) pueden ser monitoreados facilmente siguiendo la documentación en servicios publicamente disponibles.

Note Nota: Estas instrucciones asumen que usted instaló Nagios de acuerdo a la guía de instalación rápida. Las entradas de configuración de ejemplo en la parte inferior de los objetos de referencia que estan definidos en los archivos de configuración de ejemplo (commands.cfg, templates.cfg, etc.) son instalados si se sigue la guía de instalación rápida.

Descripción

[Nota: Este documento no ha sido terminado. Se le recomienda que lea la documentación del complemento NRPE para instrucciones de como monitorear un servidor remoto Linux/Unix.]

Hay varias formas de monitorear los atributos de servidores remotos Linux/Unix. Una es utilizando llaves SSH compartidas (shared SSH keys) y el plugin check_by_ssh para ejecutar plugins en servidores remotos. Este metodo no será cubierto aquí, pero puede resultar muy demandante para el servidor de monitoreo si se monitorean cientos o miles de servicios. El costo de creación y destrucción de conecciones SSH es causa de esto.

NRPE

Otro método común para monitorear remotamente equipos Linux/Unix Es el de usar el complemento NRPE. NRPE permite ejecutar plugins en equipos remotos Linux/Unix. Esto puede ser útil si se necesita monitorear los recursos/atributos locales como uso en disco, carga en CPU, uso en memoria, etc. en un equipo remoto.

(En este sitio viene explicado a grandes rasgos como funciona en el manual de la versión 2 apartado NRPE).

Monitoreando Equipos con Windows

Introducción

Este documento describe el como monitorear servicios "privados" y atributos en máquinas con Windows, como por ejemplo:


  • Uso de Memoria

  • Carga en CPU

  • Uso en Disco Duro

  • Estado en Servicios

  • Procesos ejecutandose

  • etc.



Los servicios publicamente disponibles que proveen las máquinas con Windows (HTTP, FTP, POP3, etc.) pueden ser monitoreados fácilmente siguiendo la documentación en monitoreando servicios publicamente disponibles.

Note Nota: Estas instrucciones asumen que usted instaló Nagios de acuerdo a la guía de instalación rápida. Las entradas de configuración de ejemplo en la parte inferior de los objetos de referencia que estan definidos en los archivos de configuración de ejemplo (commands.cfg, templates.cfg, etc.) son instalados si se sigue la guía de instalación rápida.

Descripción

Monitoreando una Máquina Windows

El monitorear servicios privados o atributos de una máquina con Windows requiere que usted instale un agente. Este agente actua como un proxy entre el plugin de Nagios que realiza el monitoreo y el servicio actual o atributo de la máquina Windows. Sin instalar un agente en Windows, Nagios no podria monitorear servicios privados o atributos de Windows.

Para este ejemplo, instalaremos el complemento NSClient++ en la máquina con Windows y utilizaremos el plugin check_nt para comunicarnos con el complemento NSClient++. El plugin check_nt debera ya estar instalado en el servidor de Nagios si se siguieron los pasos de la guía de instalación rápida.

Otros agentes de Windows (como NC_Net) pueden ser utilizados en ves de NSClient++ si usted lo desea - usted tendra que realizar cambios en las definiciones de comandos y servicios. Por simplicidad solamente se cubrira el complemento NSClient++ en estas instrucciones.

Pasos

Hay algunos pasos que usted debe seguir en orden para monitorear la nueva máquina Windows. Aquí estan:


  1. Realizar prerequisitos por primera vez

  2. Instalar un agente de monitoreo en la máquina Windows

  3. Crear nuevas definiciones de nuevo equipo (host) y nuevo servicio (service) para monitorear a la máquina Windows

  4. Reiniciar el servicio de Nagios



Que es lo que ya se ha hecho por usted

Para hacerle la vida un poco más fácil, algunas tareas de configuración ya se han realizado para usted:


  • Una definición del comando check_nt ha sido agregado al archivo commands.cfg. Esto permite a usted que utilice el plugin check_nt para monitorear servicios de Windows.

  • Una plantilla de equipo de servidor Windows (llamada windows-server) ha sido creada en el archivo templates.cfg. Esto permite a usted el agregar nuevas definiciones de equipos con Windows de una manera simple.



Los archivos de configuración anteriormente mencionados pueden ser localizados en el directorio /usr/local/nagios/etc/objects/. Usted puede modificar estas definiciones u otras definiciones para satisfacer mejor sus necesidades si usted así lo desea. Sin embargo, se le recomienda esperar mientras usted se familiariza con la configuración de Nagios antes de hacerlo. Por el momento, solo siga las instrucciones en la parte inferior y usted estara monitoreando sus máquinas con Windows rápidamente.

Prerequisitos

La primera vez que usted configure Nagios para monitorear una máquina Windows, usted necesitara realizar un poco más de trabajo. Recuerde, usted necesita realizar esto para la *primera* máquina Windows que va a monitorear.

Edite su archivo de configuración de Nagios principal (main).


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


Quite el caracter asterisco (#) de la siguiente línea de su archivo de configuración principal:


#cfg_file=/usr/local/nagios/etc/objects/windows.cfg


Grabe y salga.

¿Qué es lo que ha hecho?, usted le acaba de decir a Nagios que vea el archivo /usr/local/nagios/etc/objects/windows.cfg para buscar definiciones adicionales de objetos. Ahi es donde usted agregara definiciones de equipos y servicios Windows. Este archivo de configuración ya contiene algunos ejemplos de definiciones de equipos, grupos de equipos (hostgroups) y servicios. Para la primer máquina Windows, usted simplemente modifique las definiciones de equipo y servicio en ese archivo, no hay necesidad de crear nuevos, solo copie, pegue y modifique.

Instalando el agente Windows

Antes de monitorear servicios privados y atributos de las máquinas con Windows, usted necesita instalar un agente a estas máquinas. Se recomienda utilizar el complemento NSClient++, que puede ser localizado en http://sourceforge.net/projects/nscplus. Estas instrucciones lo llevaran a traves de una instalación básica del complemento NSClient++, asi como la configuración de Nagios para monitorear la máquina Windows.

1. Descargue la última versión estable del complemento NSClient++ desde http://sourceforge.net/projects/nscplus

2. Descomprima los archivos de NSClient++ en un nuevo directorio C:\NSClient++

3. Abra un command prompt y cambiese al directorio C:\NSClient++

4. Registre el servicio de NSClient++ con el siguiente comando:


nsclient++ /install


5. Instale el "systray" de NSClient++ con el siguiente comando ('SysTray' es case-sensitive):


nsclient++ SysTray


6. Abra el manejador de servicios y asegurese que el servicio NSClientpp es permitido para interactuar con el escritorio (vease el tab 'Log On' en el manejador de servicios). Si no esta permitido para interactuar con el escritorio, seleccione el cuadro para permitirlo.

NSClientpp

7. Edite el archivo NSC.INI (localizado en el directorio C:\NSClient++) y realize los siguientes cambios:


  • Descomente todos los modulos que aparecen listados en la sección [modules], excepto CheckWMI.dll y RemoteConfiguration.dll

  • Opcional, si requiere una contraseña para los clientes, cambie la opción 'password' en la sección [Settings].

  • Descomente la opción 'allowed_hosts' en la sección [Settings]. Agregue la dirección IP de su servidor de Nagios en esta línea o dejela en blanco para permitir a todos los equipos conectarse.

  • Asegurese que la opción 'port' en la sección [NSClient] esta descomentada y asignada a '12489' (el puerto por default).



8. Inicie el servicio de NSClient++ con el siguiente comando:


nsclient++ /start


9. Si fue instalado adecuadamente, un nuevo icono debera aparecer en la barra del sistema (systray). Será un circulo amarillo con una M negra dentro.

10. Exito! El servidor Windows ahora puede ser agregado a la configuracion de Nagios para su monitoreo...

Configurando Nagios

Ahora es tiempo de definir objetos en sus archivos de configuración de Nagios en orden para monitorear la nueva máquina de Nagios.

Abra el archivo windows.cfg para editarlo.


vi /usr/local/nagios/etc/objects/windows.cfg


Agregue una definición nueva de equipo para la máquina Windows que usted desea monitorear. Si esta es la primer máquina Windows que va a monitorear, usted simplemente tendra que modificar la definición de ejemplo del equipo en windows.cfg. Cambie el host_name, alias, y address por lo valores apropiados para su equipo con Windows.


define host{
use windows-server ; Inherit default values from a Windows server template (make sure you keep this line!)
host_name winserver
alias My Windows Server
address 192.168.1.2
}


Bien. Ahora puede agregar algunas definiciones de servicios (en el mismo archivo de configuración) en orden para decirle a Nagios que se van a monitorear varios aspectos de la máquina Windows. Si es la *primer* máquina Windows que va a monitorear, usted simplemente puede modificar las definiciones de servicios de ejemplo en windows.cfg.

Note Nota: Reemplace "winserver" en las definiciones de ejemplo en la parte inferior con el nombre que usted especifico en la directiva host_name en la definición de equipo que usted agregó.

Agregue la siguiente definición de servicio para monitorear la version del complemento NSClient++ que se esta ejecutando en el servidor Windows. Esto es útil cuando llega el tiempo de actualizar en los servidores Windows una nueva versión del complemento, y usted podra decir cual de las máquinas Windows necesitan que se actualice a la última version de NSClient++.


define service{
use generic-service
host_name winserver
service_description NSClient++ Version
check_command check_nt!CLIENTVERSION
}


Agregue la siguiente definición de servicio para monitorear el tiempo de actividad del servidor Windows.


define service{
use generic-service
host_name winserver
service_description Uptime
check_command check_nt!UPTIME
}


Agregue la siguiente definición de servicio para monitorear el uso de CPU en el servidor Windows y generar una alerta CRITICA si en 5 minutos la carga de CPU es de 90% o más o una alerta PRECAUCIÓN (WARNING) si en 5 minutos la carga es de 80% o más.


define service{
use generic-service
host_name winserver
service_description CPU Load
check_command check_nt!CPULOAD!-l 5,80,90
}


Agregue la siguiente definición de servicio para monitorear el uso de memoria del servidor Windows y generar una alerta CRITICA si el uso de memoria es de 90% o más y una alerta de PRECAUCIÓN (WARNING) si el uso de memoria es de 80% o más.


define service{
use generic-service
host_name winserver
service_description Memory Usage
check_command check_nt!MEMUSE!-w 80 -c 90
}



Agregue la siguiente definición de servicio para monitorear el uso en el disco C:\ del servidor Windows y generar una alerta CRITICA si el uso en disco es de 90% o más y una alerta de PRECAUCIÓN (WARNING) si el uso en disco es de 80% o mas.


define service{
use generic-service
host_name winserver
service_description C:\ Drive Space
check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90
}



Agregue la siguiente definición de servicio para monitorear el estado del servicio W3SVC en una máquina Windowsy generar una alerta CRITICA si el servicio es detenido.



define service{
use generic-service
host_name winserver
service_description W3SVC
check_command check_nt!SERVICESTATE!-d SHOWALL -l W3SVC
}


Agregue la siguiente definición de servicio para monitorear el proceso Explorer.exe de una máquina Windowsy generar una alerta CRITICA si el proceso no se esta ejecutando.


define service{
use generic-service
host_name winserver
service_description Explorer
check_command check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe
}


Eso es todo por ahora. Usted a agregado algunos servicios básicos que deben ser monitoreados en un máquina Windows. Grabe el archivo de configuración.

Protección con Contraseña

Si usted especificó una contraseña en el archivo de configuración de NSClient++ para una máquina Windows, usted necesita modificar la definición del comando check_nt para incluir la contraseña. Abra el archivo commands.cfg para editarlo.


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


Cambie la definición del comando check_nt para incluir el argumento "-s <PASSWORD>" (donde PASSWORD es la contraseña que se especifico en la máquina Windows) así:


define command{
command_name check_nt
command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s PASSWORD -v $ARG1$ $ARG2$
}


Grabe el archivo.

Reiniciando Nagios

Usted ya terminó de modificar la configuración de Nagios, por lo cual usted necesita verificar sus archivos de configuración y reiniciar Nagios.

Si el proceso de verificación produce un error, arregle los archivos de configuración antes de continuar. Asegurese de no reiniciar Nagios hasta que el proceso de verificación se complete sin errores!

Actualización de versiones previas

Contents
Actualizando desde versiones previas de Nagios 3.x
Actualizando desde Nagios 2.x
Actualizando desde una instalación RPM

Actualizando desde versiones previas de Nagios 3.x
Cuando versiones nuevas alfa, beta, y estable de Nagios 3.x estan disponibles, se le recomienda a usted actualizar lo más rapido posible. Nuevas versiones usualmente contienen parches para fallas criticas, por lo cual es muy importante que esté al día. Asumiendo que usted instaló Nagios desde el código fuente como esta explicado en las guías de configuración rápida, usted puede instalar nuevas versiones de Nagios 3.x facilmente. Usted no necesita acceso como root para hacerlo, dado que todo lo necesario por hacer como root es realizado en la instalación. Aquí esta el proceso para actualización...

Asegurese que tiene un buen respaldo de su instalación y archivos de configuración de Nagios. Si algo sale mal o no funciona, esto permitira a usted poder regresar a su antigua versión.

Cambiese al usuario Nagios. Usuarios de Debian/Ubuntu deberan utilizar sudo -s nagios.

su -l nagios

Baje el archivo comprimido con el código fuente de la última versión de Nagios (visite http://www.nagios.org/download/ para la útlima versión).

wget http://osdn.dl.sourceforge.net/sourceforge/nagios/nagios-3.x.tar.gz

Extraiga el código fuente de Nagios.

tar xzf nagios-3.x.tar.gz
cd nagios-3.x

Ejecute el script de configuración de Nagios, pasando el nombre del grupo usado para controlar los permisos del archivo de comandos externos:

./configure --with-command-group=nagcmd

Compile el código fuente de Nagios.

make all

Instale binarios actualizados, documentacion e interfaz web. Sus archivos de configuración no seran sobreescritos por este paso.

make install

Verifique sus archivos de configuracion y reinicie Nagios.

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
/sbin/service nagios restart

Eso es todo - Usted terminó!

Actualizando desde Nagios 2.x
No debe de ser complicado actualizar de Nagios 2.x a Nagios 3. La actualización es esencialmente la misma que fue descrita anteriormente para actualizar a versiones nuevas de Nagios 3.x. You will, however, have to change your configuration files a bit so they work with Nagios 3:

  • La antigua variable service_reaper_frequency en el archivo principal de configuración ha sido renombrada a check_result_reaper_frequency.

  • La antigua macro $NOTIFICATIONNUMBER$ ha sido modificada para dar lugar a las nuevas macros $HOSTNOTIFICATIONNUMBER$ y $SERVICENOTIFICATIONNUMBER$.

  • La antigua directiva parallelize en definición de servicios ha sido eliminada y no sera utilizada más, esto por que todas las revisiones de servicios se hacen de forma paralela.

  • La antigua opción aggregate_status_updates ha sido elimininada. Todas las actualizaciones del archivo de status han sido agregadas a un intervalo minimo de 1 segundo.

  • Las definiciones Extended host and extended service estan descontinuadas. Siguen siendo leidas y procesadas por Nagios, pero es recomendable que mueva las directivas encontradas en estas definiciones a sus definiciones de equipos y servicios respectivamente.

  • La variable de archivo downtime_file en el archivo de configuración principal ya no es soportado, dado que las entradas de tiempo de inactividad programado son grabadas en el archivo de retención (retention_file). Para preservar las entradas existentes de tiempo de inactividad, pare Nagios 2.x y agregue el contenido del archivo de tiempo de inactividad a el archivo de retención (retention_file).

  • La variable de archivo downtime_file en el archivo de configuración principal ya no es soportado, por lo cual los comentarios ahora son grabados en el archivo de retención (retention file). Para preservar los comentarios existentes, pare Nagios 2.x y agregue el contenido del archivo de comentarios en el archivo de retención.


Tambien este seguro de leer la sección de la documentación "Que hay de nuevo". Describe todos los cambios al código de Nagios 3 que se han hecho desde la última version estable de Nagios 2.x. Algo a cambiado, por lo cual asegurese de leerlo.

Actualizando desde una instalación RPM
Si actualmente usted tiene una isntalación de Nagios basada en paqueteria RPM- o Debian/Ubuntu y usted quiere realizar la transición de instalar Nagios desde el código fuente oficial, aquí está un proceso básico a seguir:

  1. Respalde su instalación de Nagios


    • Archivos de configuración


      • Archivo principal de configuración (usualmente nagios.cfg)

      • Archivo de configuración de recursos (usualmente resource.cfg)

      • Archivo de configuración CGI (usualmente cgi.cfg)

      • Todos los archivos de definición de objetos


    • Archivo de Retención (usualmente retention.dat)

    • El archivo de registros actual de Nagios (usualmente nagios.log)

    • Archivos de registros de Nagios guardados


  2. Desinstale el paquete original RPM o APT

  3. Instale Nagios desde el código fuente como viene en las guías de configuración rápida

  4. Reestablesca sus archivos de configuración originales, archivo de retención y archivos de registro

  5. Verifique su configuración e inicie Nagios


Note que los diferentes paquetes RPM o APT pueden instalar Nagios en diferentes formas y en diferentes rutas. Asegurese de tener respaldados todos sus archivos criticos de Nagios antes de eliminar los paquetes RPM o APT, de tal forma que pueda revertir la instalación en caso de que algo salga mal.

Acerca de


¿Qué es Nagios?

Nagios® es una aplicación para monitoreo de sistemas y redes.
Revisa equipos y servicios que uno mismo le especifica, alertandonos cuando algo esta mal y cuando esta bien.
Algunas de las características con las que cuenta son:


  • Monitorear servicios de red (SMTP, POP3, HTTP, PING, etc.)

  • Monitorear recursos de los hosts (carga de procesador, uso de disco, etc.)

  • Diseño simple de plugins para que podamos crear los nuestros a nuestras necesidades especificas.

  • Habilidad de definir una jerarquía de hosts usando la opciòn parent.

  • Notificaciones a contactos cuando un servicio o host tenga problemas y puedan resolverlo (email, pager o definido por el usuario).

  • Rotación de log automática.

  • Etc.




¿Requisitos Requerimientos del sistema:
Cualquier equipo que este ejecutando Linux o una variante de Unix y con compilador C, y preferentemente que tenga:

1. Un Web server (Apache el ideal)
2. Thomas Boutell's GD library esto para el statusmap y trends


Licencia:
Nagios esta bajo la GNU General Public License versión 2 publicada por la Free Software Foundation. Esto le da permiso legal de copiar, distribuir y/o modificar Nagios bajo ciertas condiciones. Lea el archivo 'LICENSE' en la distribución de Nagios o lea la versión en línea para mayores detalles.

Nagios es proporcionado COMO ES sin NINGUNA GARANTÍA DE NINGUN TIPO, INCLUYENDO GARANTÍA DE DISEÑO, COMERCIALIZACIÓN Y ADECUARSE PARA UN PROPOSITO EN PARTICULAR.


Reconocimientos
Muchas personas han contribuido a Nagios ya sea reportando 'bugs', sugerencias de mejora, escribiendo plugins, etc. Una lista de algunos contribuidores en el desarrollo de Nagios pueden ser localizados en http://www.nagios.org.


Bajar la última versión
Usted puede revisar las nuevas veriones de Nagios en http://www.nagios.org.

Nagios y el logo de Nagios son marcas registradas de Ethan Galstad. Todas las demas marcas registradas, marcas de servicio, etc. son propiedad de sus respectivos dueños.

Ubuntu Guía Rápida (Quickstart)

Introduction
Esta guía esta pensada para proveerle simples instrucciones de como instalara Nagios desde código fuente en Ubuntu y tener monitoreando su máquina local en 20 minutos. Opciones de instalación avanzadas no son discutidas aquí - solo lo básico que funcionara para el 95% de usuarios que desen empezar.

Estas instrucciones fueron escritas basadas en la distribución Linux (Escritorio) Ubuntu 6.10. Debe funcionar tambien en Ubuntu 7.10.

Lo que usted logrará obtener

Si usted sigue estas instrucciones, esto es lo que lograra obtener:


  • Nagios y los plugins serán instalados bajo /usr/local/nagios

  • Nagios sera configurado para que empiece a monitorear algunos aspectos de su sistema local (carga de CPU, uso en disco, etc.)

  • La interfaz WEB de Nagios sera accesada en http://localhost/nagios/



Paquetes Requeridos

Revise que tenga los siguientes paquetes instalados en su instalación de Ubuntu antes de continuar.


  • Apache 2

  • Compilador GCC y librerias de desarrollo

  • Librerias de desarrollo GD



Puede utilizar apt-get para instalar estos paquetes utilizando los siguientes comandos:

sudo apt-get install apache2
sudo apt-get install build-essential


Con Ubuntu 6.10, instale la libreria gd2 con este comando:

sudo apt-get install libgd2-dev


Con Ubuntu 7.10, el nombre de la libreria gd2 a cambiado, por lo cual usted necesitara utilizar el siguiente:

sudo apt-get install libgd2-xpm-dev


1) Crear información de la cuenta

Cambiar a usuario root.

sudo -s


Crear usuario nuevo nagios y proporcionarle una contraseña.

/usr/sbin/useradd -m nagios
passwd nagios


En Ubuntu server edition (6.01 y posiblemente en nuevas versiones), usted necesitara agregar el grupo nagios (no es creado por default). Usted podra saltar este paso en ediciones 'desktop' de Ubuntu.

/usr/sbin/groupadd nagios
/usr/sbin/usermod -G nagios nagios


Crear un grupo nuevo nagcmd para permitir que comandos externos sean ingresados por medio de la interfaz web. Agregar tanto el usuario nagios como el usuario apache al grupo.

/usr/sbin/groupadd nagcmd
/usr/sbin/usermod -G nagcmd nagios
/usr/sbin/usermod -G nagcmd www-data


2) Bajar Nagios y los Plugins

Crear un directorio para guardar los archivos.

mkdir ~/downloads
cd ~/downloads


Bajar el código fuente comprimido de ambos, tanto Nagios como los plugins de Nagios (visitar http://www.nagios.org/download/ para enlaces de las últimas versiones). Al momento de escribir, las ultimas versiones de Nagios y los plugins de Nagios fueron 3.0.3 and 1.4.11, respectivamente.

wget http://osdn.dl.sourceforge.net/sourceforge/nagios/nagios-3.0.2.tar.gz
wget http://osdn.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.11.tar.gz


3) Compile e instale Nagios

Extraiga el código fuente del archivo comprimido de Nagios.

cd ~/downloads
tar xzf nagios-3.0.3.tar.gz
cd nagios-3.0.3


Ejecute el script de configuración de Nagios, pasando el nombre del grupo que usted creo anteriormente:

./configure --with-command-group=nagcmd


Compile el código fuente de Nagios.

make all


Instale los binarios, el script de inicio, archivos de configuración de ejemplo y otorge permisos en el directorio de comandos externos.

make install
make install-init
make install-config
make install-commandmode


No inicie Nagios todavia - hay más cosas que hacer antes de hacerlo...

4) Personalice la configuración

Archivos de configuración de ejemplo han sido instalados en el directorio /usr/local/nagios/etc. Estos archivos de ejemplo deben de trabajar adecuadamente para empezar a utilizar Nagios. Usted necesita realizar un cambio más antes de proceder...

Edite el archivo de configuración /usr/local/nagios/etc/objects/contacts.cfg con su editor favorito y cambie la dirección de correo que esta asociada con el contacto nagiosadmin con la dirección de correo donde desea recibir las alertas.

vi /usr/local/nagios/etc/objects/contacts.cfg


5) Configure la interfaz WEB

Instale el archivo de configuración web en el directorio conf.d de Apache.

make install-webconf


Creamos la cuenta nagiosadmin para entrar a la interfaz web de Nagios. Recuerde la contraseña que asigno a esta cuenta - la necesitará después.

htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin


Reinicie Apache para que la nueva configuración tome efecto.

/etc/init.d/apache2 reload


6) Compile e instalelos Plugins de Nagios

Extraiga los plugins de Nagios del archivo comprimido.

cd ~/downloads
tar xzf nagios-plugins-1.4.11.tar.gz
cd nagios-plugins-1.4.11


Compile e instale los plugins.

./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
make install


7) Start Nagios

Configure Nagios para que automaticamente se ejecute cuando el sistema inicie.

ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios


Revise los archivos de configuración de ejemplo de Nagios.

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg


Si no hay errores, inicie Nagios.

/etc/init.d/nagios start


8) Login a la interfaz WEB

Ahora usted podra accesar a la interfaz web de Nagios por medio de la dirección en la parte inferior. Le será solicitado el usuario (nagiosadmin) y la contraseña que especifico anteriormente.

http://localhost/nagios/


De click en el link navbar "Service Detail" para ver detalles de lo que esta siendo monitoreado en la máquina local. Tomara algunos minutos a Nagios para revisar todos los servicios asociados con su máquina, mientras las revisiones sean realizadas a su tiempo.

9) Otras Modificaciones

Si desea recibir notificaciones de alertas de Nagios por correo electrónico, usted necesita instalar el paquete mailx (Postfix).

sudo apt-get install mailx


Usted necesita editar los comandos de Nagios para la notificación por correo electrónico localizados en /usr/local/nagios/etc/objects/commands.cfg y cambiar cualquier '/bin/mail' a '/usr/bin/mail'. Una vez hecho esto usted necesita reiniciar Nagios para que los cambios en la configuración tomen efecto.

sudo /etc/init.d/nagios restart


Configurar notificaciones por correo electrónico estan fuera de revisión en esta documentación. Verifique la documentación de su sistema, busque en la web, o vea en el NagiosCommunity wiki para instrucciones especificas en como configurar su sistema Ubuntu para enviar notificaciones por correo electrónico a direcciones externas.

openSUSE Guía Rápida (Quickstart)

Introducción

Esta guía esta pensada para proveerle simples instrucciones de como instalara Nagios desde código fuente en Fedora y tener monitoreando su máquina local en 20 minutos. Opciones de instalación avanzadas no son discutidas aquí - solo lo básico que funcionara para el 95% de usuarios que desen empezar.

Estas instrucciones fueron escritas basadas en la distribución Linux openSUSE 10.2.

Paquetes Necesarios

Revise que tiene instalados los siguientes paquetes en su instalación de openSUSE antes de continuar. Puede utilizar yast para instalar los paquetes en openSUSE.


  • apache2

  • C/C++ librerias de desarrollo



1) Crean información de la cuenta

Cambiar a usuario root.


su -l


Crear una nuevo usuario nagios y asignarle una contraseña.

/usr/sbin/useradd -m nagios
passwd nagios



Crear un grupo nagios. Agregar el usuario nagios a este grupo.

/usr/sbin/groupadd nagios
/usr/sbin/usermod -G nagios nagios


Crear un nuevo grupo nagcmd para permitir que comandos externos sean ingresados por medio de la interfaz web. Agregar tanto el usuario nagios como el usuario apache al grupo.

/usr/sbin/groupadd nagcmd
/usr/sbin/usermod -G nagcmd nagios
/usr/sbin/usermod -G nagcmd wwwrun


2) Bajar Nagios y los Plugins

Crear un directorio para guardar los archivos.

mkdir ~/downloads
cd ~/downloads


Bajar el código fuente comprimido de ambos, tanto Nagios como los plugins de Nagios (visitar http://www.nagios.org/download/ para enlaces de las últimas versiones). Al momento de escribir, las ultimas versiones de Nagios y los plugins de Nagios fueron 3.0.3 and 1.4.11, respectivamente.

wget http://osdn.dl.sourceforge.net/sourceforge/nagios/nagios-3.0.2.tar.gz
wget http://osdn.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.11.tar.gz


3) Compile e instale Nagios

Extraiga el código fuente del archivo comprimido de Nagios.

cd ~/downloads
tar xzf nagios-3.0.2.tar.gz
cd nagios-3.0.2


Ejecute el script de configuración de Nagios, pasando el nombre del grupo que usted creo anteriormente:

./configure --with-command-group=nagcmd


Compile el código fuente de Nagios.

make all



Instale los binarios, el script de inicio, archivos de configuración de ejemplo y otorge permisos en el directorio de comandos externos.

make install
make install-init
make install-config
make install-commandmode


No inicie Nagios todavia - hay más cosas que hacer antes de hacerlo...

4) Personalice la configuración

Archivos de configuración de ejemplo han sido instalados en el directorio /usr/local/nagios/etc. Estos archivos de ejemplo deben de trabajar adecuadamente para empezar a utilizar Nagios. Usted necesita realizar un cambio más antes de proceder...

Edite el archivo de configuración /usr/local/nagios/etc/objects/contacts.cfg su editor favorito y cambie la dirección de correo que esta asociada con el contacto nagiosadmin con la dirección de correo donde desea recibir las alertas.

vi /usr/local/nagios/etc/objects/contacts.cfg


5) Configure la interfaz WEB

Instale el archivo de configuración web en el directorio conf.d de Apache.



make install-webconf


Creamos la cuenta nagiosadmin para entrar a la interfaz web de Nagios. Recuerde la contraseña que asigno a esta cuenta - la necesitará después.

htpasswd2 -c /usr/local/nagios/etc/htpasswd.users nagiosadmin


Reinicie Apache para que la nueva configuración tome efecto.

service apache2 restart


6) Compile e instalelos Plugins de Nagios

Extraiga los plugins de Nagios del archivo comprimido.

cd ~/downloads
tar xzf nagios-plugins-1.4.11.tar.gz
cd nagios-plugins-1.4.11


Compile e instale los plugins.

./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
make install


7) Inicie Nagios

Agregue a Nagios a la lista de servicios del sistema y asi se ejecute automaticamente cuando el sistema inicie.

chkconfig --add nagios
chkconfig nagios on


Revise los archivos de configuración de ejemplo de Nagios.

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg


Si no hay errores, inicie Nagios.

service nagios start


9) Login a la interfaz WEB

Ahora usted podra accesar a la interfaz web de Nagios por medio de la dirección en la parte inferior. Le será solicitado el usuario (nagiosadmin) y la contraseña que especifico anteriormente.
http://localhost/nagios/


De click en el link navbar "Service Detail" para ver detalles de lo que esta siendo monitoreado en la máquina local. Tomara algunos minutos a Nagios para revisar todos los servicios asociados con su máquina, mientras las revisiones sean realizadas a su tiempo.

10) Otras Modificaciones

Asegurese que las reglas de firewall en su máquina estan configuradas para permitir el acceso al servidor web si desea que la interfaz de Nagios sea accesada remotamente.

Puede hacerlo realizando lo siguiente:


  • Abra el control center

  • Seleccione 'Open Administrator Settings' para abrir el YaST administrator control center

  • Seleccione 'Firewall' desde la categoria 'Security and Users'

  • De click en la opción 'Allowed Services' en la configuración del Firewall Configuration
  • Agregue 'HTTP Server' a la lista de servicios permitidos en la 'External Zone'

  • De click 'Next' y 'Accept' para activar las nuevas configuraciones del firewall



Configurar notificaciones por correo electrónico estan fuera de revisión en esta documentación. Verifique la documentación de su sistema, busque en la web, o vea en el NagiosCommunity wiki para instrucciones especificas en como configurar su sistema openSUSE para enviar notificaciones por correo electrónico a direcciones externas.

Fedora Guía Rápida (Quickstart)

Introducción

Esta guía esta pensada para proveerle simples instrucciones de como instalara Nagios desde código fuente en Fedora y tener monitoreando su máquina local en 20 minutos. Opciones de instalación avanzadas no son discutidas aquí - solo lo básico que funcionara para el 95% de usuarios que desen empezar.

Estas instrucciones fueron escritas basadas en la distribución Linux Fedora Core 6.

Lo que usted logrará obtener

Si usted sigue estas instrucciones, esto es lo que lograra obtener:


  • Nagios y los plugins serán instalados bajo /usr/local/nagios

  • Nagios sera configurado para que empiece a monitorear algunos aspectos de su sistema local (carga de CPU, uso en disco, etc.)

  • La interfaz WEB de Nagios sera accesada en http://localhost/nagios/



Prerequisitos

En algunas etapas de la instalación usted necesitara acceso como root al equipo.

Revise que tenga los siguientes paquetes instalados en su instalación de Fedora antes de continuar.


  • Apache

  • Compilador GCC


  • GD librerias de desarrollo



Puede utilizar yum para instalar los siguientes paquetes con los comandos mencionados a continuación (como root):

yum install httpd
yum install gcc
yum install glibc glibc-common
yum install gd gd-devel


1) Crear información de la cuenta

Cambiar a usuario root.

su -l


Crear usuario nuevo nagios y proporcionarle una contraseña.

/usr/sbin/useradd -m nagios
passwd nagios


Crear un grupo nuevo nagcmd para permitir que comandos externos sean ingresados por medio de la interfaz web. Agregar tanto el usuario nagios como el usuario apache al grupo.

/usr/sbin/groupadd nagcmd
/usr/sbin/usermod -G nagcmd nagios
/usr/sbin/usermod -G nagcmd apache


2) Bajar Nagios y los Plugins

Crear un directorio para guardar los archivos.

mkdir ~/downloads
cd ~/downloads


Bajar el código fuente comprimido de ambos, tanto Nagios como los plugins de Nagios (visitar http://www.nagios.org/download/ para enlaces de las últimas versiones). Al momento de escribir, las ultimas versiones de Nagios y los plugins de Nagios fueron 3.0.3 and 1.4.11, respectivamente.

wget http://osdn.dl.sourceforge.net/sourceforge/nagios/nagios-3.0.2.tar.gz
wget http://osdn.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.11.tar.gz


3) Compile e instale Nagios

Extraiga el código fuente del archivo comprimido de Nagios.

cd ~/downloads
tar xzf nagios-3.0.3.tar.gz
cd nagios-3.0.3


Ejecute el script de configuración de Nagios, pasando el nombre del grupo que usted creo anteriormente:

./configure --with-command-group=nagcmd


Compile el código fuente de Nagios.

make all


Instale los binarios, el script de inicio, archivos de configuración de ejemplo y otorge permisos en el directorio de comandos externos.

make install
make install-init
make install-config
make install-commandmode


No inicie Nagios todavia - hay más cosas que hacer antes de hacerlo...

4) Personalice la configuración

Archivos de configuración de ejemplo han sido instalados en el directorio /usr/local/nagios/etc. Estos archivos de ejemplo deben de trabajar adecuadamente para empezar a utilizar Nagios. Usted necesita realizar un cambio más antes de proceder...

Edite el archivo de configuración /usr/local/nagios/etc/objects/contacts.cfg con su editor favorito y cambie la dirección de correo que esta asociada con el contacto nagiosadmin con la dirección de correo donde desea recibir las alertas.

vi /usr/local/nagios/etc/objects/contacts.cfg


5) Configure la interfaz WEB
Instale el archivo de configuración web en el directorio conf.d de Apache.

make install-webconf


Creamos la cuenta nagiosadmin para entrar a la interfaz web de Nagios. Recuerde la contraseña que asigno a esta cuenta - la necesitará después.

htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin


Reinicie Apache para que la nueva configuración tome efecto.

service httpd restart


6) Compile e instalelos Plugins de Nagios

Extraiga los plugins de Nagios del archivo comprimido.

cd ~/downloads
tar xzf nagios-plugins-1.4.11.tar.gz
cd nagios-plugins-1.4.11


Compile e instale los plugins.

./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
make install


7) Inicie Nagios

Agregue a Nagios a la lista de servicios del sistema y asi se ejecute automaticamente cuando el sistema inicie.

chkconfig --add nagios
chkconfig nagios on


Revise los archivos de configuración de ejemplo de Nagios.

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg


Si no hay errores, inicie Nagios.

service nagios start


8) Modifique la configuración de SELinux

Fedora viene con SELinux (Security Enhanced Linux) instalado y en Enforcing mode por default. Esto puede mostrar el mensaje "Internal Server Error" cuando intente ingresar a los Nagios CGIs.

Verificar si SELinux está en modo Enforcing.

getenforce

Cambiar SELinux a modo Permissive.

setenforce 0


Para hacer este cambio permanente, usted necesita modificar la configuración en /etc/selinux/config y reiniciar.

En lugar de deshabilitar SELinux o configurarlo para modo permissive, usted puede utilizar el siguiente comando para ejecutar CGIs bajo SELinux modo enforcing/targeted:

chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin/
chcon -R -t httpd_sys_content_t /usr/local/nagios/share/


Para información de como ejecutar Nagios CGIs bajo modo Enforcing con una poliza targeted, visite el wiki de NagiosCommunity.org en http://www.nagioscommunity.org/wiki.

9) Login a la interfaz WEB

Ahora usted podra accesar a la interfaz web de Nagios por medio de la dirección en la parte inferior. Le será solicitado el usuario (nagiosadmin) y la contraseña que especifico anteriormente.
http://localhost/nagios/


De click en el link navbar "Service Detail" para ver detalles de lo que esta siendo monitoreado en la máquina local. Tomara algunos minutos a Nagios para revisar todos los servicios asociados con su máquina, mientras las revisiones sean realizadas a su tiempo.
10) Otras Modificaciones

Asegurese que las reglas de firewall en su máquina estan configuradas para permitir el acceso al servidor web si desea que la interfaz de Nagios sea accesada remotamente.

Configurar notificaciones por correo electrónico estan fuera revisión en esta documentación. Mientras Nagios es actualmente configurado para enviar notificaciones por correo electrónico, su sistema tal vez no tenga un programa de correo instalado y configurado adecuadamente. Verifique la documentación de su sistema, busque en la web, o vea en el NagiosCommunity.org wiki para instrucciones especificas de como configurar su sistema para enviar correos electrónicos a direcciones externas. Mayor información en notificaciones pueden ser encontradas aquí.
11) Usted esta listo

Felicidades! usted acaba de instalar Nagios satisfactoriamente. Su viaje dentro del monitoreo apenas empieza. Tal vez no dude en monitorear más que su equipo local, por lo cual revise los siquientes documentos...

Guias de Instalación Rápida - Nagios 3.x

Introducción

Estas guías (Quickstart) estan pensadas para proveerle instrucciones simples de como instalar Nagios desde código fuente y tener monitoreando la máquina local dentro de 20 minutos. Opciones de instalación avanzadas no son discutidas aquí - solo lo básico que funcionara para el 95% de usuarios que desen empezar.

Guias

Las guías de instalación rápida estan actualmente disponibles para las siguientes distribuciones de Linux:

Usted puede encontrar guías rápidas adicionales en NagiosCommunity.org wiki. ¿No puede encontrar una guía para su SO en particular?, escriba una y añadala al wiki para beneficio de otros.

Si esta instalando Nagios en un sistema operativo o distribución de Linux que no esta listada arriba, lea la guía de Fedora para una revision de lo que usted necesita hacer. Comandos, rutas, etc. varian a traves de los diferentes SOs/distribuciones, por lo cual tal vez tenga que modificar un poco la forma de instalación que viene en los documentos para que funcione en su caso particular.

Modificaciones después de la instalación

Una vez que tenga Nagios instalado y corriendo adecuadamente, no dudamos que usted desee monitorear más que su máquina local. Por favor revise los siguientes documentos para saber como monitorear otras cosas...

Nagios via WEB

Si, soy un "lazy admin" y?, bueno, para aquellos que son como yo aquí les va como configurar el paquete Fruity para hacer la configuración de su Nagios via WEB.

1.- Importante tener lo siguiente en nuestro servidor donde esta Nagios:
Apache. (yo tengo el 2)
PHP 5.x Esto por soporte orientado a objetos
- PHP MySQL
- PHP Session
MySQL
- 4.1 para arriba
Nagios 2.x

2.- Bajamos Fruity.
3.- Extraemos Fruity en nuestro directorio WEB (i.e. /var/www/htdocs/fruity).
4.- Creamos un symlink o copiamos el directorio de iconos de logos en el directorio fruity con el nombre de logos (i.e. /usr/local/nagios/share/images/logos).
5.- Creamos base de datos en MySQL (fruity) e importamos el archivo que esta en sqldata/fruity-mysql.sql.
6.- Configuramos el archivo config.inc en el directorio includes según nuestras necesidades ya que aqui va el path de fruity, el usuario, password y base de datos de MySQL.
7.- Vamos a /fruity/ de nuestro servidor para empezar a usar Fruity.

Esta versión es Beta, pero funciona, cualquier comentario que tengan sobre esta aplicación haganla llegar.

External Command File

En este apartado les explicaré brevemente que hace este archivo, ya que realicé una migración de Nagios a otro servidor y no me acordaba de este archivo.

El External Command File es un archivo externo el cual Nagios revisa por comandos externos a procesar. El commando CGI escribe directamente al archivo. Es creado cuando Nagios es ejecutado y es destruido cuando Nagios deja de ejecutarse. Su definición esta en nagios.cfg.

Format: command_file=
Example: command_file=/usr/local/nagios/var/rw/nagios.cmd

Ahora, vamos a arreglar todo para que no tengamos problemas al querer ejecutar comandos desde la página WEB de Nagios.

Primero verificamos en que grupo corre nuestro servidor WEB (nobody, apache, etc), que usuario esta ejecutando Nagios (por lo regular es nagios) y debemos crear un grupo para Nagios, puede ser nagios o nagioscmd, en este ejemplo usamos nagios, por lo regular según tu instalación ya estará creado.

Si no esta creado ejecutamos el siguiente commando.


isuraeru@isuraeru:~> /usr/sbin/groupadd nagios


Despues agregamos el grupo WEB al grupo de Nagios


isuraeru@isuraeru:~> /usr/sbin/usermod -G nagios apache


Despues verificamos si existe el directorio rw en nuestro directorio var:

i.e. /usr/local/nagios/var/rw

Si no existe adivinen que, pues lo creamos.

En caso de que ya exista confirmamos que tenga los siguientes permisos:


isuraeru@isuraeru:~> drwxrws--- 2 nagios nagios 1024 Aug 11 16:30 rw


Si no existe hacemos estos movimientos:


isuraeru@isuraeru:~> mkdir /usr/local/nagios/var/rw
isuraeru@isuraeru:~> chown nagios.nagios /usr/local/nagios/var/rw
isuraeru@isuraeru:~> chmod u+rwx /usr/local/nagios/var/rw
isuraeru@isuraeru:~> chmod g+rwx /usr/local/nagios/var/rw
isuraeru@isuraeru:~> chmod g+s /usr/local/nagios/var/rw


Verificamos los permisos


isuraeru@isuraeru:~> drwxrws--- 2 nagios nagios 1024 Aug 11 16:30 rw


Reiniciamos el servidor WEB y listo, solo vamos a cualquier equipo y en la sección de Host Commands podemos ejecutar cualquiera, tambien en los servicios.

NRPE

Introducción



Este pequeño daemon te permite ejecutar plugins locales en equipos remotos de equipos Linux, como es esto, el plugin check_nrpe es llamado por Nagios y hace las peticiones de los plugins hacia el equipo remoto, requiere que NRPE este siendo ejecutado en ese equipo como un standalone daemon o como un servicio en inetd, tambien soporta encriptación nativa de SSL/TLS.
Hay una versión para Win2 pero la verdad opte por nsclient o nc_net.

NOTA - La última versión es la 2.0 y es incompatible con las versiones 1.x, tanto para clientes como servidores.

Aquí explicare de manera básica sus archivos y su funcionamiento.

En el paquete de NRPE pueden encontrar los siguientes archivos:

NRPE - Este es el programa que se ejecuta como proceso en el background en los equipos remotos y procesa las peticiones de ejecución de comandos del plugin check_nrpe del equipo donde esta Nagios. Recibe la petición del equipo autorizado, procesa la información del command line asociado con el comando que recibe y envia la información solicitada al plugin check_nrpe.

check_nrpe - Este es el plugin que se ejecuta en el equipo donde esta Nagios y es utilizado para contactar el proceso NRPE en los equipos remotos. Este plugin solicita al plugin remoto a ejecutarse en el equipo y espera que el proceso de NRPE se ejcuta y regrese la informacion solicitada.

Compilar



Sencillo, simplemente descompriman el paquete y ejecuten:

isuraeru@localhost$ ./configure
isuraeru@localhost$ make all


IMPORTANTE - El daemon NRPE debe ser compilado en el equipo remoto.

Instalación



Solo copiar el archivo check_nrpe en /usr/local/nagios/plugins o dependiendo donde tengan sus plugins.
En el caso del equipo remoto deben tener el daemon NRPE en donde tienen sus daemons i.e. /etc/rc.d/nrpe y tambien el archivo nrpe.cfg i.e. /etc/nrpe.cfg.

Ejecutando bajo inetd o xinetd



Asi es como lo tengo configurado y me funciona muy bien tenemos que ejecutar nrpe bajo inetd o xinetd y hacemos uso de los TCP wrappers, realizamos lo siguiente:

1.- Agregamos una linea en /etc/services como la siguiente:

nrpe 5666/tcp # NRPE

2.- Despues configuramos las entradas del daemon NRPE ya sea en inetd o xinetd, yo utilice inetd
NOTA - Si ejecutamos nrpe en inetd o xinetd, las variables server_port y allowed_hosts en el archivo de configuración del nrpe serán ignoradas.

Inetd



Si nuestro sistema utiliza inetd CON tcpwrappers agregamos la siguiente entrada en /etc/inetd.conf:

nrpe stream tcp nowait [user] /usr/sbin/tcpd [nrpebin] -c [nrpecfg] --inetd

Si nuestro sistema utiliza inetd SIN tcpwrappers agregamos la siguiente entrada en /etc/inetd.conf:

nrpe stream tcp nowait [user] [nrpebin] -c [nrpecfg] --inetd

Solamente reemplazamos user por el usuario que el servidor nrpe sera ejecutado. i.e. nagios.

nrpebin con el path del binario de nrpe i.e. /usr/local/nagios/nrpe

nrpecfg con el path del archivo de configuracion de nrpe i.e. /usr/local/nagios/nrpe.cfg o /etc/nrpe.cfg.

Xinetd



Si nuestro sistema utiliza xinetd en vez de inetd creamos un archivo llamado nrpe en /etc/xinetd.d conteniendo lo siguiente:


# default: on
# description: NRPE
service nrpe
{
flags = REUSE
socket_type = stream
wait = no
user = [user]
server = [nrpebin]
server_args = -c [nrpecfg] --inetd
log_on_failure += USERID
disable = no
only_from = [ipaddress1] [ipaddress2] ...
}


Reemplazamos user por el usuario que el servidor nrpe sera ejecutado. i.e. nagios.

nrpebin con el path del binario de nrpe i.e. /usr/local/nagios/nrpe

nrpecfg con el path del archivo de configuracion de nrpe i.e. /usr/local/nagios/nrpe.cfg o /etc/nrpe.cfg

ipaddress con las direcciones IP de los equipos qu deseamos sean aceptados para conectarse al daemon NRPE. Esto funciona solamente si xinetd fue compilado con soporte para tcpwrappers.

3.- Reiniciamos inetd o xinetd i.e.

isuraeru@localhost# /etc/rc.d/init.d/inet restart

isuraeru@localhost# /etc/rc.d/init.d/xinetd restart

4.- Agregamos entradas en nuestros archivos /etc/hosts.allow y /etc/hosts.deny para habilitar protección TCP wrapper para el servicio nrpe, es opcional pero altamente recomendado.

IMPORTANTE - Los plugins que se deseen ejecutar en el equipo remoto forzosamente deben estar en ese equipo por i.e. yo tengo un equipo que ejecuto check_procs, check_users y check_cpu los cuales los tengo en /usr/local/nagios/libexec y deben de ser propiedad de nagios.nagios.

OK, todo esto fue para los equipos remotos o clientes, ahora vamos a configurar el equipo donde esta Nagios.

Configuración equipo Nagios



Primeramente ya contamos con un archivo de configuracion nrpe.cfg de ejemplo incluido en el paquete de nrpe el cual va en los equipos remotos ahora definiremos el comando para nrpe ya sea en checkcommands.cfg o commands.cfg dependiendo d cual esten utilizando, el cual podemos declararlo así

define command{
command_name check_nrpe
command_line /usr/local/nagios/libexec/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}

Ahora, para ejecutar este comando en los equipos remotos debemos de crear un servicio para tales equipos por ejemplo

define service{
host_name someremotehost
service_description someremoteservice
check_command check_nrpe!yourcommand
... etc ...
}

En donde yourcommand es el comando que deseamos ejecutar en el equipo remoto i.e. check_procs.

Y listo.
Dudas, ya saben a donde escribir. Saludos.