Alertas de registro en Azure MonitorLog alerts in Azure Monitor

IntroducciónOverview

Las alertas de registro son uno de los tipos de alerta que se admiten en Alertas de Azure.Log alerts are one of the alert types that are supported in Azure Alerts. Las alertas de registro permiten a los usuarios usar una consulta de Log Analytics para evaluar los registros de los recursos según una frecuencia establecida y activar una alerta en función de los resultados.Log alerts allow users to use a Log Analytics query to evaluate resources logs every set frequency, and fire an alert based on the results. Las reglas pueden desencadenar una o varias acciones mediante grupos de acciones.Rules can trigger one or more actions using Action Groups.

Nota

Los datos de registro de un área de trabajo de Log Analytics se pueden enviar al almacén de métricas de Azure Monitor.Log data from a Log Analytics workspace can be sent to the Azure Monitor metrics store. Las alertas de métricas tienen diferentes comportamientos, lo que puede ser más conveniente en función de los datos con los que esté trabajando.Metrics alerts have different behavior, which may be more desirable depending on the data you are working with. Para saber más sobre cómo se pueden enrutar los registros a las métricas, vea Alerta de métricas para los registros.For information on what and how you can route logs to metrics, see Metric Alert for Logs.

Nota

Actualmente no hay cargos adicionales por la versión 2020-05-01-preview de la API y las alertas de registro orientadas a los recursos.There are currently no additional charges for the API version 2020-05-01-preview and resource centric log alerts. Los precios de las características en versión preliminar se anunciarán en el futuro y se avisará antes del inicio de la facturación.Pricing for features that are in preview will be announced in the future and a notice provided prior to start of billing. Si decide seguir usando la nueva versión de la API y las alertas de registro orientadas a los recursos después del período de aviso, se le facturará según la tarifa aplicable.Should you choose to continue using new API version and resource centric log alerts after the notice period, you will be billed at the applicable rate.

Requisitos previosPrerequisites

Las alertas de registro ejecutan consultas sobre los datos de Log Analytics.Log alerts run queries on Log Analytics data. En primer lugar, debe comenzar a recopilar datos de registro y consultar estos datos de registro para detectar problemas.First you should start collecting log data and query the log data for issues. Puede usar el tema de ejemplos de consultas de alertas en Log Analytics para comprender qué puede detectar, o bien puede empezar a escribir su propia consulta.You can use the alert query examples topic in Log Analytics to understand what you can discover or get started on writing your own query.

El colaborador de supervisión de Azure es un rol común necesario para crear, modificar y actualizar las alertas de registro.Azure Monitoring Contributor is a common role that is needed for creating, modifying, and updating log alerts. También se necesitan derechos de acceso y de ejecución de consulta para los registros de recursos.Access & query execution rights for the resource logs are also needed. El acceso parcial a los registros de recursos puede producir errores en las consultas o devolver resultados parciales.Partial access to resource logs can fail queries or return partial results. Más información sobre la configuración de alertas de registro en Azure.Learn more about configuring log alerts in Azure.

Nota

Las alertas de registro de Log Analytics se administraban antes mediante la versión Alert API heredada de Log Analytics.Log alerts for Log Analytics used to be managed using the legacy Log Analytics Alert API. Obtenga más información sobre cómo cambiar a la versión ScheduledQueryRules API actual.Learn more about switching to the current ScheduledQueryRules API.

Definición de la evaluación de la consultaQuery evaluation definition

La definición de la condición de las reglas de búsqueda de registros comienza con estos puntos:Log search rules condition definition starts from:

  • ¿Qué consulta debo ejecutar?What query to run?
  • ¿Cómo uso los resultados?How to use the results?

En las secciones siguientes se describen los distintos parámetros que se pueden usar para establecer la lógica anterior.The following sections describe the different parameters you can use to set the above logic.

Consulta de registroLog query

