Puedes diagnosticar y resolver las notificaciones de alertas faltantes de Cloud Monitoring inspeccionando los registros de notification_channel_events en el Explorador de registros. Luego, puedes corregir los problemas de entrega y configuración en los canales de webhook, Pub/Sub y SMS, o bien ajustar las políticas de alertas para los cierres de máquina virtual (VM) y las métricas de recuento de solicitudes.
No se reciben las notificaciones
Si no recibes notificaciones a través de ningún canal de notificación configurado, haz lo siguiente:
-
En la consola de Google Cloud , ve a la página Explorador de registros del :
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Logging.
- Selecciona el proyecto Google Cloud adecuado.
Consulta los registros de eventos del canal de notificaciones:
- Expande el menú Nombre del registro y selecciona notification_channel_events.
- Expande el menú Gravedad y selecciona Error.
- Opcional: Para seleccionar un período personalizado, usa el selector de período.
- 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=ERRORPor lo general, la línea de resumen y el campo
jsonPayloadcontienen información sobre la falla. Por ejemplo, cuando se produce un error de puerta de enlace, la línea de resumen incluye "failed with 502 Bad Gateway".
No se reciben notificaciones de webhook
Esta sección se aplica cuando no recibes notificaciones a través de un canal de notificaciones de webhook configurado.
Extremo privado
Si tienes un endpoint privado, usa las notificaciones de Pub/Sub combinadas con una suscripción de extracción a ese tema de notificación. No puedes usar webhooks para enviar notificaciones a extremos privados.
Cuando configuras un canal de notificaciones de Pub/Sub, las notificaciones de alerta 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 App Engine, Cloud Run o máquinas virtuales de 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 reglas para firewalls ni acceso entrante.
Extremo público
Para identificar por qué falló la entrega, examina las entradas de registro de Cloud Logging para obtener información sobre la falla.
Por ejemplo, puedes buscar entradas de registro para el recurso del canal de notificación con el Explorador de registros y un filtro como el siguiente:
resource.type="stackdriver_notification_channel"
No se reciben notificaciones de Pub/Sub
Si no recibes notificaciones a través de un canal de notificaciones de Pub/Sub configurado, los registros pueden ayudarte a diagnosticar y resolver la falla. En esta sección, se describen las entradas de registro que escribe el sistema cuando no se puede enviar una notificación. Puedes usar la información de esta sección para resolver el motivo de la falla.
Los registros incluyen un error de Failed to authenticate as service account
Cuando consultes el registro notification_channel_events en busca de errores, es posible que encuentres una entrada de registro cuyo campo summary incluya el siguiente mensaje:
Failed to authenticate as service account service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com
Este error se produce cuando no existe la cuenta de servicio de notificaciones. Como resultado, no se envían notificaciones.
Para verificar que la cuenta de servicio exista, haz lo siguiente:
-
En la consola de Google Cloud , ve a la página IAM:
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es IAM y administrador.
Busca una cuenta de servicio que tenga la siguiente convención de nombres:
service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.comSi esta cuenta de servicio no aparece en la lista, selecciona Incluir asignaciones de roles proporcionadas por Google.
Para activar Monitoring y crear la cuenta de servicio de notificaciones, comienza el proceso de creación de un canal de notificaciones de Pub/Sub:
-
En la consola de Google Cloud , ve a la página Alertas notifications:
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.
- Haz clic en Editar un canal de notificaciones.
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 diálogo Create Pub/Sub Channel, se muestra el nombre de la cuenta de servicio de notificaciones.
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.
Otorga permisos a la cuenta de servicio para publicar en tus temas de Pub/Sub:
- En una pestaña nueva del navegador, abre el documento Crea un canal de notificaciones.
- Selecciona la pestaña Pub/Sub y, luego, sigue los pasos que se indican en la sección Autoriza la cuenta de servicio de la página.
Los registros incluyen un error de PERMISSION_DENIED
Cuando consultes el registro notification_channel_events en busca de errores, es posible que encuentres una entrada de registro cuyo campo summary incluya el siguiente mensaje:
An error occurred while publishing notification to Cloud Pub/Sub topic TOPIC_ID. Possible causes: 1) you don't have the required role (https://cloud.google.com/monitoring/support/notification-options#pubsub); or 2) Cloud Pub/Sub API is not enabled in your project: PERMISSION_DENIED
Este error se produce cuando la cuenta de servicio de notificaciones no se autorizó para enviar notificaciones sobre los temas de Pub/Sub de interés o cuando la API de Pub/Sub no está habilitada en tu proyecto.
Para ver los permisos de una cuenta de servicio, puedes usar la consola deGoogle 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 una lista de cada tema. Cuando seleccionas un tema, en la pestaña Permisos, se enumeran 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_IDA continuación, se muestra 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.publisherLa 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_IDA 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.
Los registros incluyen un error de FAILED_PRECONDITION
Cuando consultes el registro notification_channel_events en busca de errores, es posible que encuentres una entrada de registro cuyo campo summary incluya el siguiente mensaje:
An error occurred while publishing notification to Cloud Pub/Sub topic TOPIC_ID: FAILED_PRECONDITION
Este error se produce cuando Pub/Sub rechaza una solicitud de publicación de Monitoring porque el tema de destino no cumple con una condición previa obligatoria. Estas son algunas de las causas más comunes de este error:
Política de almacenamiento de mensajes y restricciones de residencia de datos: La política de almacenamiento de mensajes de tu tema restringe las Google Cloud regiones en las que se pueden procesar o almacenar mensajes:
- Aplicación de la política en tránsito en una región no permitida: La política de almacenamiento de mensajes del tema tiene
enforceInTransitestablecida entrue, y la solicitud de publicación llega a una región que no está enallowedPersistenceRegions. CuandoenforceInTransitestrue, Pub/Sub rechaza las solicitudes de regiones no permitidas en lugar de redireccionarlas. Si el tema usa transformaciones de inferencia de IA de un solo mensaje, la región de publicación también debe estar permitida por la transformación. - Regiones de persistencia permitidas restringidas: El tema tiene
enforceInTransitestablecido enfalsey la solicitud de publicación llega fuera deallowedPersistenceRegions, pero Pub/Sub no puede redireccionar la solicitud porque no hay ningún clúster viable disponible yallowedPersistenceRegionssolo contiene regiones privadas o restringidas. - Replicación síncrona entre regiones sin una región secundaria válida:
El tema usa la replicación síncrona entre regiones y tiene una política de almacenamiento de mensajes, pero
allowedPersistenceRegionsno incluye una región de replicación secundaria válida para la ubicación de publicación. - Endpoint regional sin aplicación de la política en tránsito: La solicitud de publicación se enruta a un endpoint regional, pero la política de almacenamiento de mensajes del tema tiene
enforceInTransitestablecida enfalse.
Para resolver los errores de la política de almacenamiento de mensajes, actualiza la política de almacenamiento de mensajes del tema o la configuración de la región de transformación de mensaje único de modo que
allowedPersistenceRegionsincluya la región de publicación y cualquier región de replicación secundaria requerida, o bien estableceenforceInTransitenfalsesi no se requiere la aplicación regional en tránsito.- Aplicación de la política en tránsito en una región no permitida: La política de almacenamiento de mensajes del tema tiene
Errores de clave de encriptación administrada por el cliente (CMEK): Tu tema está configurado para usar una clave de encriptación administrada por el cliente de Cloud Key Management Service (Cloud KMS), y Pub/Sub no puede encriptar el mensaje publicado:
- Se denegó el permiso para la clave de Cloud KMS: Cloud KMS devuelve un error
PERMISSION_DENIEDcuando Pub/Sub intenta encriptar el mensaje, lo que Pub/Sub informa comoFAILED_PRECONDITION. Por ejemplo, este error se produce cuando el agente de servicio de Pub/Sub no tiene el rol de encriptador/desencriptador de CryptoKey (roles/cloudkms.cryptoKeyEncrypterDecrypter) en la clave. - Estado de clave de Cloud KMS inutilizable: Cloud KMS devuelve un error
FAILED_PRECONDITIONporque la versión de la clave está inhabilitada o destruida, o porque no se puede acceder a una clave del administrador de claves externo.
Para resolver los errores de CMEK, verifica que la versión de la clave de Cloud KMS esté habilitada y sea accesible, y asegúrate de que el agente de servicio de Pub/Sub tenga el rol
roles/cloudkms.cryptoKeyEncrypterDecrypteren la clave.- Se denegó el permiso para la clave de Cloud KMS: Cloud KMS devuelve un error
No recibes notificaciones cuando se apaga una VM
Para recibir notificaciones cuando se apague una máquina virtual (VM), crea una verificación de tiempo de actividad para consultar periódicamente la VM y, luego, crea una política de alertas para supervisar esa verificación de tiempo de actividad. Si usas una nube privada virtual (VPC), es posible que debas crear una verificación de tiempo de actividad privada.
Una política de alertas que supervisa la métrica compute.googleapis.com/instance/uptime no te notificará cuando se apague la VM. En el caso de esta métrica, las políticas de alertas solo supervisan las series temporales de las instancias de VM que se encuentran en el estado RUNNING. Si una VM se encuentra en cualquier otro estado, como STOPPED o DELETED, no se supervisa. Para obtener información sobre los estados de las instancias de VM, consulta Ciclo de vida de la instancia de VM.
No se reciben notificaciones para las políticas de alertas de recuento de solicitudes
Si no recibes notificaciones de una política de alertas que supervisa la métrica serviceruntime.googleapis.com/api/request_count, asegúrate de que el período de alineación de la política no sea superior a 7 horas y 30 minutos.
No se reciben mensajes de notificación SMS ni códigos de verificación
Si no recibes notificaciones ni códigos de verificación por SMS, asegúrate de no haber alcanzado el límite de mensajes SMS. Es posible que haya registros que confirmen este error. Revisa tus registros de Denied quota token.
Ten en cuenta que los SMS no son un tipo de canal de notificación confiable y es posible que no estén disponibles en ciertas regiones. Evita depender únicamente de los canales de SMS para las notificaciones. En su lugar, configura canales de notificaciones adicionales, como el correo electrónico.