viernes, 30 de octubre de 2009

Tips para Troubleshooting en Nagios

Bueno, este es uno de los primeros "tips" para realizar un buen troubleshooting en Nagios.

Comenzaremos en como detectar que nuestros plugins realmente estan haciendo lo que se supone deben hacer, ya que en Nagios nos puede aparecer algún resultado como Unknown.

Vamos a poner un ejemplo en el caso de SNMP, sabemos que el equipo que estamos monitoreando tiene habilitado SNMP y solamente permite al servidor Nagios realizar estas peticiones, pero cuando agregamos el servicio SNMP para monitorear X OID nos aparece en estado Unknown y comunmente recibimos el mensaje de:
SNMP problem - No data received from host

Ahora implementando el tip tenemos que ejecutar el comando desde nuestra shell, comenzando con snmpget, para esto digamos que escribimos el OID mib-2.33.1.1.5.0:

$/usr/bin/snmpget -t 1 -r 5 -m ALL -v 1 -c MiComunidadRO 192.168.1.100:161 mib-2.33.1.1.5.0
Error in packet
Reason: (noSuchName) There is no such variable name in this MIB.
Failed object: SNMPv2-SMI::mib-2.33.1.1.5.0


Damn!, nos aparece un error, el MIB del equipo monitoreado no reconoce el OID que le enviamos, pero ya nos dimos cuenta que la comunicación SNMP si esta funcionado.
Ahora enviamos el siguiente comando:

$/usr/bin/snmpget -t 1 -r 5 -m ALL -v 1 -c MiComunidadRO 192.168.1.100:161 1.3.6.1.2.1.1.3.0
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (246586176) 28 days, 12:57:41.76


Yeah!, funciono, estamos recibiendo información correcta (SYSUPTIME).
Ahora vamos a probar nuestro plugin de check_snmp:

$./check_snmp -C MiComunidadRO -H 192.168.1.100 -o 1.3.6.1.2.1.1.3.0
SNMP OK - Timeticks: (246705486) 28 days, 13:17:34.86


Funciono correctamente.

Entonces ya nos dimos cuenta que todo esta funcionando sin problemas excepto por la primer OID que definimos mib-2.33.1.1.5.0 (causa de la falla).

Lección aprendida
Si definimos primero el servicio en Nagios y un servicio nos aparece un estado Unknown o que no recibe información, hay que dirigirnos al shell para empezar el troubleshooting, comenzando con el comando definido dentro del plugin y despues con el plugin, solo para asegurarnos de que todo esta funcionando correctamente, de esta forma es más fácil detectar alguna falla.

Saludos!

No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.