Para mantener su infraestructura bajo control, una de las herramientas más importantes es el monitoreo. Necesita saber cuál es el estado de sus servidores, servicios y aplicaciones.
Hay varios desafíos para esto. Hay algunas soluciones muy interesantes, como las propuestas de Netdata o NewRelic. Quería probar otra herramienta que vi recientemente en acción: Elastic Stack (conocida como ELK). Esta pila tiene varias capas y tiene un poderoso motor de búsqueda en su núcleo: ElasticSearch.
Tenemos en el fondo, los beats. La documentación oficial los describe como Lightweight data Shippers. Son aplicaciones cliente que viven en nuestros servidores y que envían datos periódicamente a Elasticsearch. Tenemos beats para medir métricas, extraer registros, verificar la disponibilidad de sitios web, etc.
En la siguiente capa, el corazón de la pila: el motor de búsqueda. Todos los datos entran allí y se indexan, para su posterior consumo. Cada latido obtiene su índice. Puede agregar o explorar datos de manera fácil y rápida porque puede utilizar toda la potencia del motor de búsqueda.
En la capa externa, la más cercana al usuario, puede encontrar Kibana. Esta es una herramienta de visualización. El sitio oficial lo describe como su ventana hacia la pila. Aquí, puede tener varios gráficos, paneles e información de interés. Además, puede filtrarlo como desee utilizando el motor de búsqueda subyacente.
¿Qué es lo mejor de todo esto? Toda la pila es de código abierto. Puede descargarlo e instalarlo. Puede configurar todo el sistema por su cuenta e integrarlo en su infraestructura. Hay algunos bits pagados (alertas, por ejemplo), pero los bits más esenciales están ahí.
También puede tener la oferta SaaS: ElasticCloud. Proporcionan una prueba de 14 días y una interfaz simple para configurar sus clústeres. No tiene mucha flexibilidad durante la prueba, pero una vez que pasa a una versión paga, puede jugar con su infraestructura con solo mover algunas diapositivas. Están alojados en Amazon o Google Cloud, por lo que las instancias son bastante confiables.
Ahora, en la implementación. instalé filebeat y metricbeat. Estos beats me permiten tener mucha información sobre mi infraestructura.
Filebeat extrae los registros de los módulos habilitados (sistema, nginx, etc.) y los envía a ElasticSearch. Kibana se alimenta, en tiempo real, de todos los registros de toda la infraestructura y extrae información relevante de allí. Kibana también tiene algunos paneles que muestran detalles importantes como la frecuencia con la que los usuarios intentan usar sudo o qué nombres de usuario se utilizan para intentar iniciar sesión en el servidor.
Metricbeat envía métricas a elasticsearch. Esas métricas son las más utilizadas: CPU, memoria, disco, etc. Algunas otras métricas se pueden habilitar y configurar. Con estos datos en kibana, puede tener toda su infraestructura en la misma pantalla, de un vistazo. Si un servidor supera algunos límites para una métrica determinada, se resaltará.
Obviamente, puede verificar los detalles de cada host, los valores históricos y actualizarlos en tiempo real.
Hay muchos más beats y módulos que puede integrar en la pila, y es fácil automatizar la integración de los beats en sus servidores.
Dele una oportunidad. ¡Es muy flexible y fácil de configurar!