Cómo solucionar problemas de notificaciones faltantes

En esta página, se explica por qué es posible que no recibas notificaciones como se espera y se ofrecen posibles soluciones para esas situaciones.

No se reciben notificaciones

Configuras canales de notificaciones y esperas recibir notificaciones cuando ocurran incidentes. No recibirás ninguna notificación.

Para recopilar información sobre la causa de la falla, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página Explorador de registros.

    Ir al Explorador de registros

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Logging.

  2. Selecciona el proyecto de Google Cloud adecuado.
  3. Consulta los registros para ver los eventos del canal de notificaciones:

    1. Expande el menú Nombre del registro y selecciona notification_channel_events.
    2. Expande el menú Gravedad y selecciona Error.
    3. Opcional: Para seleccionar un intervalo de tiempo personalizado, usa el selector de intervalo de tiempo.
    4. Haz clic en Ejecutar consulta.

    Los pasos anteriores crean la siguiente consulta:

    resource.type:"stackdriver_notification_channel"
    logName="projects/PROJECT_ID/logs/monitoring.googleapis.com%2Fnotification_channel_events"
    severity=ERROR
    

    Por lo general, la línea de resumen y el campo jsonPayload contienen información sobre fallas. Por ejemplo, cuando se produce un error de puerta de enlace, la línea de resumen incluye “error con 502 Bad Gateway”.

No se reciben notificaciones de webhook

Supongamos que configuras un canal de notificaciones de webhook y esperas recibir notificaciones cuando ocurran incidentes. No recibes ninguna notificación.

Extremo privado

No puedes usar webhooks para las notificaciones, a menos que el extremo sea público.

Para resolver esta situación, usa notificaciones de Pub/Sub combinadas con una suscripción de extracción a ese tema de notificación.

Cuando configuras un canal de notificaciones de Pub/Sub, las notificaciones de incidentes se envían a una cola de Pub/Sub que tiene controles de Identity and Access Management. Cualquier servicio que pueda consultar o escuchar un tema de Pub/Sub puede consumir estas notificaciones. Por ejemplo, las aplicaciones que se ejecutan en máquinas virtuales de App Engine, Cloud Run o Compute Engine pueden consumir estas notificaciones.

Si usas una suscripción de extracción, se envía una solicitud a Google que espera que llegue un mensaje. Estas suscripciones requieren acceso a Google, pero no requieren reglas para firewalls ni acceso entrante.

Extremo público

Para identificar por qué falló la publicación, examina las entradas de registro de Cloud Logging en busca de información sobre la falla.

Por ejemplo, puedes buscar entradas de registro para el recurso del canal de notificaciones mediante el Explorador de registros, con un filtro como el siguiente:

resource.type="stackdriver_notification_channel"

No se reciben notificaciones de Pub/Sub

Configuras un canal de notificaciones de Pub/Sub, pero no recibes ninguna notificación.

Para resolver esta situación, prueba lo siguiente:

  • Asegúrate de que exista la cuenta de servicio de notificaciones. Las notificaciones no se envían cuando se borra la cuenta de servicio.

    Para verificar que la cuenta de servicio exista, haz lo siguiente:

    1. En la consola de Google Cloud, ve a la página IAM:

      Ir a IAM

      Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es IAM y administrador.

    2. Busca una cuenta de servicio que tenga la siguiente convención de nombres:

      service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com

      Si no aparece esta cuenta de servicio, selecciona Incluir asignaciones de roles proporcionadas por Google.

    Si la cuenta de servicio de notificaciones no existe, debes comenzar el proceso de creación del canal de notificaciones de Pub/Sub para que Monitoring cree la cuenta de servicio:

    1. En la consola de Google Cloud, ve a la página  Alertas.

      Ir a las Alertas

      Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.

    2. Haz clic en Editar canales de notificaciones.
    3. En la sección Pub/Sub, haz clic en Agregar nuevo.

      La supervisión crea la cuenta de servicio de notificaciones cuando no existe una. En el cuadro de diálogo Crear canal de Pub/Sub, se muestra el nombre de la cuenta de servicio de notificaciones.

    4. Si no quieres agregar un canal de notificaciones, haz clic en Cancelar. De lo contrario, termina de crear el canal de notificaciones y haz clic en Agregar canal.

    5. Otorga a la cuenta de servicio los permisos necesarios para publicar tus temas de Pub/Sub:

      1. En una pestaña nueva del navegador, abre el documento Crea un canal de notificaciones.
      2. Selecciona la pestaña Pub/Sub y, luego, sigue los pasos de la sección Autorizar cuenta de servicio de la página.
  • Asegúrate de que la cuenta de servicio de notificaciones esté autorizada para enviar notificaciones para los temas de Pub/Sub que te interesan.

    Para ver los permisos de una cuenta de servicio, puedes usar la consola de Google Cloud o el comando de Google Cloud CLI:

    • En la página IAM de la consola de Google Cloud, se enumeran los roles de cada cuenta de servicio.
    • En la página Temas de Pub/Sub en la consola de Google Cloud, se muestra cada tema. Cuando seleccionas un tema, en la pestaña Permisos, se muestra una lista de los roles otorgados a las cuentas de servicio.
    • Para enumerar todas las cuentas de servicio y sus roles, ejecuta el siguiente comando de Google Cloud CLI:

      gcloud projects get-iam-policy PROJECT_ID
      

      La siguiente es una respuesta parcial para este comando:

          serviceAccount:service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com
             role: roles/monitoring.notificationServiceAgent
           - members:
             [...]
             role: roles/owner
           - members:
             - serviceAccount:service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com
             role: roles/pubsub.publisher
      

      La respuesta del comando solo incluye roles, no incluye la autorización por tema.

    • Para enumerar las vinculaciones de IAM de un tema específico, ejecuta el siguiente comando:

      gcloud pubsub topics get-iam-policy TOPIC
      

      A continuación, se muestra una respuesta de ejemplo para este comando:

          bindings:
          - members:
            - serviceAccount:service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com
            role: roles/pubsub.publisher
          etag: BwXPRb5WDPI=
          version: 1
      

    Para obtener información sobre cómo autorizar la cuenta de servicio de notificaciones, consulta Cómo autorizar una cuenta de servicio.

