En esta página, se explica por qué no recibes las notificaciones como esperas y ofrece posibles soluciones.
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:
-
En la consola de Google Cloud, ve a la página Explorador de registros.
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Logging.
- Selecciona el proyecto de Google Cloud adecuado.
Consulta los registros en busca 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 intervalo de tiempo personalizado, usa el selector de intervalo de tiempo.
- 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
La línea de resumen y el campo
jsonPayload
suelen contener errores información. 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
Configura un canal de notificaciones de webhook de seguridad cuando se producen los incidentes. No recibirás 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 se envían a una cola de Pub/Sub que tiene Identity and Access Management controles de seguridad. 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 las 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 son que se envía cuando se borra la cuenta de servicio.
Para verificar que la cuenta de servicio existe, 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.com
Si esta cuenta de servicio no aparece en la lista, selecciona Incluye 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:
-
En la consola de Google Cloud, ve a la página notifications Alertas.
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.
- Haz clic en Editar canales de notificaciones.
En la sección Pub/Sub, haz clic en Agregar nuevo.
Monitoring crea la cuenta de servicio de notificaciones cuando no existe uno. En el cuadro de diálogo Crear canal de Pub/Sub, 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 tu contenido de Pub/Sub temas:
- En una nueva pestaña del navegador, abre la Crea un documento de canal de notificaciones.
- 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 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 uno de ellos. 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, la pestaña Permisos enumera los roles otorgada a 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 autorización.
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 una cuenta de servicio.
No se reciben las notificaciones de las políticas de alertas de verificaciones 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 más 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 para supervisar un 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 supervisan 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 las
compute.googleapis.com/instance/cpu/utilization
métrica:
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 absent_for
debe ser
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 las notificaciones de 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 la métrica, reduzca el valor y que no supere las 7 horas y 30 minutos.