martes, 5 de mayo de 2009

Nagios, monitorizando los miembros de un cluster

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;


jueves, 26 de marzo de 2009

Squid alta disponibilidad, LVS + Heartbeat

En un post anterior hable de como tener un servicio de Proxy en alta disponibilidad en un cluster de tres elementos con Heartbeat, esta configuración nos permite tener estrictamente un servicio en alta disponibilidad, pero tiene un par de pegas importantes; es un esquema activo-pasivo-pasivo, por lo que dos máquinas están en el banquillo a la espera de que el Heartbeat les llame a jugar, y por lo que tampoco estamos usando la capacidad de respuesta de las tres tarjetas de red des esos servidores, tenemos tolerancia a fallos pero no optimizamos el uso de recursos. Esto es lo que voy a mejorar con esta configuración de cluster activo-activo-activo mediante LVS y Heartbeat.

Este cluster lo instalaremos en el segmento DMZi detrás de la seguridad perimetral, la única regla que daremos de alta será la conexión al puerto 3128 en la ip virtual de nuestro cluster 172.95.69.100

El sistema operativo que usaremos será Debian 5.0 partiendo de la instalación por red, instalamos el sistema base sin seleccionar nada en tasksel, una vez finalizada sera necesario que se vean los servidores entre si, por lo que haremos las oportunas entradas en el fichero /etc/network/interfaces con una particularidad, la de añadir una dirección de loopback virtual;


M30:~# cat /etc/network/interfaces

auto lo

iface lo inet loopback


auto lo:0

iface lo:0 inet static

address 172.95.69.100

netmask 255.255.255.255

network 172.95.69.0

broadcast 172.95.69.255


# The primary network interface

auto eth0

iface eth0 inet static

address 172.95.69.30

netmask 255.255.255.0

network 172.95.69.0

broadcast 172.95.69.255

gateway 172.95.69.1

# dns-* options are implemented by the resolvconf package, if installed

dns-nameservers 80.58.0.33


M30:~# cat /etc/hosts

127.0.0.1 localhost

127.0.1.1 M30

172.95.69.40 M40

172.95.69.50 M50

M40:~# cat /etc/network/interfaces

auto lo

iface lo inet loopback


auto lo:0

iface lo:0 inet static

address 172.95.69.100

netmask 255.255.255.255

network 172.95.69.0

broadcast 172.95.69.255


# The primary network interface

auto eth0

iface eth0 inet static

address 172.95.69.40

netmask 255.255.255.0

network 172.95.69.0

broadcast 172.95.69.255

gateway 172.95.69.1

# dns-* options are implemented by the resolvconf package, if installed

dns-nameservers 80.58.0.33


M40:~# cat /etc/hosts

127.0.0.1 localhost

127.0.1.1 M40

172.95.69.30 M30

172.95.69.50 M50



M50:~# cat /etc/network/interfaces

auto lo

iface lo inet loopback

auto lo:0

iface lo:0 inet static

address 172.95.69.100

netmask 255.255.255.255

network 172.95.69.0

broadcast 172.95.69.255


# The primary network interface

auto eth0

iface eth0 inet static

address 172.95.69.50

netmask 255.255.255.0

network 172.95.69.0

broadcast 172.95.69.255

gateway 172.95.69.1

# dns-* options are implemented by the resolvconf package, if installed

dns-nameservers 80.58.0.33


M50:~# cat /etc/hosts

127.0.0.1 localhost

127.0.1.1 M50

172.95.69.30 M30

172.95.69.40 M40


Instalamos los paquetes de heartbeat, ipvsadm y sus dependencias en las tres máquinas;

#aptitude install heartbeat ipvsadm ldirectord


Con ipvsadm, si no nos lo pide el debconf durante la instalación tendremos que reconfigurarlo usando el siguiente comando, configurando que arranque las reglas en el arranque y seleccionando both en la siguiente pregunta para que el equipo pueda actuar tanto como master y como backup.

# dpkg-reconfigure ipvsadm


Instalamos squid y realizamos las configuraciones necesarias para que el

servicio este disponible a los clientes;

#aptitude install squid


