Vector: herramienta de monitorización en tiempo real de Netflix

Hace unos días Netflix liberaba la herramienta que utilizan internamente para analizar el rendimiento de sus instancias: Vector. Esta herramienta no deja de ser una aplicación web que se conecta a la API de PCP para obtener las métricas. PCP es un demonio que se instala en cada una de las instancias o servidores que se quiere monitorizar.

Continúa leyendo Vector: herramienta de monitorización en tiempo real de Netflix

Configurar NTP en Red Hat 7

Estoy empezando a montar servidores con Red Hat 7 y hay muchas cosas nuevas. Una de ellas ha sido el servicio de NTP, que deja e ser controlado por el demonio ntpd. Ahora el servicio es Chrony. Si no lo sabes es posible que estés un rato intentando configurando el ntpd y tras reiniciar el servidor lo encuentres parado.

[root@jupiter ~]# systemctl status ntp

ntpd.service - Network Time Service

Loaded: loaded (/usr/lib/systemd/system/ntpd.service; enabled)

Active: inactive (dead)

Viendo como esta definido el servicio chronyd vemos que es incompatible con el servicio ntpd. Por tanto deberemos elegir entre uno u otro:

[root@jupiter ~]# more /usr/lib/systemd/system/chronyd.service [Unit] Description=NTP client/server After=ntpdate.service sntp.service ntpd.service Conflicts=ntpd.service

[Service]
Type=forking
EnvironmentFile=-/etc/sysconfig/chronyd
ExecStart=/usr/sbin/chronyd -u chrony $OPTIONS
ExecStartPost=/usr/libexec/chrony-helper add-dhclient-servers

[Install]
WantedBy=multi-user.target

Tras reiniciar el servidor este servicio arranca al estar habilitado y no tener incompatibilidades con otros servicios :

[root@jupiter ~]# systemctl status chronyd
chronyd.service - NTP client/server
Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled)
Active: active (running) since jue 2015-04-23 14:29:00 CEST; 1min 52s ago
Process: 2257 ExecStartPost=/usr/libexec/chrony-helper add-dhclient-servers (code=exited, status=0/SUCCESS)
Process: 2250 ExecStart=/usr/sbin/chronyd -u chrony $OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 2254 (chronyd)
CGroup: /system.slice/chronyd.service
└─2254 /usr/sbin/chronyd -u chrony

El fichero de configuración es el siguiente:

[root@jupiter ~]# more /etc/chrony.conf
# These servers were defined in the installation:
server 0.rhel.pool.ntp.org iburst
server 1.rhel.pool.ntp.org iburst
server 2.rhel.pool.ntp.org iburst
server 3.rhel.pool.ntp.org iburst

stratumweight 0

# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/drift

# Enable kernel RTC synchronization.
rtcsync

# In first three updates step the system clock instead of slew
# if the adjustment is larger than 10 seconds.
makestep 10 3

# Listen for commands only on localhost.
bindcmdaddress 127.0.0.1
bindcmdaddress ::1

keyfile /etc/chrony.keys

# Specify the key used as password for chronyc.
commandkey 1

# Generate command key if missing.
generatecommandkey

# Disable logging of client accesses.
noclientlog

# Send a message to syslog if a clock adjustment is larger than 0.5 seconds.
logchange 0.5


logdir /var/log/chrony

En la documentación de Red Hat nos recomiendan en que casos usar un demonio u otro:
– En sistemas que se reinicien a menudo o que entren en hibernación recomiendan utilizar Chronyd.
– En sistemas que estén permanentemente encendidos recomiendan utilizar Ntpd.
Según cada caso instalaremos uno u otro, pero no los dos.

Para más información:

1. Documentación oficial de Red Hat
2. http://www.certdepot.net/rhel7-set-ntp-service/

Seguimiento en tiempo real de los vuelos en aerolíneas

