Configura alertas a través de Cloud Logging

En este documento, se explica cómo configurar, personalizar y probar alertas para eventos de estado del servicio.

Personalized Service Health se integra en las alertas de registro de Cloud Monitoring para que puedas configurar y recibir alertas. Puedes crear notificaciones para las siguientes condiciones:

  • Cuando se informan incidentes nuevos.
  • Cuando se actualizan los incidentes existentes, por ejemplo, cuando el equipo de asistencia al cliente de Google Cloud envía un mensaje nuevo.
  • Cuando se crean o actualizan incidentes para productos o ubicaciones específicas de Google Cloud , como las regiones.
  • Cuando se actualizan detalles específicos de incidentes existentes, como el estado y la relevancia.

Dado que estas notificaciones usan alertas de registro, cada una se asocia con un incidente de Monitoring. Cada notificación incluye vínculos a la página del incidente y un vínculo directo al panel de Service Health. Obtén más información para investigar incidentes.

Una vez que configures una alerta, recibirás una notificación cada vez que se cumplan las condiciones de tu política de alertas. Estas notificaciones están sujetas a los límites de supervisión, por ejemplo, 20 alertas por política por día por proyecto.

En las siguientes secciones, se muestra cómo configurar una política de alertas de registro y se proporcionan ejemplos de situaciones de alerta comunes. Las alertas de registro dependen de los canales de notificación, que admiten una variedad de integraciones, como correo electrónico, SMS, Pub/Sub, webhooks, Slack y PagerDuty.

Para enrutar una alerta a un destino distinto de las opciones que se enumeraron antes, considera usar un webhook. Por ejemplo, puedes configurar un webhook en ServiceNow. Para obtener más información, consulta Cómo configurar unwebhook en Google Cloud en la documentación de ServiceNow.

Formatos de notificaciones de alerta

Los formatos de las notificaciones de alerta varían según el canal de notificación.

Correo electrónico

Si configuras la alerta para que envíe un correo electrónico, cuando se cumpla la condición de alerta, se enviará un mensaje con la dirección alerting-noreply@google.com a la dirección de correo electrónico que elijas.

Slack

Si configuras tu notificación personalizada para que se publique en Slack, aparecerá un mensaje de la aplicación de Cloud Monitoring en el canal que seleccionaste cuando se produzca el evento.

Configura una política de alertas

Una alerta usa una política de alertas, que describe las circunstancias en las que deseas recibir la alerta y cómo quieres ser notificado.

Puedes configurar políticas de alertas en el panel de Service Health o con Google Cloud CLI.

Las políticas de alertas requieren un canal de notificaciones de Cloud Monitoring, que define a dónde se envía una alerta. Si no tienes un canal de notificaciones, puedes crear uno en la consola de Google Cloud o con la API de Monitoring.

En el panel de Service Health

Consulta la guía de inicio rápido.

Usa la CLI de gcloud

Para configurar una política de alertas con gcloud CLI, haz lo siguiente:

  1. Obtén el ID de tu canal de notificaciones.

    a. Enumera los IDs de los canales de notificaciones.

    gcloud config set project PROJECT_ID gcloud beta monitoring channels list
    

    b. Busca entradas con projects/PROJECT_ID/notificationChannels/. Estas entradas son los IDs de los canales de notificación.

  2. Crea un archivo policy.json con el siguiente contenido:

    • Aparecerá ALERT_NAME en la notificación. Ejemplo: “incidente de Google Cloud SQL”

    • ALERT_CONDITION define cuándo enviar una alerta.

      • Cuando definas las condiciones, usa los valores que se encuentran en los productos deGoogle Cloud y las ubicaciones.
      • Ejemplos de condiciones de alerta:

        Condición de alerta Valor ALERT_CONDITION
        Cómo recibir alertas sobre cualquier evento de Cloud SQL jsonPayload.impactedProductIds =~ \"hV87iK5DcEXKgWU2kDri\"
        Recibir alertas sobre cualquier evento que ocurra en la zona us-central1-a jsonPayload.impactedLocations =~ \"us-central1-a\"

      Consulta más ejemplos de condiciones de alerta.

    • NOTIFICATION_CHANNEL es el ID del canal de notificaciones, que recuperaste con el comando de lista en el paso anterior. Ejemplo: projects/PROJECT_ID/notificationChannels/885798905074.

    En el siguiente fragmento, se muestra un ejemplo del archivo policy.json.

    {
      "displayName": "ALERT_NAME",
      "combiner": "OR",
      "conditions": [ {
        "displayName": "Log match condition",
        "conditionMatchedLog": {
          "filter": "ALERT_CONDITION",
         } } ],
      "notificationChannels": [ "NOTIFICATION_CHANNEL" ],
    }
    
  3. Crea la política de Cloud Monitoring.

    gcloud config set project PROJECT_ID
    gcloud alpha monitoring policies create --policy-from-file="policy.json"
    

