Cómo solucionar problemas de notificaciones faltantes

En esta página, se explica por qué es posible que no recibas notificaciones según lo esperado y se ofrecen posibles soluciones para esas situaciones.

No se reciben notificaciones

Configuras los canales de notificación y esperas recibir notificaciones cuando se producen 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 en busca de 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.

    En los pasos anteriores, se crea la siguiente consulta:

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

    La línea de resumen y el campo jsonPayload suelen contener información de fallas. Por ejemplo, cuando se produce un error de puerta de enlace, la línea de resumen incluye “con errores 502 de la puerta de enlace incorrecta”.

No se reciben notificaciones de webhook

Configura un canal de notificaciones de webhook y esperas que se te notifique cuando se producen incidentes. No recibirás ninguna notificación.

Extremo privado

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

Para resolver esta situación, usa las 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 a que llegue un mensaje. Estas suscripciones requieren acceso a Google, pero no requieren reglas de firewall ni acceso entrante.

Extremo público

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

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 las notificaciones de Pub/Sub

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

Para solucionar esta condició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 existe, 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 esta cuenta de servicio no aparece en la lista, 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.

      Monitoring 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 permisos 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 de los temas de Pub/Sub de interés.

    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 para cada cuenta de servicio.
    • En la página Temas de Pub/Sub en la consola de Google Cloud, se enumera cada tema. Cuando seleccionas un tema, en la pestaña Permisos se enumeran las funciones otorgadas a las cuentas de servicio.
    • Para obtener una lista de 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 funciones, no incluye 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
      

      La siguiente es 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 Autoriza la cuenta de servicio.

No se reciben las notificaciones de las políticas de alertas de verificaciones de tiempo de actividad

Deseas recibir una notificación si una máquina virtual (VM) se reinicia o se apaga, por lo que debes crear una política de alertas que supervise la métrica compute.googleapis.com/instance/uptime. Crea y configura la condición para generar un incidente cuando no hay datos de métrica. No debes definir la condición mediante el uso del lenguaje de consulta de Monitoring (MQL)1. No recibes notificaciones cuando la máquina virtual (VM) se reinicia o se apaga.

Esta política de alertas solo supervisa las series temporales de las instancias de VM de Compute Engine que tienen el estado RUNNING. Las series temporales de las VM que están 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étrica para determinar si una instancia de VM se está ejecutando. Para obtener información sobre los estados de las instancias de VM, consulta Ciclo de vida de la instancia de VM.

A fin de 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 de las verificaciones de tiempo de actividad es usar políticas de alertas que supervisen la ausencia de datos. Recomendamos generar alertas sobre las verificaciones de tiempo de actividad en lugar de la ausencia de datos: 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 Monitoring.

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 la VM se cerró. Las condiciones definidas por MQL no filtran previamente los datos de series temporales en función del estado de la instancia de VM. Debido a que MQL no filtra datos por estados de VM, puedes usarlo para detectar la ausencia de datos de VM que se apagaron.

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 una VM supervisada por esta condición se cierra, tres minutos después, se genera un incidente y se envían notificaciones. El valor 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 las 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 las notificaciones de las políticas de alertas de recuento de solicitudes

Quieres 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 la 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 más de 7 horas y 30 minutos.