Después de configurar el cluster para el servicio de proxy surge la inevitable necesidad de monitorizar su funcionamiento.
Nagios es un excelente software de monitorización y testeo de disponibilidad de servicios, yo incluso he logrado monitorizar una centralita Avaya con este software, y el cluster heartbeat también es posible monitorizarlo, en este post voy a explicar como chequeo el estado del servicio de proxy y la disponibilidad de cada uno de sus miembros.
Hay muchos manuales para instalar Nagios, por lo que paso directamente al tema; lo primero es monitorizar la disponibilidad del servicio que estamos ofreciendo, en este caso de proxy, independientemente del estado de los miembros del cluster;
En el directorio NAGIOS:/etc/nagios2/conf.d#
# Definimos el Host de nuestro cluster y definimos los miembros
define host {
host_name proxy.dominio.local
alias vIP Cluster Proxy
address 192.168.1.100
use generic-host
}
define host {
host_name A4
alias Proxy A1
address 192.168.1.101
use generic-host
}
define host {
host_name A5
alias Proxy A2
address 192.168.1.102
use generic-host
}
define host {
host_name A6
alias Proxy A3
address 192.168.1.103
use generic-host
}
#Definimos el hostgroup para chequear servicios
# Proxys
define hostgroup {
hostgroup_name PROXY-CLUSTER
alias PROXY-CLUSTER
members proxy.dominio.local,A1,A2,A3
}
# Definimos el servicio para el grupo
define service{
hostgroup_name PROXY-CLUSTER
service_description PROXY-CLUSTER
check_command check_squid
use generic-service
}
Hay que tener en cuenta que la definición de comando de servicio este correcta en /etc/nagios-plugins/config/http.cfg deberiamos de tener una linea como la siguiente
# 'check_squid' command definition
define command{
command_name check_squid
command_line /usr/lib/nagios/plugins/check_http -H $HOSTADDRESS$ -p 3128 -u http://www.google.es -e 'HTTP/1.0 200 OK'
}
Yo compruebo que este disponible google.es pero se puede utilizar cualquier URL.
Con esto ya tendriamos resultados a cerca del estado del servicio, pero no sabriamos si un miembro del cluster ha caído, para ello se puede hacer algo simple como un ping (o en Nagios un Check_host_alive) pero así solo tendríamos la disponibilidad del host, no la del servicio proxy y mucho menos si para el cluster el miembro sigue presente.
Utilizo un pluggin de Nagios llamado check_heartbeat_link descargable aquí, con este pluggin podemos consultar en cada miembro del cluster como esta viendo al resto de los miembros, este pluggin hay que ejecutarlo mediante NRPE (nagios remote pluggin execute) aquí hay un manual para configurarlo.
define service{
use generic-service
host_name A1
service_description Heartbeat
check_command check-nrpe-heartbeat
}
define service{
use generic-service
host_name A2
service_description Heartbeat
check_command check-nrpe-heartbeat
}
define service{
use generic-service
host_name A3
service_description Heartbeat
check_command check-nrpe-heartbeat
}
El resultado, mas un par de cosas interesantes a chequear debería de ser el siguiente;