Cómo solucionar problemas de notificaciones faltantes

En esta página, se explica por qué no podrías no recibir notificaciones como se espera y se ofrecen posibles soluciones para esas situaciones.

No se reciben las notificaciones

Configuras los canales de notificaciones y esperas que te notifiquen cuando se produzcan 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.

    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 sobre fallas. Por ejemplo, cuando se produce un error de puerta de enlace, la línea de resumen incluye “Falló con 502 Bad Gateway”.

No se reciben las notificaciones de webhook

Configuras un canal de notificaciones de webhook y esperas que te notifiquen cuando se produzcan 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 de acceso entrante.

Extremo público

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

Por ejemplo, puedes buscar entradas de registro para el recurso del canal de notificaciones con 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 resolver esta condición, prueba lo siguiente:

  • Asegúrate de que la cuenta de servicio de notificaciones exista. No se envían notificaciones 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 esta cuenta de servicio no aparece en la lista, selecciona Incluir asignaciones de funciones 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 Create Pub/Sub Channel, se muestra el nombre de la cuenta de servicio de notificaciones.

    4. Si no deseas 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 del navegador nueva, 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 sobre los temas de interés de Pub/Sub.

    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 enumerar todas las cuentas de servicio y sus funciones, 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 la autorización por tema.

    • A fin de enumerar las vinculaciones de IAM para 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 Autoriza la cuenta de servicio.

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

Deseas recibir notificaciones 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. Debes crear y configurar la condición para generar un incidente cuando no haya datos de métricas. No defines la condición con el Lenguaje de consulta de Monitoring (MQL)1. No recibirás notificaciones cuando la máquina virtual (VM) se reinicie o se apague.

Esta política de alertas solo supervisa las series temporales de las instancias de VM de Compute Engine que están en 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 está en ejecución. Para obtener información sobre los estados de las instancias de VM, consulta Ciclo de vida de la instancia de VM.

Para resolver este problema, crea una política de alertas a fin de supervisar una verificación de tiempo de actividad. Para extremos privados, usa 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 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 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 una VM supervisada por esta condición se apaga, tres minutos más tarde, 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 sobre el 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 tu política de alertas. Si el valor es más largo que el máximo de esta métrica, reduce el período de alineación para que no sea más de 7 horas y 30 minutos.