Beruflich Dokumente
Kultur Dokumente
CEDA EL PASO
Una inteligente combinacin de Nagios y de semforos nos permite conocer cmo se siente nuestra red. POR MICHAEL SCHWARTZKOPFF
agios [1] es una excelente opcin a tener en cuenta a la hora de gestionar un elevado nmero de mquinas y servicios. Nagios es capaz de monitorizar mquinas, conexiones de red y servidores, mostrando el estado de salud de la interfaz web con los
colores verde (ok), amarillo (aviso) y rojo (crtico). Vase la Figura 1. Es una pena que tenga una interfaz web tan discreta. Cuando hay calma en el frente, el administrador puede cerrar tranquilamente el navegador y centrarse en los avisos de Nagios por email del flujo general del trfico. Un da se nos ocurri que deba haber un modo mejor de hacer las cosas. Por suerte, Nagios es muy fcil de adaptar y ampliar. Con un poco de scripting y algo de hardware electrnico de bajo coste, montamos un simple semforo con la Figura 1: El monitor de redes Nagios consulta regularmente la salud de intencin de los hosts y muestra los resultados con los colores de un semforo en ponerlo en cualel escritorio. quier sitio, y que
mostrara el estado de la red en cada momento (ver Figura 2). El semforo da una idea del estado de la red mucho ms tangible que la que cualquier interfaz web pueda ofrecer. Si el trfico cambia de verde a amarillo, o a rojo, el administrador de la red sabe que ha llegado el momento de ponerse manos a la obra. Es maravilloso entrar por la maana en la oficina y encontrarse con una fantstica luz verde, augurndonos un da de trabajo apacible. En este artculo describimos la implementacin de nuestro semforo de red. Sus detalles variarn dependiendo de los componentes de que se disponga en segn qu parte del mundo, pero deja patente la idea general de lo fcil que resulta hacernos nuestras propias soluciones con Nagios.
A la Base de Datos
En vez de mostrar miles de estados individuales, como la interfaz web, el semforo presenta simplemente
34
Nmero 41
WWW.LINUX- MAGAZINE.ES
un intuitivo resumen del estado general de nuestros hosts y servicios. El primer reto es determinar el de todos ellos. La mejor manera de hacerlo es dejar que el software de monitorizacin haga su trabajo y escriba sus conclusiones en una base de datos. La extensin NDOUtils de Nagios se antoja perfecta para esta tarea. Cualquier aplicacin con acceso a la base de datos puede evaluar las tablas centrales hoststatus y servicestatus; dependiendo de la instalacin, las tablas podran incluir el prefijo nagios_. La siguiente consulta establece el estado del host:
SELECT current_stateU FROM nagios_hoststatus;
El valor 0 nos indica que el host existe, 1 significa que hay algn problema de disponibilidad y el 2 representa un estado desconocido. De un modo similar, podemos consultar el estado de los servicios:
SELECT current_stateU FROM nagios_servicestatus;
Figura 2: Este discreto semforo, colocado en la mesa del administrador de sistemas, le advierte de problemas en la red. Cuanto ms verde, mejor.
Los cuatro valores posibles en el estado de un servicio son: 0 para indicar que est bien, 1 para indicar un estado de aviso, 2 para crtico y 3 para un estado desconocido. El semforo slo responde ante estados problemticos que acaban de ocurrir y de los que el administrador an no se ha encargado. La consulta completa presenta el siguiente aspecto:
SELECT *U FROM nagios_hoststatusU WHERE current_state > 0 ANDU problem_has_been_acknowledgedU = 0;
Figura 3: Este fragmento extrado de las tablas NDOUtils Entity Relationship Diagram muestra cmo se enlazan los estados de los hosts y servicios.
cos es ms complejo que todo esto, ya que cualquiera de ellos se considera en estado crtico en cuanto la mquina deja de estar disponible. Una vez que el administrador tiene conocimiento del problema y ha activado la casilla de notificacin del host en cuestin, la luz roja se
desactiva para evitar que nos pasen desapercibidos otros problemas. La tabla de configuracin de Nagios es necesaria para definir el enlace entre los servicios y las mquinas en los que se ejecutan: La base de datos no tiene una referencia directa entre las tablas de los
Si la consulta devuelve algo, la luz roja se enciende; de otro modo, se puede comprobar el estado del servicio (nagios_servicestatus) con otra consulta similar. Un estado del servicio 2 3 debe encender la luz roja del semforo. Si un estado de servicio 1 devuelve una coincidencia, la luz debe pasar a amarillo. Est claro que consultar servicios problemti-
WWW.LINUX- MAGAZINE.ES
Nmero 41
35
56
29 30
31 32
33
35
36
72 done
36
Nmero 41
WWW.LINUX- MAGAZINE.ES
estados de los servicios y las mquinas en que se ejecutan (Figura 3 [2]). La consulta completa para los estados crticos se muestra en el Listado 1. La estructura de los archivos de configuracin, registro y estado ofrece un diseo de las tablas que hay en esta base de datos simple. Podra resultarnos conveniente, si no fuera porque hace que las consultas sean ms complejas. Es mejor disear la base de datos conforme a las prcticas recomendadas y comnmente aceptadas.
Componentes
Todos los componentes necesarios se pueden encontrar en casi cualquier proveedor de material electrnico. Para la fabricacin de un semforo, o baliza de sealizacin si se prefiere, necesitamos componentes que permitan a un programa, ejecutndose en la mquina, encender y apagar sus luces. Para implementarlo, podemos usar la interfaz RS-232. Nosotros adquirimos los componentes de nuestro semforo en Conrad Electronic [3]. Las luces usan elementos de iluminacin de 24 voltios. El artculo 96772062 del catlogo de Conrad es un rel que la mquina puede controlar a travs del puerto serie RS-232. Por desgracia, el mdulo soporta un mximo de 15 voltios, por lo que necesitamos dos fuentes de alimentacin: una de 12 y otra de 24 voltios. El resto de los componentes, como los de iluminacin, los de conexin, la carcasa para el ensamblaje (Euro PCB), y un cable serie, nos salieron por unos 200 euros.
Figura 4: El mdulo de control, que se enlaza con el ordenador a travs de un cable RS-232, utiliza tres rels para cambiar las luces del semforo. La unidad de control y el semforo disponen de alimentadores de corriente diferentes.
nuevo dispositivo es detectado cada vez que conectamos el adaptador. Para asegurarnos de que las comunicaciones con el rel funcionan correctamente, tenemos que configurar los parmetros de la interfaz (por ejemplo, la velocidad de transmisin) al llamar a stty:
stty -F /dev/ttyUSB0 19200U min 0 -icanon -ixon brkintU imaxbel
Salida Simple
La mayora de las conexiones elctricas son de tipo roscado, por lo que slo hay que usar el soldador con los conectores macho y hembra de la fuente de alimentacin. As que no hay que ser un cientfico nuclear para montar el hardware. La Figura 4 muestra el diagrama del cableado. Si no disponemos de una conexin serie tpica, nos bastar con colocar un convertidor de USB a serie. El kernel de Linux puede detectar el convertidor automticamente, probablemente con un chip PL2303, y configurarlo como /dev/ttyUSB0. El
Cada comando para el rel consta de 4 bytes. El primer byte establece el tipo de comando (get, set, ?), mientras que el segundo establece la direccin del mdulo. Debido a que slo tenemos un mdulo, ste siempre va a ser 1. La mquina pasa los datos en el tercer byte, correspondindose cada bit a un solo rel. El cuarto byte es un simple XOR de los primeros 3 bytes, a fin de proporcionar un checksum:
echo -enU ,\0001\0001\0000\0000>U /dev/ttyUSB0 echo -en ,\0003\0001\0001\0003U >/dev/ttyUSB0
(lneas 4 y 5) antes de leer la tabla status de la base de datos en un bucle infinito (que comienza en la lnea 8), que evala para controlar las luces del semforo. El usuario nagios puede acceder a la base de datos nagios del host db_host sin contrasea. La primera consulta a la base de datos, en las lneas 11 a la 14, determina qu hosts presentan estado crtico. Slo nos interesan los nmeros, razn por la cual la lnea 15 termina con wc -l, guardando en la variable RESULT el nmero de lneas resultante. Si el valor es mayor que 0, la lnea 18 enciende la luz del semforo. Las siguientes dos consultas identifican los servicios crticos; ocurre en las lneas 33 a la 54: Si el estado es mayor que 1, se enciende la luz roja (lnea 39), mientras que la luz amarilla se activa con un estado igual a 1 (lnea 60). Finalmente, la lnea 67 cambia la luz de nuevo a verde si est todo bien (LAMP=0). Slo resta esperar que nuestra red nunca necesite las luces roja y amarilla. Y que nuestra amiga, la luz verde, sea lo primero que veamos I cada da al entrar en la oficina.
El primer comando inicia el ensamblaje, mientras que el segundo enciende el primer rel. La sintaxis se describe en el manual del montaje.
RECURSOS
[1] Nagios: http://www.nagios.org [2] Documentacin de NDOutils: http:// nagios.sourceforge.net/docs/ ndoutils/NDOUtils_DB_Model.pdf [3] Electrnica Conrad: conrad.com/
Monitorizacin
El programa del Listado 2 inicializa la interfaz y el mdulo de rel
http://www.
WWW.LINUX- MAGAZINE.ES
Nmero 41
37