En este documento, se explica cómo crear una política de alertas para supervisar los resultados de una consulta que ejecutas en Observability Analytics. 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 Observability Analytics 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 de BigQuery vinculado. Por este motivo, estas consultas de SQL solo pueden consultar vistas de registros. No pueden consultar las vistas de Analytics.
Para obtener información general sobre Observability Analytics, consulta Cómo consultar y analizar registros con Observability Analytics.
Cómo funcionan las políticas de alertas
Una política de alertas describe las circunstancias en las que deseas recibir alertas y cómo quieres que se te notifique sobre una alerta. Existen tres enfoques diferentes que puedes usar para recibir notificaciones cuando aparezcan 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 las entrada de registro a lo largo del tiempo. Sin embargo, no son tan eficaces si esperas solo unos pocos eventos.
Para supervisar el análisis agregado de los datos de entrada de registro, combina el análisis de observabilidad con las políticas de alertas. En esta situación, actualizas un bucket de registros para usar las Estadísticas de observabilidad y creas un conjunto de datos de BigQuery vinculado para ese bucket de registros. A continuación, usarás Observability Analytics, que admite consultas en SQL, para consultar una vista de registros en el bucket de registros. Por último, crearás 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 una alerta.
La programación define la frecuencia con la que 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 configuras la programación en 60 minutos, la consulta se ejecutará cada 60 minutos con una ventana de visualización que selecciona los 60 minutos de datos más recientes.
Las políticas de alertas también contienen una lista de canales de notificación. Cuando se cumple la condición de la política de alertas, Cloud Monitoring crea una alerta y, luego, envía notificaciones sobre la alerta a través de estos canales. Una alerta es un registro de los datos que provocaron que se cumpliera la condición, junto con otra información pertinente. Esta información puede ayudarte a solucionar los problemas que causaron la alerta. Puedes ver la alerta con la consola de Google Cloud .
Tipos de evaluación para las 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. La consulta escribetrueen la columnanotifycuando ese porcentaje supera el 25%. A continuación, crea una condición, establece el tipo en Booleano y configura 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 de BigQuery vinculado. Los conjuntos de datos vinculados de BigQuery permiten que BigQuery lea tus datos de registro y que ejecutes funciones de BigQuery en los datos que devuelve tu consulta en SQL.
Cuando una política de alertas ejecuta una consulta en SQL, esa consulta se ejecuta en el motor de BigQuery del proyecto Google Cloud 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 reservas 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 de recepción 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. Las estadísticas de observabilidad ejecutan la consulta en SQL de la política de alertas a las 13:30. Para que se incluya en la consulta, una entrada de registro debe cumplir con los siguientes criterios:
- La marca de tiempo recibida debe estar entre las 12:30 p.m. y la 1:30 p.m.
- La marca de tiempo debe estar entre las 12:15 p.m. y la 1:45 p.m.
Cuando ejecutas una consulta desde la interfaz de Observability Analytics, todas las entradas de registro del 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 alertas
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 darle tiempo a Cloud Logging a indexar 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 2:00 p.m., Estadísticas de observabilidad no ejecutará la consulta en SQL hasta las 2:05 p.m.
Si se cumple la condición de alerta después de que se ejecuta la consulta, la alerta puede tardar hasta dos minutos adicionales en propagarse por el sistema.
Errores en las consultas
Las consultas que emiten las 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 registre un error.
Antes de comenzar
En esta sección, se supone que actualizaste tu bucket de registros para usar Análisis de observabilidad, de modo que puedas consultar y ver tus datos de registro con la página de Análisis de observabilidad. También se supone que ya creaste un conjunto de datos vinculado de BigQuery en 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) en tu proyecto - 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 Monitoring Service (
roles/monitoring.notificationServiceAgent) en tu proyecto. - Visualizador de datos de BigQuery (
roles/bigquery.dataViewer) en tu conjunto de datos de BigQuery vinculado
Si no existe la cuenta de servicio de Monitoring, consulta Solución de problemas: No hay una cuenta de servicio de Monitoring.
- Agente de Monitoring Service (
- Configura los canales de notificación que deseas usar para recibir notificaciones de alertas. 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, haz lo siguiente:
Console
-
En la Google Cloud consola, ve a la página manage_search Estadísticas de observabilidad:
Ir a Estadísticas de observabilidad
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Logging.
En la página Observability Analytics, 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 registros, consulta Cómo consultar una vista de registros.
En la barra de herramientas, haz clic en Ejecutar en BigQuery.
Observability Analytics 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 Observability Analytics, haz clic en add_alert Crear alerta.
En la página Estadísticas de observabilidad, se muestra la ventana Create sql alert policy, en la que se muestra tu consulta en SQL en la sección SQL query.
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 un asunto personalizado.
Opcional: Agrega etiquetas de política de alertas y documentación.
Haz clic en Siguiente.
Revisa tu política de alertas y, luego, haz clic en Guardar para crearla.
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 recurso google_monitoring_alert_policy, incluido condition_sql.
En Cloud Shell, ingresa
terraform apply.
Para modificar tu política de alertas, realiza los cambios y, luego, 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, consultaTerraform con Google Cloud.
REST
Usa el método alertPolicies.create para crear políticas de alertas de forma programática. El tipo Condition 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 de la tabla de resultados de la consulta alcance un umbral determinado.
Para obtener una lista completa de los campos y las 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 las políticas de alertas, consulta Administra las políticas de alertas con la API.
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 que emiten las políticas de alertas basadas en SQL fallan cuando su tiempo de ejecución supera los cinco minutos.
Hay una demora 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 una alerta.
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 Observability Analytics, consulta Cómo generar gráficos con los resultados de las consultas de Observability Analytics.
Para obtener información sobre cómo administrar las alertas de estas políticas de alertas, consulta Alertas para políticas de alertas basadas en SQL.