La consulta de Log Analytics se utiliza para evaluar la regla.The Log Analytics query used to evaluate the rule. Los registros devueltos por esta consulta se usan para determinar si se desencadena una alerta.The results returned by this query are used to determine whether an alert is to be triggered. El ámbito de la consulta puede ser:The query can be scoped to:

  • Un recurso específico, como una máquina virtual.A specific resource, such as a virtual machine.
  • Un recurso a gran escala, como una suscripción o un grupo de recursos.An at scale resource, such as a subscription or resource group.
  • Varios recursos, mediante el uso de una consulta entre recursos.Multiple resources using cross-resource query.

Importante

Las consultas de alerta tienen restricciones para garantizar un rendimiento óptimo y la pertinencia de los resultados.Alert queries have constraints to ensure optimal performance and the relevance of the results. Obtenga más información aquí.Learn more here.

Importante

Las consultas orientadas a los recursos y las consultas entre recursos solo se admiten con la versión scheduledQueryRules API actual.Resource centric and cross-resource query are only supported using the current scheduledQueryRules API. Si usa la versión Alert API de Log Analytics heredada, tendrá que cambiar a la nueva.If you use the legacy Log Analytics Alert API, you will need to switch. Más información sobre el cambioLearn more about switching

Intervalo de tiempo de consultaQuery time Range

El intervalo de tiempo se establece en la definición de la condición de la regla.Time range is set in the rule condition definition. En las áreas de trabajo y en Application Insights, se llama Período.In workspaces and Application Insights, it's called Period. En los demás tipos de recursos, se llama Reemplazar intervalo de tiempo de consulta.In all other resource types, it's called Override query time range.

Al igual que en el análisis de registros, el intervalo de tiempo limita los datos de consulta al intervalo especificado.Like in log analytics, the time range limits query data to the specified range. Este intervalo se aplica incluso si se utiliza el comando ago en la consulta.Even if ago command is used in the query, the time range will apply.

Por ejemplo, una consulta examina 60 minutos si el intervalo de tiempo es de 60 minutos, aunque el texto contenga ago(1d) .For example, a query scans 60 minutes, when time range is 60 minutes, even if the text contains ago(1d). El intervalo de tiempo y el filtrado de tiempo de la consulta deben coincidir.The time range and query time filtering need to match. En el caso del ejemplo, cambiar el valor de Período / Reemplazar intervalo de tiempo de consulta a un día funcionaría según lo esperado.In the example case, changing the Period / Override query time range to one day, would work as expected.

MeasureMeasure

Las alertas de registro convierten el registro en valores numéricos que se pueden evaluar.Log alerts turn log into numeric values that can be evaluated. Se pueden medir dos elementos diferentes:You can measure two different things:

Recuento de las filas de la tabla de resultadosCount of the results table rows

El recuento de resultados es la medida predeterminada.Count of results is the default measure. Es la medida perfecta para trabajar con eventos como registros de eventos de Windows, syslog o excepciones de aplicaciones.Ideal for working with events such as Windows event logs, syslog, application exceptions. Se desencadena cuando se producen o no se producen entradas de registro en el período de tiempo evaluado.Triggers when log records happen or doesn't happen in the evaluated time window.

Las alertas de registro funcionan mejor cuando se quieren detectar datos en el registro.Log alerts work best when you try to detect data in the log. No funcionan tan bien cuando se quiere detectar la falta de datos en los registros.It works less well when you try to detect lack of data in the logs. Por ejemplo, cuando se trata de alertas sobre el latido de máquinas virtuales.For example, alerting on virtual machine heartbeat.

En el caso de las áreas de trabajo y Application Insights, se llama Basada en con la selección Número de resultados.For workspaces and Application Insights, it's called Based on with selection Number of results. En los demás tipos de recursos, se denomina Medida con la selección Filas de la tabla.In all other resource types, it's called Measure with selection Table rows.

Nota

