tutoriales.com

Analítica de Logs y Monitoreo con Cloud Logging y Cloud Monitoring en Google Cloud

Descubre cómo utilizar Google Cloud Logging y Cloud Monitoring para centralizar logs, crear métricas personalizadas, configurar alertas y visualizar el rendimiento de tus aplicaciones y servicios en Google Cloud. Este tutorial te guiará paso a paso para mejorar la observabilidad de tu infraestructura.

Intermedio20 min de lectura11 views
Reportar error

Google Cloud ofrece un conjunto robusto de herramientas para la observabilidad, siendo Cloud Logging y Cloud Monitoring los pilares fundamentales. Estas herramientas te permiten recopilar, almacenar, analizar y actuar sobre los datos operativos de tus aplicaciones y la infraestructura de Google Cloud. Una correcta implementación de estas soluciones es crucial para diagnosticar problemas, optimizar el rendimiento y garantizar la disponibilidad de tus servicios.

En este tutorial, exploraremos en profundidad cómo configurar y utilizar estas potentes herramientas para obtener una visibilidad completa de tus recursos en la nube.


🚀 ¿Por qué son esenciales Cloud Logging y Cloud Monitoring?

La observabilidad es la capacidad de inferir el estado interno de un sistema a partir de sus datos externos. En el contexto de la nube, esto significa poder entender qué está sucediendo dentro de tus aplicaciones y servicios. Sin una observabilidad adecuada, es extremadamente difícil identificar la causa raíz de los problemas, predecir fallos o mejorar la eficiencia.

Cloud Logging: El Corazón de tus Registros 💖

Cloud Logging es un servicio completamente gestionado que recopila registros de todas tus aplicaciones y servicios de Google Cloud, así como de tus propios agentes y servicios personalizados. Ofrece una plataforma centralizada para:

  • Ingesta de logs: Recopila logs de Compute Engine, Kubernetes Engine, Cloud Functions, App Engine y muchos otros servicios.
  • Almacenamiento: Almacena logs por un período configurable, con opciones de exportación para archivo a largo plazo.
  • Análisis: Permite buscar, filtrar y analizar logs con un lenguaje de consulta potente.
  • Exportación: Exporta logs a otros destinos como BigQuery, Cloud Storage o Pub/Sub para análisis avanzado.

Cloud Monitoring: Métricas y Alertas en Tiempo Real 📊

Cloud Monitoring proporciona visibilidad sobre el rendimiento, el tiempo de actividad y la salud general de tus aplicaciones y la infraestructura. Sus capacidades incluyen:

  • Recopilación de métricas: Recopila métricas de rendimiento, de uso y de salud de una amplia gama de servicios de Google Cloud y aplicaciones personalizadas.
  • Paneles de control (Dashboards): Crea visualizaciones personalizadas para entender el estado de tus sistemas de un vistazo.
  • Alertas: Configura alertas basadas en umbrales de métricas para notificar a los equipos cuando surgen problemas.
  • Uptime checks: Monitoriza la disponibilidad de tus endpoints web y recursos.
💡 Consejo: La combinación de Logging y Monitoring te permite no solo saber *qué* está pasando (logs) sino también *cómo* está rindiendo (métricas) tu sistema.

🛠️ Configurando Cloud Logging: Paso a Paso

1. Accediendo a Cloud Logging 🖱️

El primer paso es acceder a la consola de Google Cloud y navegar a la sección de Logging. En el menú de navegación, busca "Operations" y luego "Logging".

🔥 Importante: Asegúrate de tener los permisos adecuados (rol de `roles/logging.viewer` para ver logs, `roles/logging.writer` para escribir logs, etc.) en tu proyecto de Google Cloud.

2. Explorando el Explorador de Registros (Logs Explorer) 🔎

