domingo, 8 de febrero de 2009

Implementación de Big Brother en ambientes heterogéneos

El presente artículo tiene por objeto explicar la forma en la cual se ha implementado la solución de monitoreo y alarma "Big Brother", versión gratuita, en un ambiente heterogéneo, específicamente uno que posee servidores GNU/Linux (Red Hat y Ubuntu), Solaris y Windows 2003 Enterprise Server.

El sistema Big Brother utiliza, para poder funcionar, ciertos conceptos, a saber:
  • Un BBDISPLAY es un servidor que contendrá la capa de visualización del sistema de monitoreo Big Brother.
  • Un BBPAGER es un servidor que podría tener un sistema de conexión a un SMS Center para enviar en forma directa mensajes a quienes se determine.
  • Lo más común del mundo es que el servidor de Big Brother, es decir, el que recibe las alertas de todos los clientes, así como el que ejecuta el web server que muestra el resultado de los monitoreos, sea el mismísimo BBDISPLAY y BBPAGER.
  • Cada servidor cliente debe ejecutar el paquete cliente de Big Brother para poder recolectar métricas, y reportarlas al servidor de Big Brother.
Ahora que tenemos estos conceptos en nuestra mente, pasemos a poner manos a la obra.

Instalación del servidor de Big Brother (y el primer cliente!)

Para instalar el servidor de Big Brother ante todo se debe bajar el archivo correspondiente al código fuente desde la dirección http://www.bb4.org.
En nuestro caso, el servidor de Big Brother será un sistema con Red Hat Linux ES 4.3 instalado, que a los efectos de esta práctica, llamaremos "bbserver".
El paquete que hemos bajado se llama "bb-1.9i.tar.gz", y contiene dentro de sí dos paquetes, uno que es el servidor en sí mismo ("BBSVR-bb1.9i-btf.tar"), y otro que es el cliente ("BBCLT-bbc1.9i-btf.tar"). Podremos ver estos dos paquetes luego de descomprimirlo con el comando "tar zxvf bb-1.9i.tar.gz".
Ahora, llega la hora de instalar el servidor.
Por cuestiones de seguridad, lo mejor es generar un grupo denominado "bb", y un usuario denominado "bb", para que estos monitores no tengan, bajo ningún punto de vista, que acceder archivos utilizando el superusuario ("root").
Los comandos para generar el grupo y el usuario son los siguientes:

[root@bbserver opt]# groupadd bb
[root@bbserver opt]# useradd -d /home/bb -m -g bb -c "Big Brother" -s /bin/bash bb

[root@bbserver opt]# passwd bb
(ingresar una contraseña)

Una vez generado el usuario y el grupo, procederemos a la instalación de los paquetes descomprimidos, considerando que en este equipo, para poder monitorearlo, se deberán instalar los dos, tanto el servidor como el cliente de Big Brother.
Para la instalación del servidor, ejecutamos los siguientes comandos:

[root@bbserver opt]# cd /opt
[root@bbserver opt]# tar zxvf bb-1.9i.tar.gz
[root@bbserver opt]# tar xvf BBSVR-bb1.9i-btf.tar
[root@bbserver opt]# chown -R bb:bb bb1.9i-btf (o el directorio que haya generado el paquete del servidor)
[root@bbserver opt]# su - bb
[bb@bbserver bb]$ mkdir ~/public_html/cgi-bin

[bb@bbserver bb]$ cd /opt/bb1.9i-btf/install

[bb@bbserver install]$ ./bbconfig redhat

Responder a las preguntas que aquí nos hace el instalador con lo siguiente:
  • El usuario de Big Brother será "bb".
  • La máquina será un BBDISPLAY.
  • La máquina será un BBPAGER (aunque todavía no lo usemos, dejémoslo configurado).
  • El URL base será "/bb" porque luego del http://servidor.web, queremos que sea accedido el monitoreo por medio de ese directorio. El URL al que accederemos será http://servidor.web/bb.
  • El directorio para cgi-bin será "/home/bb/public_html/cgi-bin", dado que lo creamos en un paso anterior a tales fines.
  • El usuario que levanta el web server será "apache", a menos que en nuestro caso sea otro, como ser "nobody" (si no lo sabemos, verifiquemos los procesos que están en ejecución correspondientes al web server, con "ps aux | grep http", por ejemplo).

[bb@bbserver install]$ cd ../src
[bb@bbserver src]$ make

[bb@bbserver src]$ make install

[bb@bbserver src]$ exit

[root@bbserver opt]# cd /var/www/html (o el directorio que se haya configurado como base de nuestro web server).
[root@bbserver html]# ln -s /opt/bb1.9i-btf/www bb
[root@bbserver html]# cd /etc/cron.daily

[root@bbserver cron.daily]# vi logrotate
(esto es para quitar un bug conocido que impide al usuario "bb" la lectura del archivo "messages", generando, por lo tanto, un falso alerta).
El archivo deberá quedar así:
#!/bin/sh
/usr/sbin/logrotate /etc/logrotate.conf

/bin/chmod 644 /var/log/messages
# Esta línea se agregó para solucionar este bug.
EXITVALUE=$?

if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0


Con estos pasos, quedará implementado el servidor Big Brother.

Para instalar el cliente del propio servidor, tendremos que seguir los siguientes pasos:

[root@bbserver html]# cd /opt
[root@bbserver opt]# tar xvf BBCLT-bbc1.9i-btf.tar
[root@bbserver opt]# chown -R bb:bb bbc1.9i-btf
[root@bbserver opt]# su - bb
[bb@bbserver bb]$ cd /opt/bbc1.9i-btf/install
[bb@bbserver install]$ ./bbconfig redhat (responder a todas las preguntas que nos hace el instalador. Generalmente el default está bien).
[bb@bbserver install]$ cd ../src
[bb@bbserver src]$ make
[bb@bbserver src]$ make install