Dado que los registros son datos semiestructurados y tienen intrínsecamente mayor latencia que la métrica, puede que las alertas no se activen al intentar detectar la falta de datos en los registros; en este caso, puede usar alertas de métricas.Since logs are semi-structured data, they are inherently more latent than metric, you may experience misfires when trying to detect lack of data in the logs, and you should consider using metric alerts. Puede enviar datos al almacén de métricas desde los registros mediante alertas de métricas para registros.You can send data to the metric store from logs using metric alerts for logs.

Ejemplo de caso de uso de recuento de filas de la tabla de resultadosExample of results table rows count use case

Desea saber cuándo respondió la aplicación con el código de error 500 (error interno del servidor).You want to know when your application responded with error code 500 (Internal Server Error). Crearía una regla de alertas con los detalles siguientes:You would create an alert rule with the following details:

  • Consulta:Query:
requests
| where resultCode == "500"
  • Período de tiempo: 15 minutosTime period: 15 minutes
  • Frecuencia de la alerta: 15 minutosAlert frequency: 15 minutes
  • Valor del umbral: mayor que 0Threshold value: Greater than 0

Con esta configuración, la regla de alertas supervisa si hay solicitudes que terminen con el código de error 500.Then alert rules monitors for any requests ending with 500 error code. La consulta se ejecuta cada 15 minutos y busca en los últimos 15 minutos.The query runs every 15 minutes, over the last 15 minutes. Si se encuentra aunque sea un registro, se activa la alerta y se desencadenan las acciones configuradas.If even one record is found, it fires the alert and triggers the actions configured.

Cálculo de medida basado en una columna numérica (como el valor del contador de CPU)Calculation of measure based on a numeric column (such as CPU counter value)

En el caso de las áreas de trabajo y Application Insights, se llama Basada en con la selección Unidades métricas.For workspaces and Application Insights, it's called Based on with selection Metric measurement. En los demás tipos de recursos, se denomina Medida con la selección de cualquier nombre de columna de número.In all other resource types, it's called Measure with selection of any number column name.

Tipo de agregaciónAggregation type

El cálculo se realiza en varios registros para agregarlos a un único valor numérico.The calculation that is done on multiple records to aggregate them to one numeric value. Por ejemplo:For example:

  • Recuento devuelve el número de registros de la consulta.Count returns the number of records in the query
  • Media devuelve el promedio de la columna de la medida Granularidad de agregación definida.Average returns the average of the measure column Aggregation granularity defined.

En las áreas de trabajo y Application Insights, solo se admite en el tipo de medida Unidades métricas.In workspaces and Application Insights, it's supported only in Metric measurement measure type. El resultado de la consulta debe contener una columna denominada AggregatedValue que proporcione un valor numérico después de una agregación definida por el usuario.The query result must contain a column called AggregatedValue that provide a numeric value after a user-defined aggregation. En los demás tipos de recursos, el valor de Tipo de agregación se selecciona a partir del campo con ese nombre.In all other resource types, Aggregation type is selected from the field of that name.

Granularidad de agregaciónAggregation granularity

Determina el intervalo que se usa para agregar varios registros en un solo valor numérico.Determines the interval that is used to aggregate multiple records to one numeric value. Por ejemplo, si ha especificado 5 minutos, los registros se agruparán por intervalos de 5 minutos según el valor especificado en Tipo de agregación.For example, if you specified 5 minutes, records would be grouped by 5-minute intervals using the Aggregation type specified.

En las áreas de trabajo y Application Insights, solo se admite en el tipo de medida Unidades métricas.In workspaces and Application Insights, it's supported only in Metric measurement measure type. El resultado de la consulta debe contener bin(), que establece el intervalo de los resultados de la consulta.The query result must contain bin() that sets interval in the query results. En los demás tipos de recursos, el campo que controla esta configuración se denomina Granularidad de agregación.In all other resource types, the field that controls this setting is called Aggregation granularity.