Cómo personalizar el contenido de la alerta

Puedes configurar los campos dentro de la notificación a través de los siguientes campos en el archivo JSON:

  • labelExtractors: Son las propiedades que se incluirán en el encabezado de la notificación. Para personalizar estas propiedades, consulta la guía de LabelExtractors.
  • content: Es el formato de la notificación por correo electrónico. Puedes usar la sustitución de variables de Markdown, que te permite usar labelExtractors como variables. Para personalizar estas variables, consulta esta guía.

Consulta ejemplos de políticas y condiciones de alertas para ver cómo personalizar tus alertas.

Prueba tu alerta

Para probar la alerta, usarás un registro de prueba de muestra con Cloud Logging. El registro de prueba muestra la lógica de alerta que configuraste anteriormente.

Usa la consola de Google Cloud

Puedes hacer lo siguiente:

  1. Ve a la página de referencia del método entries:write, que te permite escribir entradas de registro en Cloud Logging. Aparecerá una ventana que te permitirá probar el método.
  2. En el cuerpo de la solicitud, cambia PROJECT_ID a tu propio proyecto.
  3. Cambia los campos jsonPayload en el cuerpo de la solicitud, según la condición de alerta que estés probando. También puedes verificar el esquema event_log.proto y ajustar los valores del registro para probar situaciones específicas que te interesen.

    {
      "entries": [
        {
          "logName": "projects/PROJECT_ID/logs/servicehealth.googleapis.com%2Factivity",
          "resource": {
            "type": "servicehealth.googleapis.com/Event",
            "labels": {
              "resource_container": "PROJECT_ID",
              "location": "global",
              "event_id": "U4AqrjwFQYi5fFBmyAX-Gg"
            }
          },
          "labels": {
            "servicehealth.googleapis.com/new_event": "true",
            "servicehealth.googleapis.com/updated_fields": "[]"
          },
          "jsonPayload": {
            "@type": "type.googleapis.com/google.cloud.servicehealth.logging.v1.EventLog",
            "category": "INCIDENT",
            "title": "EXAMPLE... NOT REAL INCIDENT",
            "description": "EXAMPLE FOR TESTING, NOT REAL INCIDENT. We are experiencing an issue with Google Cloud infrastructure components at us-east1, australia-southeast2. Our engineering team continues to investigate the issue. We apologize to all who are affected by the disruption.",
            "updateTime": "2022-07-15T22:26:40Z",
            "endTime": "2022-07-16T22:13:20Z",
            "impactedLocations": "['us-east1', 'australia-southeast2']",
            "impactedProducts": "['CloudSQL']",
            "impactedProductIds": "['hV87iK5DcEXKgWU2kDri']",
            "startTime": "2022-07-13T12:26:40Z",
            "nextUpdateTime": "2022-07-13T16:26:40Z",
            "state": "ACTIVE",
            "detailedState": "CONFIRMED",
            "relevance": "RELATED"
          }
        }
      ]
    }
    
  4. Haz clic en Ejecutar. Aparecerá una ventana en la que el Explorador de APIs de Google solicitará acceso a tu cuenta.

  5. Permite el acceso del Explorador de APIs de Google. La ventana con el cuerpo de la solicitud muestra la siguiente captura de pantalla, que indica que se realizó correctamente.

    200 mensajes

  6. Espera unos minutos y, luego, verifica que se haya activado la alerta.

    1. En la consola de Google Cloud, ve a Cloud Monitoring > Incidentes y busca la alerta.
    2. Verifica si recibiste una alerta en el canal de notificaciones que usa la política de alertas.

Si necesitas volver a probar la alerta, espera al menos 5 minutos antes de hacerlo.

Usa gcloud

También puedes crear una entrada de registro de prueba llamando a la API de Cloud Logging con el comando gcloud.

  1. (Opcional) Verifica tu proyecto actual.

    gcloud config list
    
  2. Configura tu proyecto actual.

    gcloud_name config set project PROJECT_ID
    
  3. Escribe la entrada de registro de prueba.

    gcloud logging write --payload-type=json
    LOG_NAME
    '{ "category": "INCIDENT", "relevance": "IMPACTED", "@type": "type.googleapis.com/google.cloud.servicehealth.logging.v1.EventLog", "description": "This is a test log entry"}'
    
  4. Espera unos minutos y, luego, verifica que se haya activado la alerta.