Con estos pasos, queda instalado el cliente de Big Brother.

Ahora, sólo nos falta configurar un archivo tanto del lado del servidor como del cliente, que especifica cuáles serán los clientes a monitorear, así como qué opciones de monitoreo se le dará a cada uno de ellos.
El archivo es el "/opt/bb1.9i-btf/etc/bb-hosts" del lado del servidor, y "/opt/bbc1.9i-btf/etc/bb-hosts" del lado del cliente.
Es importante notar que ambos archivos, así como los de todos los clientes, debieran de quedar con la misma configuración (al menos eso solicita el manual de Big Brother).
En dicho archivo, se deberán comentar todas las entradas que estén descomentadas, dejando sólo las siguientes:

group Servidores Productivos
192.9.200.5 bbserver.dominio.com.ar # BBPAGER BBNET BBDISPLAY


Ahora sí, se podrá ejecutar el servidor con el comando (siempre como el usuario "bb") "/opt/bb1.9i-btf/runbb.sh", y el cliente con el comando "/opt/bbc1.9i-btf/runbb.sh".
Accederemos a la información generada luego de por lo menos diez minutos, a través del URL http://servidor.web/bb .

Implementación de un cliente Solaris 10

Para implementar un cliente Solaris 10 tendremos que generar, tal como lo hemos hecho antes, un grupo y un usuario específicos para Big Brother.
Para ello, seguimos estas secuencias de comandos:

root@solaris # groupadd bb
root@solaris # useradd -g bb -d /export/home/bb -m -c "Big Brother" -s /usr/bin/bash bb
64 blocks
root@solaris # passwd bb
New Password:
Re-enter new Password:
passwd: password successfully changed for bb
root@solaris # cd /opt
root@solaris # tar xvf BBCLT-bbc1.9i-btf.tar
root@solaris # chown -R bb:bb bbc1*
root@solaris # su - bb
bb@solaris $ cd /opt/bbc1.9i-btf/src
bb@solaris $ vi Makefile (debemos hacer esto para que no tome como comando "make" otro que no sea el "gmake", entonces cambiamos el contenido de la línea que dice "MAKE = make", por "MAKE = gmake").
bb@solaris $ cd ../install
bb@solaris $ ./bbconfig solaris
(Responder a las preguntas aceptando la licencia, el usuario "bb", y el uso de FQDN (Fully Qualified Domain Names).
bb@solaris $ cd /opt/bbc1.9i-btf/src
bb@solaris $ make
bb@solaris $ make install
bb@solaris $ vi /opt/bbc1.9i-btf/etc/bb-hosts

Dejemos el contenido de este archivo de la siguiente forma:

192.9.200.5 bbserver.dominio.com.ar # BBPAGER BBNET BBDISPLAY
192.9.200.109 solaris.dominio.com.ar

bb@solaris $ cd /opt/bbc1.9i-btf
bb@solaris $ ./runbb.sh

Ahora, en el sistema servidor de Big Brother, debemos agregar la siguiente entrada en "/opt/bb1.9i-btf/etc/bb-hosts":

[bb@bbserver bb]$ cd /opt/bb1.9i-btf/etc
[bb@bbserver etc]$ vi bb-hosts
Agregar la entrada:

192.9.200.109 solaris.dominio.com.ar

[bb@bbserver etc]$ cd ..
[bb@bbserver bb1.9i-btf]$ ./runbb.sh stop
[bb@bbserver bb1.9i-btf]$ ./runbb.sh
Starting Big Brother
Starting Big Brother Daemon (bbd)...
Starting Network tests (bb-network)...
Starting Display process (bb-display)...
Big Brother 1.9i started

Con estos pasos, quedó implementado el cliente Solaris 10 de Big Brother.

Instalación de un cliente Windows NT/2000/XP/2003 de Big Brother.

Antes que nada, se deberá descargar el archivo instalable de la misma dirección de donde hemos bajado el resto del software.
Luego, sencillamente se deberá hacer doble click en él para ejecutarlo.
Se deberá seguir el esquema "Enter-Enter-Enter-Acepto la licencia-Enter-Instalar-etc." típico en los ejecutables Windows.
Una vez instalado, se abrirá ante nosotros una pantalla con el título "Big Brother Client Configuration Editor".
Posicionémonos en el campo BBDISPLAY hosts, y agreguemos al bbserver, específicamente su dirección IP, en él. Luego presionemos "Add". En el caso de aparecer otra dirección en la sección inferior, seleccionarla del menú desplegable, y presionar "Del".
Hacer lo mismo con el campo BBPAGER.
Presionar el botón "Save", y luego el "Start", para finalmente llegar al "Quit".
Con esos pasos, queda impementado el cliente Windows NT/2000/XP/2003 de Big Brother.

TROUBLESHOOTING: Bueno, en todo artículo hay una sección de este estilo.

Un problema que es más que típico en el sistema Big Brother es que, luego de implementar un cliente NT, algo quede mal configurado, y en particular, que eso sea ni más ni menos que el hostname del sistema Windows NT a monitorear.
Para solucionar este tema, y evitar así el efecto "eternamente púrpura", algún alma caritativa generó el comendo "bbrm".
Este comando nos permitirá eliminar de la configuración del servidor de Big Brother un equipo que ya no se quiere monitorear.
Se ejecuta, sencillamente, lo siguiente, desde el directorio de binarios de Big Brother: ./bbrm equipo
Veremos un mensaje que nos indica que ese servicio ha sido eliminado, y listo. En el próximo monitoreo, habrá desaparecido.

Publicar un comentario en la entrada