En los últimos días han aparecido en los medios locales noticias sobre el estreno del nuevo OCC de Air Europa. En las noticias lo más destacado parece haber sido el seguimiento en vivo y tiempo real que se hacen de los aviones, y más después de las recientes catástrofes aéreas y desapariciones.

Air Europa inaugura en Llucmajor un nuevo centro de operaciones

Dicho seguimiento se realiza con la aplicación Aircom Server de SITA y ha sido un proyecto en el que estuve involucrado desde el principio y del que me siento muy orgulloso.

Air Europa seguirá en tiempo real los 46 aviones de su flota desde su sede central

Este programa tiene múltiples funcionalidades entre las que se pueden destacar las siguientes:
– Envío de mensajes tipo TELEX a y desde los aviones. Sirve como gateway para otros sistemas de mensajería como el e-mail.
– Conexión con varías fuentes para obtener información meteorológica: vientos, tormentas, nubes volcánicas, etc.
– Información en tiempo real de las rutas de los aviones, permitiendo comparar desviaciones con los planes de vuelo.
– Al saber exactamente las rutas y tener información meteorológica se pueden optimizar las rutas permitiendo ahorros en tiempo y combustible haciendo los vuelos más eficientes.

Este sistema tiene conexión con varios sistemas de geolocalización. El ultimo que se integró es el servicio que proporciona FlightAware. Para la geolocalización, se utiliza entre otros el sistema ADS-B que se basa en la transmisión por radio de la posición de los aviones a pequeños receptores conectados a través de Internet al servicio de FlightAware. Con sistemas como estos la investigación de catástrofes como la desaparición del avión de Air Asia hubiese sido mas fácil. La instalación de estos transmisores en los aviones será obligatoria en Europa a partir de 2017 pero ya son muchos las aerolíneas que lo tienen implementado.

Los receptores los puede tener instalado cualquiera, de hecho existen proyectos para montar un receptor en una Rapsberry Pi. También se pueden solicitar en la web de FlightAware y en función de la cobertura en el punto donde se va a instalar te lo envían gratis.

Selection_059La información que se puede obtener con estos receptores es sorprendente y se reciben reportes de los aviones que están en un radio de hasta 200Km. En los acercamientos a los aeropuertos, donde hay muy buena cobertura para el sistema la precisión es muy exacta:

Selection_060Selection_061
A modo de resumen se puede decir que es una herramienta muy útil en los departamentos de operaciones de las aerolíneas y estos tipos de sistemas deberían ser obligatorios. Además me pregunto el potencial que podría llegar a tener si tuviera alguna licencia Open Source, estoy convencido que la comunidad haría auténticas maravillas.

OpenStack: esto si es cloud!

Hace unos días me preguntaron si con Linux se puede virtualizar! LOL

Básicamente lo que querían era algo tipo vSphere pero barato (gratis) y con un buen performance. En GNU/Linux básicamente tenemos dos hipervisores a elegir: KVM y XEN. EL primero parece ser el elegido por Canonical o Red Hat entre otros por la integración con el Kernel de Linux. XEN por su lado esta mas ampliamente implementado en grandes infraestructuras como las de Amazon o Rackspace. Además, existe otra opción, la del uso de contenedores de Linux (LXC). No se trata de un modelo que haga uso de un hipervisor, sino que se comparte el Kernel y los recursos entre la máquina anfitriona y los huéspedes.

Viendo todas las posibilidades que existían me puse a investigar algo mas sobre algún tipo de software que permitiera una gestión mas amigable y sin la necesidad de andar todo el tiempo desde linea de comandos. Encontré varias opciones para montar clouds privadas, pero la que mas me llamó la atención fue Openstack.

Openstack es una suite de herramientas que permiten la creación de clouds privadas, públicas e híbridas. Empezó su desarrollo como un proyecto Open Source patrocinado por Rackspace y la NASA. Al tiempo la NASA abandona su desarrollo para centrarse mas en el uso como cliente, pero Rackspace continua con él y poco a poco empieza a recibir colaboraciones de muchas empresas (algunas de ellas algo conocidas: AMD, Intel, Caonical, Suse Linux, Red Hat, Cisco, Dell, HP, IBM, NEC, Yahoo!, etc hasta mas de 150).