No se reciben notificaciones para las políticas de alertas de verificación de tiempo de actividad

Supongamos que deseas recibir una notificación si se reinicia o se apaga una máquina virtual (VM), por lo que creas una política de alertas que supervise la métrica compute.googleapis.com/instance/uptime. Creas y configuras la condición para generar un incidente cuando no hay datos de métricas. No defines la condición con el lenguaje de consulta de Monitoring (MQL)1. No recibirás una notificación cuando la máquina virtual (VM) se reinicie o se cierre.

Esta política de alertas solo supervisa las series temporales de las instancias de VM de Compute Engine que se encuentran en el estado RUNNING. Las series temporales de las VMs que se encuentran en cualquier otro estado, como STOPPED o DELETED, se filtran antes de que se evalúe la condición. Debido a este comportamiento, no puedes usar una política de alertas con una condición de alerta de ausencia de métricas para determinar si se está ejecutando una instancia de VM. Para obtener información sobre los estados de las instancias de VM, consulta Ciclo de vida de las instancias de VM.

Para resolver este problema, crea una política de alertas para supervisar una verificación de tiempo de actividad. Para los extremos privados, usa las verificaciones de tiempo de actividad privadas.

Una posible alternativa a las alertas en las verificaciones de tiempo de actividad es usar políticas de alertas que supervisen la ausencia de datos. Te recomendamos que configures alertas en las verificaciones de tiempo de actividad en lugar de ausencia de datos, ya que las políticas de alertas de ausencia de métricas pueden generar falsos positivos si hay problemas transitorios con la disponibilidad de los datos de supervisión.

Sin embargo, si no es posible usar las verificaciones de tiempo de actividad, puedes crear una política de alertas con MQL que te notifique que se cerró la VM. Las condiciones definidas por MQL no filtran previamente los datos de series temporales según el estado de la instancia de VM. Como MQL no filtra los datos por estado de la VM, puedes usarlo para detectar la ausencia de datos de las VMs que se cerraron.

Considera la siguiente condición de MQL que supervisa la métrica compute.googleapis.com/instance/cpu/utilization:

fetch gce_instance::compute.googleapis.com/instance/cpu/utilization
|absent_for 3m

Si se apaga una VM supervisada por esta condición, tres minutos después, se genera un incidente y se envían notificaciones. El valor de absent_for debe ser de al menos tres minutos.

Para obtener más información sobre MQL, consulta Políticas de alertas con MQL.

1: MQL es un lenguaje expresivo basado en texto que se puede usar con llamadas a la API de Cloud Monitoring y en la consola de Google Cloud. Para configurar una condición con MQL cuando usas la consola de Google Cloud, debes usar el editor de código.

No se reciben notificaciones para las políticas de alertas de recuento de solicitudes

Si deseas supervisar la cantidad de solicitudes completadas Creaste una política de alertas que supervisa la métrica serviceruntime.googleapis.com/api/request_count, pero no recibes notificaciones cuando la cantidad de solicitudes supera el umbral que configuraste.

El período de alineación máximo para la métrica de recuento de solicitudes es de 7 horas y 30 minutos.

Para resolver este problema, verifica el valor del período de alineación en tu política de alertas. Si el valor es mayor que el máximo para esta métrica, reduce el período de alineación para que no sea superior a 7 horas y 30 minutos.