Supervisa los resultados de tu consulta en SQL con una política de alertas

En este documento, se explica cómo crear una política de alertas para supervisar los resultados de una consulta en SQL. La política de alertas te notifica cuando el resultado satisfaga las condiciones que especifiques. Por ejemplo, podrías 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 tienen una gravedad de ERROR.

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 tus datos de entrada de registro, puedes crear un métrica basada en registros y, luego, crear una política de alertas para supervisar métrica Estos tipos de políticas de alertas son eficaces cuando deseas supervisar las tendencias en los datos de entradas de registro a lo largo del tiempo. Sin embargo, no son tan eficaces si solo esperas unos pocos eventos.

  • Para realizar un análisis agregado de tus datos de entrada de registro y, luego, supervisar los resultados, escribe una consulta en SQL en el Análisis de registros para analizar tus datos de entrada de registro. Luego, crear una política de alertas para supervisar la tabla de resultados de la consulta. 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 quieres evaluar a una persona de registro y no es necesario supervisar valores exactos, crear políticas de alertas basadas en registros que usan Lenguaje de consulta de Logging.

En el resto de este documento, se describe cómo usar las políticas de alertas basadas en SQL.

Para obtener información general sobre el Análisis de registros, consulta Descripción general de consulta y visualización de registros.

Cómo funcionan las políticas de alertas

Una política de alertas describe las circunstancias en las que deseas estar y cómo quieres que te notifiquen sobre un incidente. Una política de alertas puede supervisar los resultados de una consulta en SQL. Cuando el resultado de la consulta cumple con la condición de la política de alertas, Cloud Monitoring crea un incidente y, luego, envía notificaciones sobre él a través de los canales de notificación.

Un incidente es un registro de los datos que provocaron que la condición reunirse con otra información relevante. Esta información puede ayudarte a solucionar los problemas que causaron el incidente. Puedes ver el incidente con la consola de Google Cloud. Para obtener más información, consulta Incidencias de 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 un programa:

  • La condición contiene la búsqueda, que es una consulta de SQL que consulta una vista de registro. La condición también define las circunstancias en las que el resultado de la consulta hace que Monitoring cree un incidente.

  • El programa define la frecuencia con la que la política de alertas ejecuta su consulta. El programa también define el tamaño de la ventana de visualización, que es un filtro. que selecciona únicamente las entradas de registro que se recibidos desde la última vez que se evaluó la consulta. Por ejemplo, si Se establece el programa en 60 minutos y, luego, se ejecuta la consulta. cada 60 minutos con una ventana de visualización que selecciona los 60 más recientes minutos de entradas de registro.

Tipos de evaluación para las políticas de alertas de SQL

Las condiciones que supervisan un resultado de 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 Umbral de recuento de filas y establécelo en 50.

  • Booleano: La condición se cumple cuando una columna booleana específica en 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 calcule el porcentaje de entradas de registro con nivel de gravedad ERROR. Los resultados de la consulta escriben true en la columna notify cuando ese porcentaje supera el 25%. Luego, creas una condición, estableces el tipo en Boolean y para supervisar la columna notify.

Las políticas de alertas que supervisan un resultado de consulta SQL solo deben tener una condición.

Políticas de alertas y BigQuery

Cuando una política de alertas ejecuta una consulta de SQL, esta se ejecuta con ranuras reservadas de BigQuery en el proyecto de Google Cloud en el que se define la política de alertas. Para obtener más información, consulta Trabaja con reservas de ranuras.

Para que una política de alertas use los espacios reservados de BigQuery para consultar una vista de registro, esa vista de registro debe estar configurada para tener un conjunto de datos vinculado. Vinculado Los conjuntos de datos te permiten realizar funciones de BigQuery en los datos que devuelve tu consulta en SQL. Para obtener más información, consulta Cómo crear un conjunto de datos vinculado de BigQuery.