Nota

Como bin() puede generar intervalos de tiempo distintos, el servicio de alerta convertirá automáticamente la función bin() en la función bin_at() con el valor adecuado en tiempo de ejecución para garantizar resultados con un punto fijo.As bin() can result in uneven time intervals, the alert service will automatically convert bin() function to bin_at() function with appropriate time at runtime, to ensure results with a fixed point.

División por dimensiones de alertaSplit by alert dimensions

Puede dividir las alertas por columnas de número o de cadena en alertas independientes mediante la agrupación en combinaciones únicas.Split alerts by number or string columns into separate alerts by grouping into unique combinations. Al crear alertas orientadas a recursos a gran escala (con un ámbito de suscripción o grupo de recursos), puede dividirlas por columna de identificador de recurso de Azure.When creating resource-centric alerts at scale (subscription or resource group scope), you can split by Azure resource ID column. La división según la columna de identificador de recurso de Azure cambiará el destino de la alerta al recurso especificado.Splitting on Azure resource ID column will change the target of the alert to the specified resource.

En las áreas de trabajo y Application Insights, solo se admite en el tipo de medida Unidades métricas.In workspaces and Application Insights, it's supported only in Metric measurement measure type. El campo se denomina Agregado en.The field is called Aggregate On. Se limita a tres columnas.It's limited to three columns. Si hay más de tres columnas de agrupación en la consulta, pueden producirse resultados inesperados.Having more than three groups by columns in the query could lead to unexpected results. En los demás tipos de recursos, se configura en la sección Split by dimensions (Dividir por dimensiones) de la condición (se limita a seis divisiones).In all other resource types, it's configured in Split by dimensions section of the condition (limited to six splits).

Ejemplo de división por dimensiones de alertaExample of splitting by alert dimensions

