Curso de ELK
Aprende ELK el framework para análisis BigData. Conoce el funcionamiento de ElasticSearch junto con LogStash y Kibana.
¿Qué es ELK? Con elastic stack podremos tener un servidor web que ofrece información útil en tiempo real de casi cualquier tipo de fuente de datos estructurada y no estructurada
Tabla de contenidos
¿Te gustaría resolver algunos de los inconvenientes que trae el trabajar con la gestión de logs?
Estos inconvenientes pueden ser por ejemplo la detección de incidencias en tiempo real, el almacenamiento de gran cantidad de información, el tiempo de respuesta y la escalabilidad de un sistema, esto puede llegar a convertirse en un verdadero problema por otra parte el tener que entrar en 40 servidores para encontrar una línea de log específica, tardar horas en buscar información determinada entre tantos ficheros, es como buscar una aguja en un pajar ¿Cierto?
Pues no te preocupes esto tiene solución por eso en este artículo te damos a conocer ELK.
Con ELK podrás buscar, analizar y visualizar los datos con mayor facilidad en tableros de información 100% personalizables, además puede manejar eficientemente gran cantidad de datos sin tener que preocuparnos gracias a su escalabilidad.
Es un conjunto de herramientas de gran potencial de código abierto que se combinan para crear una herramienta de administración de registros permitiendo la monitorización, consolidación y análisis de logs generados en múltiples servidores, estas herramientas son:ElasticSearch, Logstash y Kibana.
También pueden ser utilizadas como herramientas independientes, pero la unión de todas ellas hace una combinación perfecta para la gestión de registros como ya hemos mencionado.
ELK es un stack compuesta por tres pilares fundamentales: Elasticsearch, Logstash y Kibana. Podemos resumir diciendo que ELK:
Tenemos muchos dispositivos con logs, y dentro de nuestros servidores, por ejemplo, tenemos distintos servicios funcionando y cada servicio tiene un tipo de log distinto. Los administradores de sistemas y DevOps genéricamente, o administradores web o desarrolladores, necesitan acceder a dichos logs para comprobarlos, para lo que hay una gran dificultad, ya que los formatos varían y son difíciles de entender.
En los ejemplos del vídeo podemos ver que los logs pueden ser completamente distintos, dependiendo del servicio. Incluso hay logs que fallan o en los que faltan campos.
Cada log puede venir con un formato de tiempo distinto.
En los ejemplos vemos que en algunos logs se incluye la fecha, otros vienen con timestamp, otros con la hora al finalizar, etc.
Ejemplo:
Oct 04 12:15:21, 020289 07:23:24, 150260505
Los logs se encuentran repartidos en todos los servidores que tengamos, cada servidor puede tener un tipo de log y dentro de un servidor puede haber diferentes rutas donde encontrarlos. Un administrador de sistemas, si tiene pocos servidores que administrar, puede acceder a ellos por “ssh + grep”, pero si tiene muchos más, esta opción no es escalable.
Falta de conocimientos o que no se implementan bien las políticas. Pueden deberse a varios motivos, por ejemplo:
Las personas que tienen que acceder a un log no tienen permiso para acceder al mismo, por políticas de empresa.
Estas personas no tienen experiencia para entender una línea de log. Algunos logs que tienen mucha información incluida en campos y cuando la información es tanta, a veces es complicado saber a qué representa cada número o cadena de texto.
Desconocen dónde se encuentran los logs, cómo se actualizan, cómo se van repartiendo, si se van borrando cada día…
Lo que se consigue con ELK es coger toda esta información, procesarla y almacenarla de forma distribuida. Así se va a poder escalar en Big Data y obtener buenos rendimientos con grandes cantidades de información, y transformarla en visualizaciones, con las que poder identificar anomalías, comportamientos, eventos, picos, etc., de forma gráfica y visual, como en la diapositiva mostrada.
A modo de resumen, podemos decir que ELK lo que hace es:
Es una base de datos distribuida. Distribuye toda la información en todos los nodos, por tanto es tolerante a fallos y tiene alta disponibilidad. Al igual que distribuye la información, distribuye el procesamiento. Cuando se realiza una consulta o búsqueda y esa información se encuentra distribuida, será cada nodo el que procese dicha información y devuelva los resultados. Por tanto, podemos obtener mejores rendimientos.
Es la parte de preprocesamiento antes de guardar la información en Elasticsearch que hemos comentado, donde recogemos un input, una entrada, trabajamos los eventos y los sacamos por una salida, antes de almacenarlos en las bases de datos.
Es el más visual, dónde vamos a generar las visualizaciones sobre la información y dónde vamos a generar los dashboards.
Estos tres componentes son los pilares, pero no son los únicos módulos que tiene ELK. Alrededor de ellos tenemos otros:
Son una especie de shippers, de recolectores de información. Recogen información, ya sea de un fichero, log de datos, eventos, métricas del sistema (CPU, RAM), hacen comprobaciones de qué servicios se encuentran activos, analizan a nivel de red los paquetes, el tiempo de respuesta entre ellos…
Es un módulo de pago, que ofrece algunos plugins extra como el tema de seguridad (Security), monitorización de todos nuestros sistemas (Monitoring), alertas (Alerting), uso de grafos para ver la relación entre los distintos nodos y los distintos vértices de nuestros datos (Graph). Y desde hace poco tiempo también incluye Machine Learning, una forma de aprender no controlada, en la que la propia maquina va aprendiendo los comportamientos de red durante un tiempo, y tras este tiempo, nos avisará de todo lo que se salga de ese comportamiento aprendido.
A modo de resumen podemos ver en esta imagen, la arquitectura y la ingesta de datos en ELK:
Tenemos todas nuestras fuentes de datos, que envían información a Logstash, que al tener muchos plugins de entrada y salida, podemos introducir gran cantidad de datos. Esos datos son procesados antes de almacenarlos en la base de datos de Elasticsearch, y con Kibana se montan las visualizaciones que accedan a esa información, para poder así monitorizarlas.
También te puede interesar
Aprende ELK el framework para análisis BigData. Conoce el funcionamiento de ElasticSearch junto con LogStash y Kibana.