Monitorización con Grafana y Prometheus
Este curso trata sobre como monitorizar aplicaciones, servicios o procesos utilizando Grafana y Prometheus además presentaremos y probaremos...
Si no conoces Grafana, en este artículo te proponemos aprender más sobre esta potente herramienta, así como a dar los primeros pasos utilizando la misma.
¿Sabías que esta potente herramienta es usada desde pequeñas hasta grandes empresas como PayPal, eBay, Intel, entre otros? Así que, desde grandes hasta pequeños, ¡síguenos en este viaje!
Es una solución de código abierto que sirve para ejecutar análisis de datos, extraer métricas que dan sentido ante enormes cantidades de datos y monitorear aplicaciones y recursos hardware con la ayuda de atractivos paneles de control personalizables.
Grafana es una herramienta de interfaz de usuario centralizada en la obtención de datos a partir de consultas, como también del almacenamiento de estos y su visualización. Es completamente de código abierto, y está respaldada por una gran comunidad entusiasta y dedicada.
Esta herramienta tiene una razón de ser, puesto que su filosofía es de unificar los datos, no su base de datos, además que estos datos se puedan ver, visualizar de muchas formas, con interfaz donde cualquier puede personalizar por medio de paneles geniales, que permite flexibilidad y versatilidad para el manejo de los datos.
Las 4 razones son las siguientes:
En este punto nos centraremos en Grafana como código abierto, la que puedes usar en tus instalaciones sin costo alguno.
Podemos destacar las siguientes características:
Se conecta con todas las fuentes de datos posibles, comúnmente conocidas como bases de datos como Graphite, Prometheus, Influx DB, ElasticSearch, MySQL, PostgreSQL, y otros.
Es una solución de código abierto. Nos permite escribir complementos desde cero para su integración con varias fuentes de datos diferentes.
La herramienta nos ayuda a estudiar, analizar y monitorear datos durante un período de tiempo, técnicamente llamado análisis de series de tiempo.
Nos ayuda a rastrear el comportamiento del usuario y de la aplicación; la frecuencia de errores que aparecen en producción o en un entorno previo a producción; el tipo de errores que aparecen y los escenarios contextuales al proporcionar datos relativos.
Una gran ventaja del proyecto Grafana es que puede ser implementado localmente por organizaciones que no desean que sus datos se transmitan a un proveedor de nube por razones de seguridad y otras. Por otro lado, tener un modelo híbrido entre nube privada y pública.
En Grafana existen los paneles, donde contienen una gama de opciones de visualización, como mapas geográficos, mapas de calor, histogramas, toda la variedad de cuadros y gráficos que una empresa normalmente requiere para estudiar datos.
Un tablero contiene varios paneles individuales diferentes en la cuadrícula. Cada panel tiene diferentes funcionalidades.
Este modelo de código abierto se encarga de todos los análisis de nuestra aplicación. Podemos consultar, visualizar, configurar alertas y comprender los datos fácilmente con la ayuda de métricas.
Es posible configurar alertas, que se envían por cualquier medio de comunicación cuando éstas cumplen las condiciones o parámetros programados. Por ejemplo, si la CPU de una instancia ha sobrepasado el 70% de su capacidad, la alerta se dispara y envía inmediatamente un correo electrónico o alguna herramienta de comunicación asociada para notificar que la CPU está llegando a su capacidad máxima y que necesita supervisión.
Provee una plataforma de complementos que facilita a todos los usuarios de Grafana la creación de complementos de alta calidad. Diseñada para todos, desde usuarios avanzados que han estado usando Grafana durante años hasta personas que recién están comenzando con Grafana.
Grafana está dividido en versiones, en modelos de negocio respectivamente, donde dentro de estas, también se encuentra una Open Source (Código abierto) que siempre podrá utilizar si aplicar ningún coste, donde las demás son las siguientes:
Open Source
Este es autoadministrado, donde puede administrar el análisis, la visualización y las alertas de todos sus datos, por lo que, puede instalar, administrar y mantener en su propia instancia.
Cloud
Es un stack (pila) completamente administrada en la nube, ofrecido como un servicio. Grafana Cloud es la forma más rápida de adoptar e incluye un Backend administrado y escalable para generar métricas, registros y seguimientos.
Muy útil para aquellos que no quieren tomar la carga de alojar la solución en las instalaciones y no quieren preocuparse por administrar toda la infraestructura de implementación. Se ejecuta en clústeres de Kubernetes. El backend es compatible con Prometheus y Graphite. Por lo tanto, podemos elegir la instancia en la nube de Grafana o ambas.
Gestionado y administrado por Grafana Labs con opciones gratuitas y de pago para individuos, equipos y grandes empresas. Incluye un sólido nivel gratuito con acceso a métricas de 10.000, registros de 50GB, rastreos de 50GB, retención de datos de 2 semanas y 3 usuarios.
Enterprise
Autogestionado con funciones de nivel empresarial. La potente visualización y alerta de Grafana, mejorada con acceso a complementos de fuentes de datos empresariales y funciones de colaboración integradas.
Una opción autogestionada para organizaciones que tienen requisitos especiales en torno a la localización de datos y la privacidad.
El servicio Enterprise viene con todas las funciones de Grafana Cloud más complementos premium, fuentes de datos y soporte premium del equipo central. Recibimos SLA de respuesta, capacitaciones y mucho más.
Para profundizar sobre las ventajas de usar Grafana, nos adentraremos con 2 herramientas importantes y que hacen un excelente equipo con Grafana, se trata de Prometheus y Graphite.
Prometheus es una herramienta de monitoreo de datos de código abierto. Prometheus y Grafana es la combinación de herramientas de facto en la industria para implementar una configuración de visualización de datos. El panel de Grafana se utiliza para visualizar los datos, mientras que el backend funciona con Prometheus.
Aunque Prometheus también tiene funciones de visualización de datos y otras cosas. Pero, aun así, se prefiere Grafana para visualizar datos. Las consultas se disparan desde el tablero y los datos se obtienen de Prometheus. Actúa como un modelo de datos de código abierto perfecto para almacenar datos de series de tiempo.
Graphite es una herramienta de monitoreo. Facilita el almacenamiento y visualización de datos de series de tiempo. Idealmente, Graphite se usa como fuente de datos para el tablero de Grafana en una configuración de monitoreo de datos.
Grafana tiene un editor de consultas Graphite bastante avanzado que nos permite interactuar con los datos con la ayuda de expresiones y funciones.
Se ha seleccionado la comparación entre las tres alternativas más utilizadas, en un esfuerzo por identificar sus puntos débiles, así como sus puntos fuertes, donde usaremos los siguientes parámetros de comparación:
Grafana en términos de visualización, creación y personalización de paneles es mejor. Tiene muchas funciones, fácil de usar y muy flexible. En cambio, Prometheus es excelente, pero generalmente es difícil usar las funciones de edición de gráficos y tableros, utiliza plantillas de consola para visualización y edición del tablero, donde la curva de aprendizaje puede ser difícil al principio.
En cuanto al almacenamiento, Grafana es solo una solución de visualización, el almacenamiento de series de tiempo no forma parte de su funcionalidad principal. En cambio, la forma en que Prometheus almacena las series temporales es la mejor con diferencia. Como se mencionó anteriormente, Grafana se puede utilizar con el lenguaje de consulta de Prometheus para crear gráficos y cuadros de mando.
Grafana tiene almacenamiento y visualización, pero necesita obtener datos de sus servicios y en este caso, Grafana no tiene soporte para la recopilación de datos ni el almacenamiento de series de tiempo son parte de su funcionalidad. Prometheus si puede recopilar datos junto con el almacenamiento y la visualización.
En arquitectura y complementos de extensibilidad, Grafana si es compatible, con un gran conjunto de complementos aplicados a fuentes de datos, aplicaciones y edición de paneles. Prometheus en este caso les llama “exportadores”, lo cual permiten que las herramientas de terceros exporten sus datos a Prometheus.
Una solución de monitoreo no está completa, a menos que incluya una forma de generar alarmas cuando cualquier métrica comience a actuar de manera extraña. Ni la gestión de alarmas ni el seguimiento de eventos son parte de la funcionalidad principal de Grafana. Prometheus tiene un soporte completo para realizar seguimiento de eventos.
Compatibilidad y monitoreo en la nube. Grafana es la mejor opción, debido a que, con las opciones de monitoreo ya disponibles en la nube, solo se dedicará a hacer visualización para hacer análisis de los datos. Muchas funcionalidades de Prometheus ya están cubiertas en la nube.
El último punto a validar es el código abierto frente a una versión empresarial, la cual Grafana en este modelo de código abierto, tiene todas las funcionalidades y está listo para empresa, no hay una versión comercial específica, pero hay una solución proporcionada por Grafana y administrada por ellos. Prometheus comparte las mismas características que Grafana en cuanto a que está preparado para ser usado por empresas.
En términos de visualización, Graphite tiene buenas opciones de visualización, pero sin edición de tablero incluida en sus funciones principales. Graphite se usa en combinación con Grafana; se encarga del almacenamiento de datos, mientras que Grafana hace la visualización.
Graphite puede almacenar series de tiempo obtenidas de otras fuentes (normalmente, herramientas de monitoreo directo) y proporcionar un lenguaje de consulta para obtener los datos almacenados. Una vez más, Grafana se puede utilizar con Graphite para visualizar los datos almacenados en su back-end de almacenamiento.
Grafana no tiene soporte y tampoco hay soporte para la recopilación de datos, al menos no directamente para Graphite. Graphite obtendrá todos los datos de estas fuentes y almacenará estos datos como series de tiempo en su backend de almacenamiento.
En arquitectura y complementos de extensibilidad, Grafana si es compatible, con un gran conjunto de complementos aplicados a fuentes de datos, aplicaciones y edición de paneles. Graphite realmente no proporciona ni tiene una biblioteca de complementos.
Grafana si realiza seguimiento de eventos y alarmas. Graphite puede realizar un seguimiento de eventos, pero no puede hacer directamente la parte de alarma.
Compatibilidad y monitoreo en la nube. Grafana es la mejor opción, debido a que con las opciones de monitoreo ya disponibles en la nube, solo se dedicará a hacer visualización para hacer análisis de los datos. Muchas funcionalidades de Graphite ya están cubiertas en la nube.
El último punto a validar es el código abierto frente a una versión empresarial, tanto para Grafana como Graphite tienen todas las funciones y están listos para las empresas.
Vamos a probar Grafana, haciendo la instalación on-premises (en las instalaciones), utilizando la versión Open Source, para ello, si estamos en Ubuntu o alguna distro basada en Debian, podemos ejecutar las siguientes instrucciones de línea de comandos:
sudo apt-get install -y apt-transport-https
sudo apt-get install -y software-properties-common wget
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
Agregamos el siguiente repositorio para versiones estables:
echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
Agregamos el siguiente repositorio para versiones betas:
echo "deb https://packages.grafana.com/oss/deb beta main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
Finalmente, actualizamos el sistema operativo, así como los paquetes y dependencias. Acá es donde se escribe la instrucción de instalación de Grafana:
sudo apt-get update
sudo apt-get install grafana
Solo quedaría conocer un poco el cómo se inicia, se verifica el estado y cómo se detiene el servicio, tanto con systemd
como con init.d
:
#systemd
sudo systemctl daemon-reload
sudo systemctl start grafana-server
sudo systemctl status grafana-server
#init.d
sudo service grafana-server start
sudo service grafana-server status
Esta es la forma más sencilla de iniciar con Grafana.
Se ha presentado Grafana desde su definición hasta especificar cuáles son sus características, así como los modelos que aplica Grafana, además de hacerte conocer las ventajas respecto a otras herramientas como Prometheus y Graphite. También sobre cómo dar tus primeros pasos con Grafana. ¡Anímate a probarlo!
También te puede interesar
Este curso trata sobre como monitorizar aplicaciones, servicios o procesos utilizando Grafana y Prometheus además presentaremos y probaremos...
Te explicamos qué es Business Intelligence, qué beneficios ofrece y cómo implementarlo en una empresa, además otros importantes aspectos relacionados.