El Explorador de Registros es la interfaz principal para ver y consultar tus logs. Aquí puedes:

  • Filtrar por recursos: Selecciona el tipo de recurso (Compute Engine, Cloud Functions, etc.) y la instancia específica.
  • Filtrar por severidad: DEBUG, INFO, NOTICE, WARNING, ERROR, CRITICAL, ALERT, EMERGENCY.
  • Buscar texto: Introduce palabras clave para encontrar entradas de log específicas.
  • Usar el lenguaje de consulta de Logging: Este lenguaje es extremadamente potente para búsquedas avanzadas.
resource.type="gce_instance"
resource.labels.instance_id="1234567890"
severity=ERROR
"disk full"

El lenguaje de consulta permite encadenar filtros lógicos (AND, OR, NOT).

Explorador de Logs Cuadro de Consulta (Query) search "error" | where resource == "api-gateway" | sort by timestamp desc Filtro de Recursos Seleccionado: Kubernetes Cluster 01 Filtro de Severidad Niveles: Error, Warning Resultados de Logs [ERROR] 10:45:01 - Conexión perdida con DB_MAIN [WARN] 10:45:05 - Latencia alta en endpoint /auth [INFO] 10:45:12 - Usuario logueado: admin_01 [DEBUG] 10:45:15 - Cache hit para query_key_992

3. Creando Sumideros de Registros (Log Sinks) para Exportación 📤

Por defecto, Cloud Logging almacena logs por un período limitado (30 días para la mayoría de los logs). Para archivo a largo plazo, cumplimiento o análisis avanzado, puedes exportar logs a otros destinos utilizando sumideros de registros.

Los destinos comunes incluyen:

  • Cloud Storage: Para almacenamiento a largo plazo y bajo costo.
  • BigQuery: Para análisis avanzado de logs utilizando SQL.
  • Pub/Sub: Para enviar logs a otras aplicaciones o sistemas en tiempo real.

Pasos para crear un sumidero:

  1. En la navegación de Logging, selecciona "Log Router" (o "Log Sinks" en la interfaz antigua).
  2. Haz clic en "Crear sumidero".
  3. Asigna un nombre al sumidero y una descripción.
  4. Define un filtro de inclusión para especificar qué logs quieres exportar. Por ejemplo, severity=ERROR para solo exportar errores.
  5. Selecciona el destino (Cloud Storage, BigQuery o Pub/Sub).
  6. Otorga los permisos necesarios a la cuenta de servicio generada por el sumidero en el destino.
📌 Nota: Los sumideros son muy flexibles y puedes definir filtros complejos para exportar solo los logs que realmente necesitas.

📈 Configurando Cloud Monitoring: Métricas y Alertas

1. Accediendo a Cloud Monitoring 📊

Desde la consola de Google Cloud, navega a "Operations" y luego "Monitoring". Esta es la página principal de Cloud Monitoring.

2. Explorando el Explorador de Métricas (Metrics Explorer) 📉

El Explorador de Métricas te permite visualizar cualquier métrica disponible en Google Cloud. Es tu herramienta principal para analizar el rendimiento histórico y en tiempo real.

  1. Haz clic en "Metrics Explorer" en el menú de navegación.
  2. Selecciona un tipo de recurso (ej. VM Instance).
  3. Selecciona una métrica (ej. CPU utilization).
  4. Puedes aplicar filtros, agrupaciones y agregaciones para personalizar la visualización.
80% Métricas Cubiertas

3. Creando Paneles de Control Personalizados (Dashboards) ✨

Los paneles de control son esenciales para obtener una vista consolidada del estado de tus sistemas. Puedes combinar múltiples gráficos, tablas y otros widgets.

  1. En Cloud Monitoring, ve a "Dashboards" y luego "Create Dashboard".
  2. Arrastra y suelta widgets como "Line chart", "Gauge", "Scorecard".
  3. Configura cada widget seleccionando recursos, métricas y filtros. Por ejemplo, un gráfico de utilización de CPU para tus instancias de Compute Engine.
Panel de Monitoreo Uso de CPU (%) Solicitudes de Red Latencia Media 42ms ● Óptimo

4. Configurando Políticas de Alerta (Alerting Policies) 🔔