Lo que vamos a configurar es un cluster de tres miembros, en los que cada uno ofrezca servicio de proxy (squid), y a demás vamos a crear dos servicios en alta disponibilidad;

  • Ipvsadm va controlar un IP virtual 172.95.69.100.

  • ldirectord va a controlar la existencia de un servicio de proxy en los servidores reales consultando la disponibilidad del puerto 3128, y a redirigir desde esta IP virtual el tráfico en el puerto 3128 a los servidores reales mediante una distribución de carga uniforme con el algoritmo Round Robin.

Configuramos el kernel de los servidores para que soporte la retrasmision de paquetes, editando el fichero

M30:~# vim /etc/sysctl.conf


Y descomentamos la linea siguiente;

# Uncomment the next line to enable packet forwarding for IPv4

net.ipv4.ip_forward = 1


Aplicamos los cambios en las tres máquinas con el comando;

M30:~# sysctl -p

net.ipv4.ip_forward = 1

¿Que es todo esto? Pues es tener un cluster en el que los tres miembros están activos, por que comparten una IP virtual y un servicio de director que reparte la carga de peticiones de clientes al puerto 3128 homogéneamente entre todos los miembros, en cristiano es tener tres proxys que se ven como uno solo, y que a demás ofrecen el servicio en alta disponibilidad por que si uno de ellos cae el servicio sigue funcionando.

Empezamos por la configuración del ldirectord, editamos el fichero en las tres máquinas para definir el funcionamiento;

M30:~# vim /etc/ha.d/ldirectord.cf


# /etc/ha.d/ldirectord.cf

checktimeout=3

checkinterval=5

autoreload=yes

logfile="/var/log/ldirectord.log"

emailalert = "email@gmail.com"

virtual=172.95.69.100:3128

fallback=127.0.0.1:3128

real=172.95.69.30:3128 gate 1

real=172.95.69.40:3128 gate 1

real=172.95.69.50:3128 gate 1

protocol = tcp

checktype = connect

scheduler = rr

persistent = 20


En este fichero se definen los parámetros de funcionamiento del demonio que va a dirigir el servicio de proxy entre los servidores reales, se puede configurar también un mail para el envío de alertas, se define la IP y el puerto de nuestro servicio virtual y las IP y puertos de los servidores reales. Los siguientes parámetros definen el tipo de chequeo que va a realizar el demonio para comprobar que los servidores reales están vivos, que es en este caso una prueba de conexión TCP, el scheduler es el tipo de reparto de carga que se va a usar, en este caso Round Robin.

Inicializamos los demonios en las tres máquinas;

M30:~# /etc/init.d/ldirectord start


Podemos comprobar que esta funcionando con el siguiente comando, en el que podemos ver los miembros que comprarten la IP virtual y el weight es igual 1,lo que quiere decir que ldorector ha comprobado que esas máquinas tienen conectividad en el puerto 3128.

M30:~# ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port Forward Weight ActiveConn InActConn

TCP 172.95.69.100:3128 rr persistent 20

-> 172.95.69.50:3128 Route 1 0 1

-> 172.95.69.40:3128 Route 1 0 0

-> 172.95.69.30:3128 Local 1 0 0


Para configurar los servicios en alta disponibilidad con heartbeat, lo más sencillo es instalar la utilidad gráfica;


asier@asier-desktop:~$ aptitude install hb_gui


Lo primero que tenemos que hacer para conectarnos es ponerle una password al usuario hacluster;

M30:~# passwd hacluster


Y conectarnos a través de la aplicación, donde deberíamos ver ya los tres miembros de nuestro cluster vivos y en verde, hay que crear un grupo para nuestros servicios, lo he llamado load_balancer y hay que crearlo con los atributos target_role started, ordered true y collocated true.

Una vez creado el grupo hay que crear los dos servicios la ip virtual y el director, añadimos un recurso nativo “ipaddr2” dentro de nuestro grupo load_balancer con las siguientes parámetros; ip 172.95.69.100, lvs_support true.

Creamos otro recurso nativo dentro también del grupo load_balancer ldirector con los siguientes parámetros; config_file /etc/ha.d/ldirectord.cf