Como principales ventajas del uso de Openstack frente a otras soluciones creo que se podrían destacar las siguientes:

  1. Se trata de un sistema abierto, un proyecto Open Source con licencia Apache 2.0. Quizás sea uno de los proyectos Open Source con un mayor crecimiento e implicación por parte de las grandes corporaciones
  2. Cuenta con una gran comunidad. Actualmente cerca de 6700 colaboradores de 87 paises. 
  3. Existe mucha información, principalmente en la Wiki del proyecto Openstack
  4. Elimina el “Vendor Locking”. El uso de Openstack no esta ligado a ningún fabricante ni proveedor de software. Se puede utilizar con diferentes hipervisores como KVM, XEN, HyperV o vSphere.
  5. Permite la federación de nubes, algo que puede ser interesante si se quiere tener una infraestructura híbrida.
  6. Como la mayoria de los desarrollos Open Source, tiene un compromiso hacia los estándares. 
  7. Existe gente que dice que es el “Linux of the cloud”, haciendo una analogía entre lo que es actualmente Linux y lo que quiere llegar a ser Openstack.

La arquitectura de Openstack es modular, pudiendo instalar todos ellos en un único host o por separado. Esto dependerá del tamaño y el objetivo de la cloud. Para entornos de pruebas lo normal es instalarlo todo en un único nodo.

Los componentes que forman la arquitectura son:

  1. Openstack Compute: Nova. Es el cerebro de la arquitectura y la que permite el control de la nube. Se debe instalar en cada nodo que vaya a formar parte del cloud.
  2. Openstack Object Storage: Swift. Es un sistema de almacenamiento escalable y altamente redundante.
  3. Openstack Image Service: Glance. Repositorio de imagenes y snapshots. Las imagenes sirven como plantillas para la generación de nuevos servidores
  4. Openstack Identity: Keystone. Proporciona un directorio central de usuarios y actua como principal sistema de autenticación.
  5. Openstack Dashboard: Horizon. Proporciona una interfaz gráfica a los usuarios.
  6. Openstack Networking: Quantum (aka nova-network). Se encarga de la gestión de las redes y las direcciones IP que se le asignarán a las instancias.
  7. Openstack Block Storage: Cinder (aka nova-volume). Proporciona un almacenamiento a nivel de bloque persistente. Además se encarga de la creación y el agregado de dichos volúmenes a las instancias.

 En el siguiente gráfico se puede ver la relación entre ellos:

Para hacer pruebas se puede seguir la guia que han desarrollado entre varios institutos: Cloud – IES Gonzalo Nazareno o utilizar una ISO con todo instalado. Tendremos dos opciones:

  1. StackOps Community Edition : CD instalable basado en Ubuntu de la empresa española StackOps para la preparación de entornos de test.        
  2. Ubuntu Cloud Live : Imagen Live con todo ya instalado. En el desktop puedes encontrar las instrucciones para arrancar.

Se puede encontrar mucha información en internet sobre el proyecto, aunque en español escasea. Existen 2 grupos de google, uno español y otro argentino, y recientemente he creado una comunidad en Google+ (espero que empiece a tener algo de vida!):

spain-openstack-user-group@googlegroups.com
openstack-argentina@googlegroups.com
 Comunidad OpenStack en Español

En próximas entradas iré comentando mis experiencias y las configuraciones que he ido probando.

Links de interes:
Página oficial del proyecto: http://www.openstack.org/
Cuenta de twitter oficial: https://twitter.com/OpenStack
Entrada en wikipedia: http://en.wikipedia.org/wiki/OpenStack
Ubuntu cloud: http://www.ubuntu.com/cloud/private-cloud/openstack
Rackspace: http://www.rackspace.com/cloud/openstack/
Proyecto cloud en educación: http://www.gonzalonazareno.org/cloud/