Las alertas son vitales para ser notificado proactivamente sobre posibles problemas. Puedes configurar alertas basadas en métricas, logs o uptime checks.

Pasos para crear una política de alerta basada en métricas:

  1. Ve a "Alerting" y luego "Create policy".
  2. Select a metric: Elige la métrica a monitorear (ej. gce_instance/cpu/utilization).
  3. Configure alert trigger: Define la condición. Por ejemplo, si la utilización de CPU > 80% durante 5 minutos.
  4. Configure notifications: Selecciona un canal de notificación (email, Slack, Pub/Sub, etc.). Debes tener un canal de notificación configurado previamente.
  5. Nombra tu política de alerta.

Ejemplo de Condición de Alerta:

PropiedadValor Ejemplo
------
RecursoVM Instance
MétricaCPU utilization
------
Condiciónis above
Umbral80
------
Duración5 minutes
⚠️ Advertencia: Un exceso de alertas puede llevar a la fatiga por alertas. Configura solo las alertas que sean accionables y que indiquen problemas reales.

5. Monitoreo de Disponibilidad (Uptime Checks) ✅

Los Uptime Checks te permiten verificar la disponibilidad de tus endpoints web, balanceadores de carga o instancias desde diferentes ubicaciones geográficas.

  1. En Cloud Monitoring, ve a "Uptime checks" y luego "Create Uptime Check".
  2. Define el Protocolo (HTTP, HTTPS, TCP) y el Tipo de recurso (URL, Instancia, Balanceador de Carga).
  3. Especifica la URL o el recurso a monitorear.
  4. Selecciona las regiones desde donde se realizarán las comprobaciones.
  5. Configura la Frecuencia y las Condiciones de éxito.
  6. Opcionalmente, asocia una política de alerta para ser notificado si la comprobación falla.

🧠 Métricas Basadas en Registros (Logs-based Metrics)

Las Métricas Basadas en Registros son una característica extremadamente poderosa que te permite transformar tus datos de logs en métricas numéricas que luego puedes monitorear y alertar con Cloud Monitoring.

¿Cuándo usar Métricas Basadas en Registros? 🤔

Úsalas cuando quieras contar ocurrencias de eventos específicos en tus logs o extraer valores numéricos de ellos. Por ejemplo:

  • Contar el número de errores HTTP 500 en tus logs de App Engine.
  • Contar cuántas veces un usuario intenta iniciar sesión con credenciales incorrectas.
  • Extraer el tiempo de respuesta de una operación específica registrado en tus logs.

Creando una Métrica Basada en Registros 📝

  1. En Cloud Logging, ve a "Log-based Metrics".
  2. Haz clic en "Create Metric".
  3. Metric type:
    • Counter: Para contar el número de coincidencias de un filtro de logs.
    • Distribution: Para extraer valores numéricos y calcular estadísticas (promedio, percentiles).
  4. Define un filtro de logs para seleccionar las entradas de log relevantes. Por ejemplo, severity=ERROR AND jsonPayload.status="failed".
  5. Si es una métrica de distribución, especifica el campo de extractor (por ejemplo, jsonPayload.duration).
  6. Asigna un nombre a la métrica.

Una vez creada, esta métrica aparecerá en Cloud Monitoring y podrás usarla en paneles de control y políticas de alerta como cualquier otra métrica de Google Cloud.

💡 Consejo: Las métricas basadas en registros son ideales para crear alertas sobre eventos específicos de aplicación que no se capturan directamente por métricas de infraestructura.

🔄 Integración y Buenas Prácticas

La verdadera potencia de Cloud Logging y Cloud Monitoring reside en su integración y en la aplicación de buenas prácticas.