Antes de comenzar

  1. Para obtener los permisos que necesitas para usar el Análisis de registros, solicita a tu administrador que te otorgue el los siguientes roles de IAM en tus buckets o vistas de registros:

    • Para consultar los buckets de registros _Required y _Default, usa el visor de registros (roles/logging.viewer).
    • Para consultar todas las vistas de registro en un proyecto, haz lo siguiente: Acceso de vista de registros (roles/logging.viewAccessor).
    • Para consultar registros en una vista de registro específica, haz lo siguiente: Crea una política de IAM para la vista de registros o restringe el rol Acceso de vista de registros (roles/logging.viewAccessor) a una vista de registro determinada. Para obtener más información, consulta Controla el acceso a una vista de registro.

    Para obtener información sobre roles adicionales, consulta Roles de registro.
  2. Para las vistas de registros que deseas consultar, ve a la página Almacenamiento de registros y verificar que los buckets de registros que almacenan esas vistas de registro se actualicen usar el Análisis de registros. Si es necesario, actualiza el bucket de registros.
  3. En la consola de Google Cloud, ve a la página Explorador de registros:

    Ir al Almacenamiento de registros

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Logging.

  4. Para habilitar la ejecución de consultas en ranuras reservadas de BigQuery, haz lo siguiente: lo siguiente:
    1. Si el bucket de registros que quieres consultar no tiene un conjunto de datos vinculado, Luego, crea un conjunto de datos vinculado. por él.
    2. Configura ranuras reservadas de BigQuery y asignarlos a tu proyecto de Google Cloud.

  5. A fin de obtener los permisos que necesitas para crear y administrar políticas de alertas basadas en SQL, solicita a tu administrador que te otorgue el los siguientes roles de IAM:

    Para obtener información sobre cómo otorgar acceso a un conjunto de datos, consulta Cómo otorgar acceso a un conjunto de datos.

  6. Asegúrate de que la cuenta de servicio de Monitoring exista y que tenga los siguientes roles:

    1. Rol de agente de servicio de Monitoring (monitoring.notificationServiceAgent) en tu proyecto.
    2. Rol de 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: Ausencia de una cuenta de servicio de Monitoring.

  7. Configura los canales de notificaciones que deseas usar para recibir notificaciones de incidentes. Para fines de redundancia, te recomendamos lo siguiente: crear varios tipos de canales de notificaciones. Para obtener más información, consulta Crea y administra 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:

Consola de Google Cloud

  1. En la consola de Google Cloud, ve a la página Análisis de registros:

    Ir a Análisis de registros

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Logging.

  2. En la página Log Analytics, en el editor de consultas, ingresa una consulta de SQL para una vista de registro.

    Para más información sobre cómo escribir consultas SQL para vistas de registro, visita Consulta una vista de registro.

  3. En la barra de herramientas, haz clic en Run on BigQuery.

    Log Analytics ejecuta tu consulta en el motor de BigQuery y muestra los resultados en la tabla Resultados.

    Si no aparece la opción Run on BigQuery, haz clic en Select query engine y, luego, en BigQuery. El botón Ejecutar consulta cambia a Ejecutar en BigQuery.

  4. En la tabla Resultados de la página Log Analytics, haz clic en  Crear alerta.

    En la página Análisis de registros, se muestra la ventana Crear política de alertas de SQL, muestra tu consulta en la sección Consulta en SQL.

  5. En la sección Condición de alerta, configura la condición y la programación de tu política de alertas.

  6. Configura los detalles de la alerta de tu política de alertas.

    1. Opcional: Agrega etiquetas de políticas de alertas y documentación.

    2. Agrega canales de notificaciones y, luego, haz clic en Siguiente.

  7. Revisa tu política de alertas y, luego, haz clic en Guardar para crearla.

API de Cloud Monitoring

Usa el método alertPolicies.create para crear políticas de alertas de manera programática. El tipo Condition de tu política de alertas debe ser conditionSql, que es una instancia de SqlCondition. Este tipo de condición permite que las condiciones de tu política de alertas que se definirá con SQL.

Para definir el cronograma, establece un valor de periodicity para uno de los valores de 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 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 según la API.

Limitaciones

Cuando una política de alertas ejecuta una consulta en SQL programada la política de alertas introduce un retraso de 15 minutos para que las entradas de registro se propaguen al bucket de registros. Si las entradas de registro tardan más de 15 minutos en llegar, la política de alertas no las evalúa.

Esta introducción de un retraso de 15 minutos afecta el tiempo entre el momento en que se genera una entrada de registro y el momento en que Monitoring detecta cuando se cumple una condición. Por ejemplo, supongamos que tienes una consulta de SQL programada para ejecutarse cada 30 minutos. Cuando la política de alertas evalúa la condición de forma periódica, consulta las entradas de registro con marcas de tiempo de entre 15 y 45 minutos atrás.

Para conocer los límites asociados con las políticas de alertas, consulta Límites de supervisión.

Precios

Para obtener información sobre los precios, consulta los siguientes documentos:

¿Qué sigue?

Si deseas obtener información para crear gráficos a partir de tus datos de Log Analytics, consulta Cómo graficar los resultados de las consultas con Log Analytics.