Nagios: host no pingable

6 Julio 2011 at 22:03 by Adrián Pérez

Hoy toca hablar de Nagios, el conocido sistema de monitorización. Nagios, nos ayuda a conocer el estado de nuestra red, monitorizando los servidores y sus servicios, así como todo un seguido de parámetros configurables, tanto a nivel de servidor, como a nivel de elemento de red (routers, switches, impresoras de red, etc.).

Por defecto, Nagios utiliza el parámetro “check-host-alive” para verificar si una máquina está o no funcionando. Este parámetro en realidad, únicamente lanza un ping a dicha máquina. El resultado del ping, determinará si la máquina está o no caída.

Sin embargo, el ping es un elemento 100% fiable para determinar la disponibilidad de una máquina. Si, como en mi caso, te has encontrado con alguna máquina que no es pingable (por ejemplo porqué se trata de un firewall en modo stealth, o símplemente porqué la máquina tiene iptables activado y está denegando los pings), ésta aparecerá en Nagios como caída, lo cual dará una falsa sensación de alarma.

Afortunadamente, alguien ya ha pensado en la solución. Ésta pasa por crear un método que únicamente determinará si un determinado servicio está o no disponible en la máquina (por ejemplo, si el servidor no pingable es un servidor web, podremos aprovecharnos de ésto para verificar la disponibilidad del puerto 80). Si el servicio está disponible, entonces la máquina estará disponible. Si no lo está, o tenemos un problema con el servicio, o tenemos un problema con el servidor, pero en cualquier caso, tendremos un problema, así que Nagios hará bien de indicárnoslo.

Se podrá crear un nuevo comando para (en este caso) verificar el servicio web, añadiéndolo en el fichero commands.cfg:

# 'check-host-alive-by-http' command definition
define command {
command_name check-host-alive-by-http
command_line $USER1$/check_http -H $HOSTADDRESS
}

Posteriormente, únicamente será necesario modificar en el archivo hosts.cfg, para que el host no pingable use el nuevo comando:

check_command check-host-alive-by-http

Después de reiniciar el servicio de Nagios, ya tendremos solucionada la monitorización de la disponibilidad del servidor no pingable.