Monitorización ligera con Elastic Metricbeat: una visión alternativa

Desde la versión 7.0 NG 712 de Pandora FMS, gracias a la integración con Elastic, hemos mejorado drásticamente el sistema de almacenamiento y visualización de registros o logs, lo que nos permite aumentar el crecimiento y la velocidad en la presentación de la información. Pero esperad, aún hay más que presentaros antes de pasar a describiros la Monitorización Ligera…

Monitorización Ligera versus Monitorización

Con Pandora FMS tendréis no una simple Monitorización sino más bien una Monitorización Robusta; trabajamos incansablemente con la vista puesta en vigilar miles de dispositivos, de manera masiva. Sin embargo, la flexibilidad forma parte de nuestro nombre. Por ello, aunado a lo mejorado en la versión 712, en la versión 7.0 NG 717 añadimos un nuevo componente: el SyslogServer.

De esta manera, Pandora FMS recopila toda la información unificada para entregarla a un servidor Logstash/ElasticSearch, previamente configurado para de esta manera tener una poderosa herramienta de búsqueda y presentación. A nivel gráfico los resultados son impresionantes y siempre tendremos todo centralizado en la consola de Pandora FMS.

Interacciones de Pandora FMS, LogStash y ElasticSearch

ElasticSearch está programado en lenguaje Java y se sirve de Apache Lucene para “tragar” todo tipo de información que le suministremos; es como una caldera que “quema y produce resultados”, sin importar el tipo de “combustible” que utilicemos. Nos atrevemos a decir que es de propósito múltiple; para nosotros en particular, quien lleva la batuta es y será siempre Pandora FMS, como “fogonero”.

Hablemos, ahora sí, de Monitorización Ligera

La Monitorización Ligera es una nueva tendencia para pequeñas empresas o personas que desean o están interesadas en puntos específicos en la monitorización de aplicaciones, por ejemplo. Vayamos a algo más simple: digamos que necesitamos saber la dirección IP de un ordenador. Para ello, utilizaremos cualquiera de los populares servicios de DNS dinámicos. ¿Estaremos monitorizando? Pues no, simplemente estaremos usando un servicio.
Vayamos más allá, colocando en nuestra página web un subdominio con un pequeño programa escrito en PHP y HTML, que recibirá un mensaje desde un agente software que instalaremos en la máquina a supervisar. Todo esto será guardado en una base de datos, que nos permitirá retribuir no solo la última dirección IP sino también cada cuánto tiempo cambia dicha dirección -o si se mantiene igual- en intervalos de 5 minutos; si el tiempo supera esa medida asumiremos que no tiene conexión (o algo peor), lo cual nos permitirá realizar una alarma rudimentaria, tal como enviar por correo electrónico el aviso correspondiente.
A este ejemplo lo llamaremos “Monitorización Ligera”. Las pequeñas empresas y personas frecuentemente necesitan este tipo de servicios, o unos cuantos más sin superar una docena. Conscientes somos de este sector de pequeñas y medianas empresas, a las cuales incluso les resulta más práctica una Monitorización Ligera o, un paso adelante, delegar en terceros una monitorización remota fuera de sus instalaciones.

Monitorización Ligera con Beat

Beat es el nombre clave para un conjunto de programas que entregan datos directamente a ElasticSearch y/o Logstash y que por tanto actúan como agente Software, pero en vez de ser de propósito general, como los de Pandora FMS, son de propósito específico cada uno y cada día aumentan en variedad, pues están abiertas a las contribuciones.
Al momento de escribir este artículo existían los siguientes en su página web oficial, y los describimos brevemente a cada uno:

  • Auditbeat: para llevar registro y control de los eventos del kernel Linux, así como las modificaciones a los ficheros. Es capaz de retener los mensajes que no ha enviado en caso de no haber conexión con nuestro servidor ElasticSearch. Esta característica acompaña también a los demás productos de esta lista.
  • Filebeat: a pesar de su nombre no se refiere a ficheros normales, sino a los registros o logs. Viene preparado para detectar y enviar lo relacionado con auditd, Apache, NGINX, System, MySQL y otros más, ya sea en máquinas reales o en contenedores como Docker. Tiene la opción de enviarlos, ya sea a ElasticSearch y/o Logstash, a los cuales aludimos al principio.
  • Heartbeat: para saber si están en línea por medio de ping, pero en un concepto ampliado, no solo ICMP sino también TCP, y HTTP o TLS. También puede autenticar y pasar por cualquier proxy. Sí, en sentido estricto de la definición -que todos y todas conocemos- eso no es un servicio ping, pero lo bueno del software libre es que lo podemos programar como nosotros lo necesitemos. Entrega a ElasticSearch y/o Logstash.
  • Metricbeat: del cual hablaremos en detalle.
  • Packetbeat: también trabaja con ElasticSearch y/o Logstash y se encarga de capturar el tráfico de nuestra red, determinar el protocolo utilizado y relacionar solicitudes y respuestas, para luego extraer campos tales como tiempo y estado, para agruparlos en formato adecuado antes de enviarlos. Funciona además como librería, así que nuestros programas en lenguaje Go tendrán una excelente herramienta o podremos crear nuestros propios detectores de protocolos (ya tiene integrado para detectar el tráfico de bases de datos como MySQL, PostgreSQL , MongoDB y más).
  • Winlogbeat: es análogo a Filebeat, pero aplicado única y exclusivamente a todos los eventos del sistema operativo Windows®.

