Hoy en día, contar con observabilidad, o lo que es lo mismo, con la capacidad de comprender qué está ocurriendo dentro de un sistema de software complejo, se ha convertido en un elemento imprescindible de cara a ofrecer la mejor experiencia al usuario.
Arquitecturas cada vez más complejas, basadas en microservicios, tecnologías cloud, contenedores Docker, Kubernetes, entre otras, provocan que sea imprescindible contar con un sistema centralizado y automatizado que sencillamente nos diga qué está funcionando mal y por qué motivo. De este modo aumentaremos nuestra capacidad de reacción y evitaremos en todo caso que la información del estado de nuestro sistema provenga del cliente final.
En este curso veremos el stack basado en Grafana, comenzando con Prometheus, que de la mano de Kubernetes se ha convertido en un estándar de facto para la recogida y centralización de métricas, tanto de aplicación como de rendimiento o consumo de recursos hardware. También veremos Grafana Loki, que en los últimos años ha ido ganando terreno como alternativa más ligera a Elasticsearch en cuanto a la gestión centralizada de logs se refiere.
Objetivo
El objetivo del curso es conseguir inculcar a los alumnos la importancia de la monitorización de aplicaciones, así como de dotarlos de las capacidades necesarias que les permitirán en el futuro incorporar lo aprendido en el curso a sus desarrollos e infraestructuras.
Audiencia
Desarrolladores, administradores de sistemas, otros profesionales técnicos, gestores de proyectos.
Prerrequisitos
Conocimientos básicos de programación y administración de sistemas.
- Introducción a la telemetría
- Tipos de métricas
- Herramientas existentes en el mercado
- Uso de buenas prácticas a la hora de monitorizar aplicaciones
- Introducción a Grafana
- Instalación y configuración
- Configuración de fuentes de datos
- Generación de dashboards
- Importación y personalización de dashboards externos
- Prometheus
- Instalación y configuración
- ¿Cómo funciona Prometheus? Metrics pulling
- Tipos de métricas en prometheus
- Métricas de infraestructura: uso de exporters
- Cómo exponer métricas de nuestros contenedores Docker
- Cómo exponer métricas de diversas herramientas específicas mediante el uso de exporters: ejemplos con MySQL, PostgreSQL, Nginx, etc.
- Métricas de aplicación
- Cómo publicar métricas desde nuestro código para que Prometheus las utilice
- Ejemplos con varios lenguajes de programación: Java, PHP, NodeJS, etc.
- Ingesta de métricas con Prometheus
- Uso de Pushing frente a pulling para tareas de mantenimiento o procesos temporales.
- Uso de data store remotos con Prometheus
- Alerting con prometeus
- Uso de Alert Manager frente al sistema de alertas de Grafana
- Uso de Prometheus con Kubernetes: ejemplo práctico
- Integración de Prometheus con Grafana
- Configuración de Prometheus como data source de Grafana
- Linear graph, Gauge, Vertical Graph
- Uso de variables en Grafana
- Creación de dashboards e importación de dashboards de la comunidad.
- Grafana Loki
- Introducción a Grafana Loki
- Elastic Stack o ELK vs Grafana + Loki
- Arquitectura de Loki
- Instalación de configuración
- Envío de logs a Loki
- HTTP
- Promtail
- Conectando herramientas existentes: Logstash
- Uso de un data store externo
- Lenguaje de consultas LogQL
- Log queries
- Log pipelines
- Generación de métricas en base a los logs
- Integración de Loki en Grafana
- Visualización de los logs en Grafana
- Configuración de dashboards
- Importación de dashboards de la comunidad
- Alertas en Grafana con Loki
- Loki Ruler
- Centralización de alertas en Grafana