Recomendaciones para una Observabilidad Efectiva 🎯

  1. Centraliza tus logs: Asegúrate de que todos los logs de tus aplicaciones y servicios se envíen a Cloud Logging. Utiliza los agentes de Logging para VMs personalizadas.
  2. Estandariza el formato de logs: Utiliza JSON estructurado para tus logs. Esto facilita la consulta, el filtrado y la creación de métricas basadas en registros.
{
"timestamp": "2023-10-27T10:00:00Z",
"severity": "INFO",
"message": "User login successful",
"user_id": "user123",
"request_id": "abc-123",
"latency_ms": 50
}
  1. Define alertas clave: No satures con alertas. Enfócate en métricas que indiquen problemas de servicio, latencia elevada, errores críticos o agotamiento de recursos.
  2. Crea paneles de control relevantes: Diseña dashboards para diferentes audiencias (operaciones, desarrollo, negocio). Cada dashboard debe contar una historia sobre un aspecto del sistema.
  3. Usa etiquetas (labels): Etiqueta tus recursos (VMs, buckets, etc.) consistentemente. Esto facilita el filtrado y la agrupación en Logging y Monitoring.
  4. Revisa periódicamente tus logs y métricas: No esperes a que ocurra un incidente. Realiza revisiones regulares para identificar tendencias y posibles problemas antes de que escalen.
  5. Automatiza la exportación de logs: Para cumplimiento o análisis a largo plazo, configura sumideros de registros para exportar logs a BigQuery o Cloud Storage.
Ejemplo de un Pipeline de Observabilidad
Paso 1: Aplicaciones envían logs estructurados a Cloud Logging.
Paso 2: Cloud Logging ingiere y almacena los logs.
Paso 3: Sumideros de logs exportan logs de errores a BigQuery para análisis detallado.
Paso 4: Métricas basadas en logs se crean para contar errores críticos.
Paso 5: Cloud Monitoring recopila métricas (CPU, red, errores, etc.).
Paso 6: Dashboards muestran el estado general y específico del servicio.
Paso 7: Políticas de alerta notifican al equipo si las métricas o los logs exceden umbrales.

🔍 Solución de Problemas Comunes

Mis logs no aparecen en Cloud Logging 😩

  • Verifica permisos: Asegúrate de que tu aplicación o recurso tenga los permisos adecuados para escribir logs (roles/logging.logWriter).
  • Configuración del agente: Si usas agentes (ej. para Compute Engine), verifica que estén instalados y configurados correctamente.
  • Filtros de exclusión: Comprueba si tienes filtros de exclusión en Log Router que estén descartando tus logs.
  • Regiones: Verifica que estás viendo los logs en la región correcta o el proyecto adecuado.

Las alertas no se disparan o no se envían 🔇

  • Condiciones de alerta: Revisa que los umbrales y la duración de la condición sean correctos.
  • Canal de notificación: Asegúrate de que el canal de notificación esté configurado correctamente y tenga los permisos necesarios (ej. email a la dirección correcta, integración de Slack funcionando).
  • Datos de métricas: Verifica en Metrics Explorer que la métrica que estás monitoreando realmente cruza el umbral definido.

La interfaz de Monitoring o Logging es lenta 🐌

  • Rango de tiempo: Si estás consultando un rango de tiempo muy grande o un volumen enorme de logs/métricas, la interfaz puede tardar. Reduce el rango.
  • Complejidad de la consulta: Las consultas de logs muy complejas pueden ser lentas. Intenta simplificar el filtro.
  • Navegador/Caché: A veces, borrar la caché del navegador o usar un navegador diferente puede ayudar.

Conclusión ✨

Cloud Logging y Cloud Monitoring son herramientas indispensables para cualquier equipo que opere en Google Cloud. Dominar su uso te permitirá no solo reaccionar rápidamente a los problemas, sino también anticiparlos, optimizar tus recursos y garantizar una experiencia de usuario fluida. La observabilidad no es un lujo, es una necesidad en el panorama actual de la infraestructura en la nube.

Al invertir tiempo en configurar adecuadamente tus logs, métricas, paneles de control y alertas, estarás construyendo una base sólida para el éxito de tus operaciones en Google Cloud.

Tutoriales relacionados

Comentarios (0)

Aún no hay comentarios. ¡Sé el primero!