Todos los Beats se valen de guiones escritos en Python 2.7.9 con virtualenv para generar archivos de configuración y documentación de los mismos.

Metricbeat

Ya en otra oportunidad hablamos sobre las métricas que realmente importan y sabemos que son variopintas. Por ello, Metricbeat se encargará de recogerlas para nosotros por medio de dos componentes: los módulos (“modules”) y los juegos de métricas (“metricsets”).

Los módulos especifican el servicio sobre el cual se va a recolectar la métrica, cómo conectar a ese servicio y cada cuánto tiempo hacer la consulta. Como cada servicio puede devolver muchos valores, Metricbeat los agrupa en un juego de métricas en formato normalizado antes de enviarlos. Aun cuando no reciba una respuesta efectiva tras varios intentos, Metricbeat siempre nos devolverá un informe indicando el fallo.

Metricbeat entregará todos los datos recogidos a nuestro servidor, el cual habremos instalado con la orden “sudo apt-get install elasticsearch logstash kibana” (en el caso de Debian y similares). Nótese que deberemos instalar también Kibana, una herramienta para graficar la información procesada, y es el equivalente a la consola de Pandora FMS.

Resumimos los tres componentes por sus ficheros de configuración:

  • “/etc/kibana/kibana.yml”: “server.host” y “elasticsearch.url”.
  • “/etc/elasticsearch/elasticsearch.yml”: “network.host”.
  • “/etc/logstash/logstash.yml”: “http.host”

Luego haremos uso de systemctl, para habilitarlos en el arranque de la máquina e iniciarlos de una vez, para instalar los nodos o dispositivos que vamos a monitorizar de manera ligera.

Para ellos ejecutamos “sudo apt-get install metricbeat” y configuramos el fichero “/etc/metricbeat/metricbeat.yml”, donde agregaremos la dirección IP del servidor, protocolo, usuario y contraseña. Muy importante iniciar el servicio con “systemctl start metricbeat.service”. A rasgos muy generales sería eso, y en este enlace podréis leer la información completa de configuración.

Seguridad en la comunicación con Metricbeats

Pandora FMS cuenta con su propio protocolo de comunicación, llamado “Tentacle”, para garantizar que todos nuestros datos e información no caigan en manos de terceros durante su transporte. Metricbeat usa protocolos normalizados como HTTPS, que ya sabemos cómo configurar por medio de ficheros en texto plano. Debemos poner atención en que las contraseñas almacenadas sean encriptadas en dichos archivos; para ello, Metricbeat ofrece la utilidad Secrets keystore:

  • “metricbeat keystore create”: inicializa el almacenamiento.
  • “metricbeat keystore add”: agregamos una contraseña a nuestra lista.
  • Para pasar directamente una contraseña almacenada en un fichero usaremos la opción anterior con la opción –stdin y el comando tubería; por ejemplo, “cat /etc/fichero.txt | metricbeat keystore add nombre_clave –stdin”.
  • El nombre_clave lo usaremos como ${nombre_clave} en los archivos de configuración, para que Metricbeat desencripte la contraseña y la envíe para comunicarse con nuestro servidor ElasticSearch y/o Logstash.

Alcance de la Monitorización Ligera

Poco más podemos decir acerca de ello, debido a la simplicidad de la misma. Sin embargo, avizoramos la entrada de más opciones de Monitorización Ligera y estaremos pendientes para traeros nuevas noticias. Mientras tanto, recuerda que si tienes que monitorizar más de 100 dispositivos puedes disfrutar de una DEMO GRATUITA de 30 días de Pandora FMS Enterprise. Consíguela aquí.

Shares