Si reiniciamos los servicios en las tres máquinas el resultado debería de ser el siguiente; tres nodos activos (running), uno de ellos como dc (domain controller), en uno de los nodos heartbeat arrancara los servicios de ldirector y ipaddr2, con esto estarían terminadas las configuraciones, ahora vamos a ver que pasa...


  • Desde un cliente se debería de poder hacer ping a nuestra ip virtual.

  • Si hacemos un nmap a la IP virtual deberíamos de ver el puerto 3128 abierto.

  • Si hacemos ssh a la ip virtual para conectarnos deberíamos conectarnos a cualquiera de las tres máquinas.

  • Si configuramos el proxy en un cliente, por supuesto, deberíamos navegar por que sino menudo manual de mierda, pero lo interesante es que nos debería de servir internet el squid de uno de los equipos del cluster, podemos comprobar cual haciendo; M30:~# tail -f /var/log/squid/access.log y viendo en cual de las tres máquinas nuestra actividad.


Pero lo más interesante viene ahora, si conectamos un segundo cliente podremos observar como el servicio de ldirectord le asigna esta conexión a otra de las máquinas, y si conectamos otro cliente, asignará la conexión a otra y así sucesivamente, por lo que comprobamos que ldirectod mediante el algoritmo de Round Robin reparte uniformemente la carga entre todos los miembros.


!Y aún hay algo aún mejor! ¿Que pasa si tiramos del cable de una de las máquinas?


  • Si tiramos de una de las que no es ni dc ni tiene los servicios corriendo, el ldirector detectará en 20 segundos que el servicio de proxy en ese miembro no esta disponible y dejara de repartirle trabajo.

  • Si tiramos la maquina que es dc, pasará lo de arriba y a demás heartbeat acordará a alguno de los otros miembros como nuevo dc.

  • Y lo mejor, que pasa si tiramos la máquina que tiene corriendo los servicios? Que el servicio de proxy se caerá hasta que heartbeat detecte que el cluster se ha degradado y una de los dos nodos restantes se anime a volver a ejecutar los servicios y restablecer asi todo.


Genial, no es verdad?

martes, 17 de marzo de 2009

RDS - TMC unos desconocidos muy útiles


Cualquier persona que viva en Madrid o en cualquier gran ciudad sabe que el tráfico es un problema , todo el mundo trabaja en la otra punta de la ciudad de donde vive y caravanas infinitas de coches destrozan los nervios a miles de personas todas las mañanas, averías, accidentes, obras.... Los coches son reductos de tecnología obsoleta, es casi la única parcela de nuestras vidas donde no han entrado el software, por eso creo que el sistema RDS - TMC aunque rudimentario es una ayuda al conductor.

El verano pasado, cuando compré mi GPS, un Mio c520 vi que como accesorio existía un soporte que habilitaba en el dispositivo la recepción de información TMC, aunque el accesorio costaba casi 100€ (sin gastos de envío) y esto me quitó todas las ganas innatas en mí de experimentar. Pero ahora como todo hay modelos nuevos, con accesorios nuevos y lo viejo tiene que desaparecer de los almacenes, así que lo he podido comprar por 20€ (35€ con gastos de envío).

El software del GPS cuando se conecta a la base habilita las opciones de TMC, en el mismo icono donde se puede ver la cobertura de la señal GPS se puede ver como el sistema sintoniza emisoras buscando información RDS - TMC , en España es RNE la que difunde esta señal y sorprendentemente la información es exactamente la misma que la que se puede ver en la pagina de la DGT sobre el estado de las carreteras, estoy deseando usarlo en el día a día para ver como funciona.


sábado, 14 de marzo de 2009

La tecnología en el mundo real

Seguramente
a ti, que lees mi blog te pasará algo parecido a lo que vengo experimentando últimamente con demasiada frecuencia, es como una sensación de espera infinita, de eterna expectativa. Desde que salió al mercado el iPhone hasta que los Españoles pudimos comprarlo (legalmente) la espera fue de más de un año, desde que salió el netbook de Asus hasta que lo pudimos comprarlo (con teclado en Español) pasaron un montón de meses, ahora que Palm ha presentado la Pre con su nuevo S.O. WebOS se inicia una nueva espera que por ahora no tiene fecha de finalización.

Pero el hecho es que en cada momento de espera yo sabido perfectamente las características de estos nuevos productos, vídeos demostración, unboxing, reviews, experiencias de bloggers... esto te pone en una tesitura extraña si tienes que elegir alguno de estos productos, lo que tienes es viejo, y lo que viene no lo tienes.