Por ejemplo, supongamos que desea supervisar los errores de varias máquinas virtuales que ejecutan la aplicación o el sitio web en un grupo de recursos específico.For example, you want to monitor errors for multiple virtual machines running your web site/app in a specific resource group. Puede hacerlo mediante una regla de alertas de registro, tal como se indica a continuación:You can do that using a log alert rule as follows:

  • Consulta:Query:

    // Reported errors
    union Event, Syslog // Event table stores Windows event records, Syslog stores Linux records
    | where EventLevelName == "Error" // EventLevelName is used in the Event (Windows) records
    or SeverityLevel== "err" // SeverityLevel is used in Syslog (Linux) records
    

    Cuando se usan áreas de trabajo y Application Insights con la lógica de alerta Unidades métricas, es necesario agregar esta línea al texto de la consulta:When using workspaces and Application Insights with Metric measurement alert logic, this line needs to be added to the query text:

    | summarize AggregatedValue = count() by Computer, bin(TimeGenerated, 15m)
    
  • Resource ID Column (Columna de id. de recurso) : _ResourceId (actualmente, la división por la columna de identificador de recurso en las reglas de alertas solo está disponible en las suscripciones y los grupos de recursos)Resource ID Column: _ResourceId (Splitting by resource ID column in alert rules is only available for subscriptions and resource groups currently)

  • Dimensiones/Agregado en:Dimensions / Aggregated on:

    • Equipo = VM1, VM2 (actualmente, no está disponible el filtrado de valores en la definición de reglas de alertas para áreas de trabajo y Application Insights;Computer = VM1, VM2 (Filtering values in alert rules definition isn't available currently for workspaces and Application Insights. debe filtrar en el texto de la consulta)Filter in the query text.)
  • Período de tiempo: 15 minutosTime period: 15 minutes

  • Frecuencia de la alerta: 15 minutosAlert frequency: 15 minutes

  • Valor del umbral: mayor que 0Threshold value: Greater than 0

Esta regla supervisa si alguna máquina virtual presentó eventos de error en los últimos 15 minutos.This rule monitors if any virtual machine had error events in the last 15 minutes. Cada máquina virtual se supervisa por separado y desencadena acciones de forma individual.Each virtual machine is monitored separately and will trigger actions individually.

Nota

La división por dimensiones de alerta solo está disponible en la versión scheduledQueryRules API actual.Split by alert dimensions is only available for the current scheduledQueryRules API. Si usa la versión Alert API de Log Analytics heredada, tendrá que cambiar a la nueva.If you use the legacy Log Analytics Alert API, you will need to switch. Más información sobre cómo cambiar.Learn more about switching. Las alertas orientadas a recursos a gran escala solo se admiten en la versión 2020-05-01-preview y versiones posteriores de la API.Resource centric alerting at scale is only supported in the API version 2020-05-01-preview and above.

Definición de la lógica de alertaAlert logic definition

Después de definir la consulta para ejecutar y evaluar los resultados, deberá definir la lógica de alerta y cuándo activar las acciones.Once you define the query to run and evaluation of the results, you need to define the alerting logic and when to fire actions. En las secciones siguientes se describen los distintos parámetros que se pueden usar:The following sections describe the different parameters you can use:

Umbral y operadorThreshold and operator

Los resultados de la consulta se transforman en un número que se compara con el umbral y operador.The query results are transformed into a number that is compared against the threshold and operator.

FrecuenciaFrequency

El intervalo en el que se ejecuta la consulta.The interval in which the query is run. Se puede establecer entre 5 minutos y un día.Can be set from 5 minutes to one day. Debe ser igual o menor que el intervalo de tiempo de consulta para no omitir entradas del registro.Must be equal to or less than the query time range to not miss log records.

Por ejemplo, supongamos que establece el período de tiempo en 30 minutos y la frecuencia en 1 hora.For example, if you set the time period to 30 minutes and frequency to 1 hour. Si la consulta se ejecuta a las 00:00, devuelve registros entre las 23:30 y las 00:00.If the query is run at 00:00, it returns records between 23:30 and 00:00. La próxima vez que se ejecute la consulta será a la 01:00 y devolverá los registros comprendidos entre las 00:30 y la 01:00.The next time the query would run is 01:00 that would return records between 00:30 and 01:00. Por tanto, nunca se evaluarán los registros creados entre las 00:00 y las 00:30.Any records created between 00:00 and 00:30 would never be evaluated.

Número de infracciones que desencadenarán la alertaNumber of violations to trigger alert

Puede especificar el período de evaluación de la alerta y el número de errores necesarios para desencadenarla.You can specify the alert evaluation period and the number of failures needed to trigger an alert. Esto permite definir mejor el tiempo de impacto para desencadenar una alerta.Allowing you to better define an impact time to trigger an alert.

Por ejemplo, si el valor de Granularidad de agregación de la regla se define como "5 minutos", solo se puede desencadenar una alerta si se producen tres errores (15 minutos) en la última hora.For example, if your rule Aggregation granularity is defined as '5 minutes', you can trigger an alert only if three failures (15 minutes) of the last hour occurred. Esta configuración se define mediante la directiva empresarial de la aplicación.This setting is defined by your application business policy.

Estado y resolución de alertasState and resolving alerts

Las alertas de registro no tienen estado.Log alerts are stateless. Las alertas se activan cada vez que se cumple la condición, incluso si se han activado anteriormente.Alerts fire each time the condition is met, even if fired previously. Las alertas activadas no se resuelven.Fired alerts don't resolve. Puede marcar la alerta como cerrada.You can mark the alert as closed. También puede silenciar acciones para evitar que se desencadenen durante un período después de que se active una regla de alertas.You can also mute actions to prevent them from triggering for a period after an alert rule fired.

En áreas de trabajo y Application Insights, esta opción se llama Desactivar alertas.In workspaces and Application Insights, it's called Suppress Alerts. En los demás tipos de recursos, se denomina Silenciar acciones.In all other resource types, it's called Mute Actions.

Consulte este ejemplo de evaluación de alertas:See this alert evaluation example:

TimeTime Evaluación de la condición de registroLog condition evaluation ResultadoResult
00:0500:05 falseFALSE La alerta no se activa.Alert doesn't fire. No se llamó a ninguna acción.No actions called.
00:1000:10 trueTRUE La alerta se desencadena y se llama a los grupos de acciones.Alert fires and action groups called. Estado de nueva alerta ACTIVA.New alert state ACTIVE.
00:1500:15 trueTRUE La alerta se desencadena y se llama a los grupos de acciones.Alert fires and action groups called. Estado de nueva alerta ACTIVA.New alert state ACTIVE.
00:2000:20 falseFALSE La alerta no se activa.Alert doesn't fire. No se llamó a ninguna acción.No actions called. El estado de las alertas anteriores sigue como ACTIVA.Pervious alerts state remains ACTIVE.

Precios y facturación de las alertas de registroPricing and billing of log alerts

La información de precios se encuentra en la página de precios de Azure Monitor.Pricing information is located in the Azure Monitor pricing page. Las alertas de registro aparecen bajo el proveedor de recursos microsoft.insights/scheduledqueryrules con:Log Alerts are listed under resource provider microsoft.insights/scheduledqueryrules with:

  • Las alertas de registro en Application Insights se muestran con el nombre exacto del recurso junto con las propiedades del grupo de recursos y la alerta.Log Alerts on Application Insights shown with exact resource name along with resource group and alert properties.
  • Las alertas de registro de Log Analytics se muestran con el nombre exacto del recurso junto con las propiedades del grupo de recursos y la alerta, cuando se crean mediante scheduledQueryRules API.Log Alerts on Log Analytics shown with exact resource name along with resource group and alert properties; when created using scheduledQueryRules API.
  • Las alertas de registro creadas con la API heredada de Log Analytics no son recursos de Azure con seguimiento y no tienen nombres de recurso únicos.Log alerts created from legacy Log Analytics API aren't tracked Azure Resources and don't have enforced unique resource names. Estas alertas se siguen creando en microsoft.insights/scheduledqueryrules como recursos ocultos, que tienen la estructura de nomenclatura de recursos <WorkspaceName>|<savedSearchId>|<scheduleId>|<ActionId>.These alerts are still created on microsoft.insights/scheduledqueryrules as hidden resources, which have this resource naming structure <WorkspaceName>|<savedSearchId>|<scheduleId>|<ActionId>. Las alertas de registro de la API heredada se muestran con el nombre de recurso oculto anterior junto con las propiedades del grupo de recursos y la alerta.Log Alerts on legacy API are shown with above hidden resource name along with resource group and alert properties.

Nota

Los caracteres de recursos no admitidos como <, >, %, &, \, ?, / se reemplazan por _ en los nombres de recursos ocultos, lo que también se reflejará en la información de facturación.Unsupported resource characters such as <, >, %, &, \, ?, / are replaced with _ in the hidden resource names and this will also reflect in the billing information.

Nota

Las alertas de registro de Log Analytics se solían administrar mediante Alert API de Log Analytics y las plantillas heredadas de búsquedas y alertas guardadas de Log Analytics.Log alerts for Log Analytics used to be managed using the legacy Log Analytics Alert API and legacy templates of Log Analytics saved searches and alerts. Obtenga más información sobre cómo cambiar a la versión ScheduledQueryRules API actual.Learn more about switching to the current ScheduledQueryRules API. Deberá realizar cualquier administración de reglas de alertas mediante la API heredada de Log Analytics hasta que decida cambiar y no pueda usar los recursos ocultos.Any alert rule management should be done using legacy Log Analytics API until you decide to switch and you can't use the hidden resources.

Pasos siguientesNext steps