En este documento, se explica cómo crear una política de alertas para supervisar los resultados de una consulta que ejecutas en Estadísticas de observabilidad. Estas consultas se escriben en SQL y deben consultar una vista de registro. La política de alertas te notifica cuando el resultado de la consulta satisface las condiciones que especificaste. Por ejemplo, puedes configurar una política de alertas para que se te notifique cuando, al menos, el 25% de las entradas de registro en un período determinado tengan una gravedad de ERROR.
Las políticas de alertas que creas desde la página Estadísticas de observabilidad se ejecutan en un motor de BigQuery. Por lo tanto, se debe poder acceder a los datos que se consultan a través de un conjunto de datos vinculado de BigQuery. Por este motivo, estas consultas en SQL solo pueden consultar vistas de registro. No pueden consultar vistas de análisis.
Para obtener información general sobre Estadísticas de observabilidad, consulta Consulta y analiza registros con Estadísticas de observabilidad.
Cómo funcionan las políticas de alertas
Una política de alertas describe las circunstancias en las que deseas recibir la alerta y cómo quieres que se te notifique sobre un incidente. Existen tres enfoques diferentes que puedes usar para recibir notificaciones cuando aparecen contenido o patrones en tus datos de registro:
Para analizar entradas de registro individuales en busca de una frase específica, crea una política de alertas basada en registros. Usa estas políticas de alertas cuando quieras recibir notificaciones sobre eventos relacionados con la seguridad.
Para supervisar eventos en los datos de entrada de registro, puedes crear una métrica basada en registros y, luego, crear una política de alertas para supervisar la métrica. Estos tipos de políticas de alertas son eficaces cuando deseas supervisar las tendencias en los datos de entrada de registro a lo largo del tiempo. Sin embargo, no son tan eficaces si esperas solo algunos eventos.
Para supervisar el análisis agregado de tus datos de entrada de registro, combina Estadísticas de observabilidad con políticas de alertas. En este caso, actualizas un bucket de registros para usar Estadísticas de observabilidad y crear un conjunto de datos vinculado de BigQuery para ese bucket de registros. A continuación, usas Estadísticas de observabilidad, que admite consultas en SQL, para consultar una vista de registro en el bucket de registros. Por último, creas la política de alertas para supervisar los resultados de la consulta en SQL. Este tipo de política de alertas se denomina política de alertas basada en SQL.
Las políticas de alertas basadas en SQL son más eficaces para evaluar valores exactos en varias entradas de registro. Si deseas evaluar entradas de registro individuales, crea una política de alertas basada en registros.
En el resto de este documento, se describe cómo usar las políticas de alertas basadas en SQL.
Componentes de la política de alertas
Una política de alertas basada en SQL contiene una condición y una programación:
La condición contiene la consulta, que es una consulta en SQL que consulta tus datos. La condición también define las circunstancias en las que el resultado de la consulta hace que Monitoring cree un incidente.
La programación define con qué frecuencia la política de alertas ejecuta su consulta. La programación también define el tamaño de la ventana de visualización, que es un filtro que selecciona solo los datos que se recibieron desde la última vez que se evaluó la consulta. Por ejemplo, si estableces la programación en 60 minutos, la consulta se ejecuta cada 60 minutos con una ventana de visualización que selecciona los 60 minutos más recientes de datos.
Las políticas de alertas también contienen una lista de canales de notificaciones. Cuando se cumple la condición de la política de alertas, Cloud Monitoring crea un incidente y, luego, envía notificaciones sobre el incidente a través de estos canales. Un incidente es un registro de los datos que hicieron que se cumpliera la condición junto con otra información pertinente. Esta información puede ayudarte a solucionar los problemas que causaron el incidente. Puedes ver el incidente con la Google Cloud consola de.
Tipos de evaluación para políticas de alertas basadas en SQL
Las condiciones que supervisan el resultado de una consulta en SQL admiten dos tipos de evaluación:
Umbral de recuento de filas: La condición se cumple cuando la cantidad de filas en el resultado de la consulta es mayor, igual o menor que un valor de umbral.
Por ejemplo, supongamos que deseas recibir una notificación cuando más de 50 entradas de registro en la ventana de visualización tengan una gravedad superior a 200. Creas una consulta que informa las entradas de registro cuya gravedad es superior a 200. Luego, configuras una condición, seleccionas el Umbral de recuento de filas y estableces el umbral en 50.
Booleano: La condición se cumple cuando una columna booleana específica en la tabla de resultados de la consulta contiene cualquier fila con un valor de
true.Por ejemplo, supongamos que deseas recibir una notificación cuando más del 25% de las entradas de registro en la ventana de visualización tengan una gravedad de
ERROR. Creas una consulta que calcula el porcentaje de entradas de registro cuyo nivel de gravedad esERROR. Los resultados de la consulta escribentrueen la columnanotifycuando ese porcentaje supera el 25%. A continuación, creas una condición, estableces el tipo en Booleano y configuras la condición para supervisar la columnanotify.
Las políticas de alertas que supervisan el resultado de una consulta en SQL deben tener solo una condición.
Políticas de alertas y BigQuery
Para que una política de alertas consulte tus datos de registro, debes configurar un conjunto de datos vinculado de BigQuery. Los conjuntos de datos vinculados permiten que BigQuery lea tus datos de registro y que realices funciones de BigQuery en los datos que muestra tu consulta en SQL.
Cuando una política de alertas ejecuta una consulta en SQL, esa consulta se ejecuta en el motor de BigQuery en el Google Cloud proyecto en el que se define la política de alertas. De forma predeterminada, las consultas que se ejecutan en el motor de BigQuery usan ranuras a pedido. Las ranuras a pedido y las ranuras reservadas están sujetas a los precios de BigQuery.
También puedes configurar reservas de ranura de BigQuery dedicadas para tu proyecto:
- Crea una reserva con ranuras dedicadas o identifica una reserva existente.
- Crea asignaciones de reserva para tu proyecto.
Entradas de registro evaluadas
Para que la consulta en SQL de una política de alertas evalúe una entrada de registro, se deben cumplir las siguientes condiciones:
- La marca de tiempo recibida de la entrada de registro, que registra cuándo Cloud Logging recibió la entrada de registro, debe estar dentro de la ventana de visualización de la política de alertas.
- La marca de tiempo de la entrada de registro, que registra cuándo se generó la entrada de registro, debe estar dentro de los 15 minutos de la ventana de visualización.
Por ejemplo, tu política de alertas basada en SQL tiene una ventana de visualización de 60 minutos. Estadísticas de observabilidad ejecuta la consulta en SQL de la política de alertas a las 13:30. Para incluirse en la consulta, una entrada de registro debe cumplir con los siguientes criterios:
- La marca de tiempo recibida debe estar entre las 12:30 y las 13:30.
- La marca de tiempo debe estar entre las 12:15 y las 13:45.
Cuando ejecutas una consulta desde la interfaz de Estadísticas de observabilidad, todas las entradas de registro en el período seleccionado se evalúan según la marca de tiempo de la entrada de registro.
Ventana de visualización y tiempo de propagación de incidentes
Cuando se programa una política de alertas para evaluar su condición, Estadísticas de observabilidad retrasa la ejecución de la consulta en SQL cinco minutos para permitir que Cloud Logging indexe los datos recibidos durante la ventana de visualización. Por ejemplo, si la política de alertas usa una ventana de visualización que finaliza a las 14:00, Estadísticas de observabilidad no ejecuta la consulta en SQL hasta las 14:05.
Si se cumple la condición de alerta después de que se ejecuta la consulta, el incidente puede tardar hasta dos minutos adicionales en propagarse por el sistema.
Errores en la consulta
Las consultas emitidas por políticas de alertas basadas en SQL pueden fallar por varios motivos, incluidos los siguientes:
La cuenta de servicio de Monitoring ya no existe o ya no tiene los permisos necesarios para leer los datos de registro que se consultan.
El tiempo de ejecución de la consulta supera los cinco minutos.
Se produce un error interno.
Una consulta fallida genera una entrada de registro que contiene el ID de la política de alertas y el estado de error. Puedes usar una política de alertas basada en registros para crear una alerta cuando se registra un error.
Antes de comenzar
En esta sección, se supone que actualizaste tu bucket de registros para usar Estadísticas de observabilidad y que puedes consultar y ver tus datos de registro con la página Estadísticas de observabilidad. También se supone que ya creaste un conjunto de datos vinculado de BigQuery para tu bucket de registros.
Antes de crear una política de alertas basada en SQL, completa los siguientes pasos:
-
Para obtener los permisos que necesitas para crear y administrar políticas de alertas basadas en SQL, pídele a tu administrador que te otorgue los siguientes roles de IAM:
-
Editor de Monitoring (
roles/monitoring.editor) on your project -
Logging SqlAlertWriter (
roles/logging.sqlAlertWriter) en tu proyecto
-
Editor de Monitoring (
Verifica que exista la cuenta de servicio de Monitoring y que tenga los siguientes roles:
- Agente de servicio de Monitoring (
roles/monitoring.notificationServiceAgent) en tu proyecto - Visualizador de datos de BigQuery (
roles/bigquery.dataViewer) en tu conjunto de datos vinculado
Si la cuenta de servicio de Monitoring no existe, consulta Solución de problemas: No hay cuenta de servicio de Monitoring.
- Agente de servicio de Monitoring (
- Configura los canales de notificaciones que deseas usar para recibir notificaciones de incidentes. Para fines de redundancia, te recomendamos que crees varios tipos de canales de notificaciones. Para obtener más información, consulta Cómo crear y administrar canales de notificaciones.
Crea una política de alertas basada en SQL
Para crear una política de alertas basada en SQL, sigue estos pasos:
Google Cloud Consola de
-
En la Google Cloud consola de, ve a la manage_search Análisis de registros página:
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Logging.
En la página Estadísticas de observabilidad, en el editor de consultas, ingresa una consulta en SQL que consulte tus datos de registro.
Para obtener más información sobre cómo escribir consultas en SQL para vistas de registro, consulta Consulta una vista de registro.
En la barra de herramientas, haz clic en Ejecutar en BigQuery.
Estadísticas de observabilidad ejecuta tu consulta en el motor de BigQuery y muestra los resultados en la tabla Resultados.
Si no se muestra Ejecutar en BigQuery, haz clic en settings Seleccionar motor de consultas y, luego, en BigQuery. El botón Ejecutar consulta cambia a Ejecutar en BigQuery.
En la tabla Resultados de la página Estadísticas de observabilidad, haz clic en add_alert Crear alerta.
La página Estadísticas de observabilidad muestra la ventana Crear una política de alertas de SQL, que muestra tu consulta en la sección Consulta en SQL.
En la sección Condición de alerta , configura la condición y la programación de tu política de alertas.
Configura los detalles de la alerta de tu política de alertas.
Agrega canales de notificaciones y configura el contenido de las notificaciones, como una línea de asunto personalizada.
Opcional: Agrega etiquetas de política de alertas y documentación.
Haz clic en Siguiente.
Revisa tu política de alertas y, luego, créala haciendo clic en Guardar.
API de Cloud Monitoring
Usa el alertPolicies.create
método para crear políticas de alertas de forma programática. El
Condition
tipo de tu política de alertas debe ser
MonitoringQueryLanguageCondition, que es una instancia de
SqlCondition.
Este tipo de condición permite que las condiciones de tu política de alertas se definan con SQL.
Para definir la programación, establece un valor periodicity para uno de los campos minutes, hours o days. Por ejemplo, si deseas que la consulta se ejecute cada 12 horas, establece la periodicidad del campo hours en 12.
Para definir la condición, usa los siguientes campos:
boolean_test: Configura la política de alertas para que se cumpla su condición cuando una fila de una columna booleana en la tabla de resultados de la consulta contenga un valor verdadero.row_count_test: Configura la política de alertas para que se cumpla su condición cuando la cantidad de filas en la tabla de resultados de la consulta cumpla con un umbral determinado.
Para obtener una lista completa de campos y definiciones, consulta
SqlCondition en la documentación de la API de Cloud Monitoring.
Para obtener más información sobre la API de Monitoring para políticas de alertas, consulta Administra las políticas de alertas con la API.
Terraform
Instala y configura Terraform para tu proyecto. Para las configuraciones de App Hub, selecciona el proyecto host o el proyecto de administración de App Hub.
En Cloud Shell, ve al directorio que contiene tu configuración de Terraform.
En tu configuración de Terraform, configura una instancia del google_monitoring_alert_policy, incluido condition_sql.
En Cloud Shell, ingresa
terraform apply.
Para modificar tu política de alertas, realiza los cambios y vuelve a aplicar la configuración de Terraform. Para obtener más información, consulta Administra políticas de alertas con Terraform.
Para obtener información general sobre el uso de Google Cloud con Terraform, consulta Terraform con Google Cloud.
Limitaciones
- Puedes tener una condición por política de alertas basada en SQL.
- Las políticas de alertas basadas en SQL no pueden consultar una vista de análisis.
Las consultas emitidas por políticas de alertas basadas en SQL fallan cuando su tiempo de ejecución supera los cinco minutos.
Hay un retraso de hasta siete minutos, más el tiempo de ejecución de la consulta, entre el momento en que se programa una consulta y el momento en que se crea un incidente.
Para obtener una lista completa de los límites asociados con las políticas de alertas, consulta Límites de Monitoring.
Precios
Para obtener información sobre los precios, consulta los siguientes documentos:
- Precios de BigQuery
- Las secciones de Cloud Logging y Cloud Monitoring de la página Precios de Google Cloud Observability
¿Qué sigue?
Para obtener información sobre cómo crear gráficos a partir de tus datos de Estadísticas de observabilidad, consulta Grafica los resultados de las consultas con Estadísticas de observabilidad.
Para obtener información sobre la administración de incidentes para estas políticas de alertas, consulta Incidentes para políticas de alertas basadas en SQL.