Recientemente en la empresa en la que trabajo se ha implantado un nuevo servicio de correo electrónico con Zimbra (los motivos de la elección de este sistema darían para otro post...), hasta ahora y casi por inercia del mercado profesional la dirección de la empresa utiliza Blackberrys de Telefónica en su modalidad “profesional” para tener correo en movilidad. Esta opción no puede funcionar peor, el acceso a las cuentas desde las BB se realiza leyendo el buzón de cada usuario por POP3, por lo que si previamente te has descargado el correo en el escritorio esos mensajes ya nos los veras en la BB, lo que es otro desastre, y a demás, todo el correo que leas en la BB aparecerá como correo no leído en el escritorio, lo que es otro desastre al que le podemos sumar correos que se duplican, que se bloquean y entran mil veces...

El resultado de todo esto es que al final, el usuario, tiene una sensación desoladora, por un lado la tecnología que ya tiene en sus manos no la entiende, y por otro lado se ve en la obligación de hacer esfuerzos por adaptarse a lo inevitable, lo nuevo. En este clima intentar inducir cambios asusta al más pintado; al usuario por que impacta directamente en su productividad, al responsable de tecnología por que la inversión puede acabar en un cajón y al comercial supongo que también le dejara frío cuando vea el resultado de lo que vende.

Por eso hay que entender la tecnología en su contexto, no todo el mundo es como yo, o como tú, que no te conformas con lo que hay por que ya sabes exactamente lo que esta por venir, a veces hay que simplificar, bajar al mundo real y ver que es lo que es necesario, que es lo que espera el usuario, y eso es lo que estoy intentando, encontrar un terminar compatible con Active Sync para tener correo y PIM en movilidad con el nuevo servidor Zimbra.

Tengo que elegir de entre todo el “inmenso” catálogo de terminales que ofrece Telefónica entre tres;

Nokia E71







http://www.nokia.es/link?cid=PLAIN_TEXT_1056685

HTC Touch HD







http://www.htc.com/www/product/touchhd/overview.html

HP Ipaq data meseenger







http://h10010.www1.hp.com/wwpc/es/es/sm/WF05a/215348-215348-64929-3352590-3352590-3806501.html

Cual no acabaría en un cajón? Yo personalmente preferiría un iPhone o la Palm Pre, que tampoco estaría nada mal el HTC Magic... pero esto es lo que hay, yo ya se que el que más me gusta a mí es el HTC por que es táctil, que a mi jefe le va a gustar el HP por que le gusta escribir cómodo, y que a la direccion le va a gustar el Nokia por que es como cualquier teléfono de toda la vida y tiene teclado como las actuales Blackberrys.

miércoles, 11 de marzo de 2009

Galileoscope


Este 2009 es el año de la astronomía,la ciencia que se ocupa del estudio de los cuerpos celestiales, a que mola... ¿Quien no se acuerda de la primera vez que miró a través de un telescopio? pues para celebrarlo se han juntado astronomos, ingenieros de ópticas y científicos,para diseñar un telescopio low-cost de alta calidad con el fin de contribuir a la divulgación de la astronomía, el telescopio cuesta 15$, a madrid con gastos de envío 29 €.

http://www.galileoscope.org

lunes, 2 de febrero de 2009

Netbook

El año pasado
finalizó con los netbook's en el centro de atención del usuario de informática, un mercado que esta cambiando, lo que hasta ahora parecía que más se valoraba, los clásicos "Herzios" del procesador, los "Megas" de RAM o los "Gigas" de disco duro están empezando a tornar en ¿y con este ordenador me puedo conectar al messenger? y ¿se pueden ver videos de Youtube?, ¿puedo ver mi Facebook?, si conecto mi cámara de fotos ¿puedo guardar mis fotos en flickr? y si enchufo mi iPod ¿Puedo pasar mi música? ¿y los podcast? ha! y otra cosa ¿esto tiene Skype? por que yo hablo con un amigo ...


Todas esas cosas las hacen la mayoría de los netbooks, y no son necesarios ni muchos herzios, ni una ingente cantidad de RAM, ni grandes pantallas, ni gigas de almacenamiento, la informática del cuanto más mejor ha pasado a la historia.

