En este documento, se explica cómo crear una política de alertas para supervisar los resultados
de una consulta que ejecutas en Log Analytics. Estas consultas están escritas 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 de un período determinado tengan una gravedad de ERROR
.
Las políticas de alertas que creas desde la página Análisis de registros 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.
Para obtener información general sobre el Análisis de registros, consulta Consulta y analiza registros con el Análisis de registros.
Cómo funcionan las políticas de alertas
Una política de alertas describe las circunstancias en las que quieres recibir alertas y cómo quieres que se te notifique sobre un incidente. 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 los eventos en los datos de tus 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 solo esperas unos pocos eventos.
Para supervisar el análisis agregado de los datos de entrada de registro, combina Log Analytics con las políticas de alertas. En esta situación, actualizas un bucket de registros para usar el Análisis de registros y creas un conjunto de datos de BigQuery vinculado para ese bucket de registros. A continuación, usarás Log Analytics, que admite consultas de SQL, para consultar una vista de registro en el bucket de registros. Por último, debes crear la política de alertas para supervisar los resultados de la consulta 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 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 en 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 solo las entradas de registro 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 un período de visualización que selecciona los 60 minutos más recientes de las entradas de registro.
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 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 provocaron que se cumpliera la condición junto 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.
Tipos de evaluación para las políticas de alertas basadas en 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, configura una condición, selecciona el Umbral de recuento de filas y establece 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 una 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 escribentrue
en la columnanotify
cuando ese porcentaje supera el 25%. A continuación, crea una condición, establece el tipo en Booleano y configúrala para supervisar la columnanotify
.
Las políticas de alertas que supervisan un resultado de consulta en SQL deben tener solo una condición.
Políticas de alertas y BigQuery
Cuando una política de alertas ejecuta una consulta en 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, el bucket de registros que aloja la vista de registro debe configurarse para tener un conjunto de datos de BigQuery vinculado. Los conjuntos de datos vinculados permiten que BigQuery lea los datos del bucket de registros y te permiten realizar funciones de BigQuery en los datos que muestra tu consulta en SQL.
Antes de comenzar
-
Para obtener los permisos que necesitas para usar Log Analytics, pídele a tu administrador que te otorgue los siguientes roles de IAM en tus buckets de registros 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 de un proyecto, usa el Descriptor de acceso de vista de registros (
roles/logging.viewAccessor
). -
Para consultar registros en una vista de registros específica, haz lo siguiente:
Crea una política de IAM para la vista de registros o restringe el rol de Acceso a la vista de registros (
roles/logging.viewAccessor
) a una vista de registros determinada. Para obtener más información, consulta Controla el acceso a una vista de registro.
-
Para consultar los buckets de registros
- En el caso de las vistas de registro que deseas consultar, ve a la página Almacenamiento de registros y verifica que los buckets de registros que almacenan esas vistas de registro estén actualizados para usar el Análisis de registros. Si es necesario, actualiza el bucket de registros.
- Para habilitar la ejecución de consultas en ranuras reservadas de BigQuery, haz lo siguiente:
- Si el bucket de registros que planeas consultar no tiene un conjunto de datos vinculado, crea uno para él.
- Configura ranuras reservadas de BigQuery y asígnales a tu proyecto de Google Cloud.
-
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 -
SqlAlertWriter de registro (
roles/logging.sqlAlertWriter
) en tu proyecto -
Usuario de trabajo de BigQuery (
roles/bigquery.jobUser
) en tu proyecto -
Visualizador de datos de BigQuery (
roles/bigquery.dataViewer
) en tu conjunto de datos vinculado
Para obtener información sobre cómo otorgar acceso a un conjunto de datos, consulta Otorga acceso a un conjunto de datos.
-
Editor de Monitoring (
Asegúrate de que la cuenta de servicio de Monitoring exista y que tenga los siguientes roles:
- Rol de agente de servicio de supervisión (
monitoring.notificationServiceAgent
) en tu proyecto. - Rol de Visualizador de datos de BigQuery (
roles/bigquery.dataViewer
) en tu conjunto de datos vinculado
Si la cuenta de servicio de supervisión no existe, consulta Solución de problemas: No hay una cuenta de servicio de supervisión.
- Rol de agente de servicio de supervisión (
- Configura los canales de notificaciones que deseas usar para recibir cualquier notificación 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.
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.
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
-
En la consola de Google Cloud, ve a la página Análisis de registros:
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Logging.
En la página Log Analytics, en el editor de consultas, ingresa una consulta en SQL para una vista de registro.
Para obtener más información sobre cómo escribir consultas de SQL para vistas de registro, consulta Cómo consultar una vista de registro.
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 settings Select query engine y, luego, en BigQuery. El botón Ejecutar consulta cambia a Ejecutar en BigQuery.
En la tabla Resultados de la página Log Analytics, haz clic en add_alert Crear alerta.
En la página Análisis de registros, se muestra la ventana Create sql alert policy, que muestra tu consulta 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.
Opcional: Agrega etiquetas de políticas de alertas y documentación.
Agrega canales de notificaciones y, luego, haz clic en Siguiente.
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 se definan con SQL.
Para definir el programa,
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 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
Cuando una política de alertas ejecuta una consulta en SQL programada, introduce una demora de 15 minutos para permitir 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 en 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 Monitoring.
Precios
Para obtener información sobre los precios, consulta los siguientes documentos:
- Precios de BigQuery
- Registro de Cloud en la documentación de precios de la Observabilidad de Google Cloud
- Cloud Monitoring en la documentación de precios de la Observabilidad de Google Cloud
¿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.
Para obtener información sobre cómo administrar los incidentes de estas políticas de alertas, consulta Incidentes de las políticas de alertas basadas en SQL.