Todos los fabricantes tienen un netbook en el mercado, desde Asus que inaguró el "Market Share" hasta recientemente Sony con uno a su estilo, con el que deja claro que no esta en su mejor momento, pero HP, hacer, MSI, todos tienen algún modelo, y casi todos muy similares; pantallas de menos de 8,9” Intel Atom como procesador y WiFi.

Pero lo más interesante para mi no es el cambio de orientación en cuanto a las tripas, sino algo que sorprende aun más, y es que a estas alturas de la película los netbooks ponen la linea de salida a la misma altura a los sistemas operativos de Microsoft y a el lado luminoso de la fuerza, los S.O. Linux, incluso Intel acaba de anunciar que trabaja en un sistema operativo basado en Linux para que aproveche la potencia y el rendimiento de los Atom.


Es este campo hay proyectos tan espectaculares como el de Jolicloud, un S.O. en desarrollo del que tan solo una captura de pantalla ha sido suficiente para que me ponga a escribir...



domingo, 11 de enero de 2009

Palm Pre, planear algo es genial


Se ha destapado algo en el CES, algo que no estaba el guión, y es la resurrección de Palm Inc, a la que todo el mundo había dado por muerta y enterrada.


Palm fue la culpable de iniciar este mercado del PIM, (Personal Information Managment) o agendas electrónicas, del que todo el mundo forma parte ahora en mayor o menor medida.

los dispositivos personales de bolsillo o PDA (Personal Digital Assistant), fueron los primeros, tenían una pantalla LCD en escala de grises y las características clásicas de las agendas, gestión de contactos, calendario, tareas, notas ... y todo en dispositivos de no mas de 8 ó 16Mb, que incluso podían hacer algo que en su momento era increíble, conectarlas al ordenador por puerto serie y sincronizar el Outlook.

Esto fue lo primero que fagocitó los teléfonos, seguido claro esta de; cámaras de fotos, GPS, dispositivos de juego móviles y últimamente internet de alta velocidad, correo, servicios Push... dando como resultado lo que denominamos Smart Phones.

Palm tenia una cuota de mercado impresionante, había creado el mercado y lo dominaba, incluso con la aparición de Windows Mobile parecía que Palm había respondido a todas las necesidades y que nada podía hacerle bajar del cajón.

Pero a pesar de todo Palm se fue hundiendo por diversos motivos, no evolucionó el hardware, ni se metió mucho el las funciones multimedia, cuando se dividió en dos empresas una para el desarrollo de software y otra para el hardware, y empezó a incluir Windows Mobile en algunos de sus dispositivos todo el mundo la dio por perdida, sin nada ya que enseñarnos, muerta.

Al parecer, todos estábamos equivocados, estaba "planeando" observando el mercado, viendo pasar smartphones de HP, Nokia, Asus, Sony Ericson... el iPhone, Blackberry, Android... y lo ha hecho bien, o por lo menos eso creo yo después de ver las características de su nuevo sistema operativo webOS y el primer dispositivo que lo trae incluido el Palm Pre.

La experiencia del usuario lo es todo, Apple vende teléfonos por que el iPhone es un dispositivo que deja a cualquier usuario totalmente seducido, una experiencia de uso agradable, sencilla y que cuida al máximo todos los aspectos de manejabilidad, la Palm Pre que yo sepa es el primer dispositivo que no trae un cargador sino una superficie de carga que con tan solo dejar el dispositivo sobre la superficie inicia la carga de la batería, incluye interface táctil multi-touch y el acceso a aplicaciones nos aseguran que es sorprendentemente simple mendiante el uso de "escenas" por las que nos podemos mover con un simple gesto, "Synergy" es una de las nuevas aplicaciones estrella, promete integrar todas nuestras actividades de una forma lógica, contactos desde multiples origenes, redes sociales, por ejemplo con Synergy podemos ver los datos de un contacto y todas las interacciones con él, en chats, mails e incluso en fecebook, tambien puedes ver si esa persona esta activa en alguno de los médios, promete ser muy interesante.

Eperemos que en su "plan" no nos sorprendan con modelos cerrados de comercialización o con plataformas software cerradas, o con versiones home, professional...