Share via


Supervisión de máquinas virtuales con Azure Monitor: alertas

Este artículo forma parte de la guía Supervisión de máquinas virtuales y sus cargas de trabajo en Azure Monitor. Las alertas de Azure Monitor notifican al usuario proactivamente sobre datos y patrones interesantes en los datos de supervisión. No hay reglas de alerta preconfiguradas para las máquinas virtuales, pero puede crear las suyas propias en función de los datos recopilados por el agente de Azure Monitor. En este artículo se presentan conceptos de alerta específicos de las máquinas virtuales y las reglas de alerta comunes que usan otros clientes de Azure Monitor.

En este escenario se describe cómo implementar una supervisión completa del entorno de máquina virtual híbrida y de Azure:

Importante

La mayoría de las reglas de alertas tienen un coste que depende del tipo de regla, del número de dimensiones que incluyen y de la frecuencia con que se ejecutan. Antes de crear reglas de alerta, consulte la sección Reglas de alerta en Precios de Azure Monitor.

datos, recopilación

Las reglas de alerta inspeccionan los datos que ya se han recopilado en Azure Monitor. Debe asegurarse de que los datos se recopilan para un escenario determinado antes de poder crear una regla de alertas. Consulte Supervisión de máquinas virtuales con Azure Monitor: recopilación de datos para obtener instrucciones sobre cómo configurar la recopilación de datos para varios escenarios, incluidas todas las reglas de alerta de este artículo.

Azure Monitor proporciona un conjunto de reglas de alertas recomendadas que puede habilitar rápidamente para cualquier máquina virtual de Azure. Estas reglas son un excelente punto de partida para la supervisión básica. Pero por sí solas, no proporcionarán alertas suficientes para la mayoría de las implementaciones empresariales por los siguientes motivos:

  • Las alertas recomendadas solo se aplican a las máquinas virtuales de Azure y no a las máquinas híbridas.
  • Las alertas recomendadas solo incluyen métricas de host y no métricas o registros de invitado. Estas métricas son útiles para supervisar el estado de la propia máquina. Pero ofrecen una visibilidad mínima de las cargas de trabajo y las aplicaciones que se ejecutan en la máquina.
  • Las alertas recomendadas están asociadas a máquinas individuales que crean un número excesivo de reglas de alerta. En lugar de confiar en este método para cada máquina, consulte Escalado de reglas de alertas para ver estrategias sobre el uso de un número mínimo de reglas de alerta para varias máquinas.

Tipos de alerta

Los tipos más comunes de reglas de alertas de Azure Monitor son las alertas de métricas y las alertas de búsqueda de registros. El tipo de regla de alertas que cree para un escenario determinado depende de dónde se encuentran los datos sobre los que genera alertas.

Es posible que haya casos en los que los datos para un escenario de alerta concreto estén disponibles tanto en las métricas como en los registros. Si es así, debe determinar qué tipo de regla usar. También puede tener flexibilidad en la forma de recopilar ciertos datos y dejar que su decisión sobre el tipo de regla de alerta dirija su decisión sobre el método de recopilación de datos.

Alertas de métricas

Usos comunes de las alertas de métricas:

  • Alertar cuando una métrica determinada supera un umbral. Por ejemplo, cuando se consumen muchos recursos de CPU en una máquina.

Orígenes de datos para las alertas de métricas:

  • Métricas de host para máquinas virtuales de Azure, que se recopilan automáticamente
  • Métricas recopiladas por el agente de Azure Monitor del sistema operativo invitado

Alertas de búsqueda de registros

Usos comunes de las alertas de búsqueda de registros:

  • Alertar cuando se encuentra un evento o patrón de eventos concretos del registro de eventos de Windows o Syslog. Estas reglas de alerta normalmente miden las filas de tabla devueltas de la consulta.
  • Alertar según un cálculo de datos numéricos en varias máquinas. Estas reglas de alerta normalmente miden el cálculo de una columna numérica en los resultados de la consulta.

Orígenes de datos para alertas de búsqueda de registros:

  • Todos los datos recopilados en un área de trabajo de Log Analytics

Escalado de reglas de alertas

Dado que es posible que tenga muchas máquinas virtuales que requieran la misma supervisión, no es necesario crear reglas de alerta individuales para cada una. También quiere asegurarse de que hay diferentes estrategias para limitar el número de reglas de alerta que necesita administrar, en función del tipo de regla. Cada una de estas estrategias depende de comprender el recurso de destino de la regla de alertas.

Reglas de alertas de métricas

Las máquinas virtuales admiten varias reglas de alertas de métricas de recursos, como se describe en Supervisión de varios recursos. Esta capacidad le permite crear una única regla de alerta de métricas que se aplique a todas las máquinas virtuales de un grupo de recursos o una suscripción dentro de la misma región.

Comience con las alertas recomendadas y cree una regla correspondiente para cada una mediante la suscripción o un grupo de recursos como recurso de destino. Debe crear reglas duplicadas para cada región si tiene máquinas en varias regiones.

A medida que identifique requisitos para más reglas de alerta de métricas, siga esta misma estrategia utilizando una suscripción o un grupo de recursos como recurso de destino para:

  • Minimice el número de reglas de alerta que necesita administrar.
  • Asegúrese de que se aplican automáticamente a las máquinas nuevas.

Reglas de alerta de búsqueda de registros

Si establece el recurso de destino de una regla de alerta de búsqueda de registros en un equipo específico, las consultas se limitan a los datos asociados a esa máquina, con lo que recibirá alertas individuales. Esta disposición requiere una regla de alerta independiente para cada máquina.

Si establece el recurso de destino de una regla de alerta de búsqueda de registros en un área de trabajo de Log Analytics, tendrá acceso a todos los datos de esa área de trabajo. Por este motivo, puede alertar sobre los datos de todas las máquinas del grupo de trabajo con una sola regla. Esta disposición le ofrece la opción de crear una única alerta para todas las máquinas. A continuación, puede usar dimensiones para crear una alerta independiente para cada máquina.

Por ejemplo, puede que quiera recibir una alerta cuando cualquier máquina cree un evento de error en el registro de eventos de Windows. En primer lugar, tiene que crear una regla de recopilación de datos como se describe en Recopilación de eventos y contadores de rendimiento de máquinas virtuales con el agente de Azure Monitor para enviar estos eventos a la tabla Event en el área de trabajo de Log Analytics. A continuación, cree una regla de alerta que consulte esta tabla utilizando el área de trabajo como recurso de destino y la condición que se muestra en la siguiente imagen.

La consulta devuelve un registro para los mensajes de error de cualquier máquina. Use la opción Dividir por dimensiones y especifique _ResourceId para indicar a la regla que cree una alerta para cada máquina si se devuelven varias máquinas en los resultados.

Screenshot that shows a new log search alert rule with split by dimensions.

Dimensions

En función de la información que desee incluir en la alerta, puede que tenga que dividirla utilizando diferentes dimensiones. En este caso, asegúrese de que las dimensiones necesarias se proyectan en la consulta mediante el operador project o extend. Establezca el valor del campo Columna de id. de recurso en No dividir e incluya todas las dimensiones significativas de la lista. Asegúrese de que la opción Incluir todos los valores futuros está seleccionada, de forma que se incluya cualquier valor devuelto por la consulta.

Screenshot that shows a new log search alert rule with split by multiple dimensions.

Umbrales dinámicos

Una ventaja adicional de usar las reglas de alerta de búsqueda de registros es la posibilidad de incluir lógica compleja en la consulta para determinar el valor de umbral. Puede codificar el umbral de forma rígida, aplicarlo a todos los recursos o calcularlo dinámicamente en función de algún campo o valor calculado. El umbral se aplica a los recursos solo en función de condiciones específicas. Por ejemplo, puede crear una alerta basada en la memoria disponible, pero solo para las máquinas con una cantidad determinada de memoria total.

Reglas de alerta comunes

En la sección siguiente se enumeran las reglas de alertas comunes para las máquinas virtuales en Azure Monitor. Se proporcionan detalles sobre las alertas de métricas y las alertas de búsqueda de registros para cada una. Para saber qué tipo de alerta usar, consulte Tipos de alertas. Si no está familiarizado con el proceso de creación de reglas de alertas en Azure Monitor, consulte las instrucciones para crear una nueva regla de alertas.

Nota:

Los detalles de las alertas de búsqueda de registros que se proporcionan aquí usan los datos recopilados mediante VM Insights, que proporciona un conjunto de contadores de rendimiento comunes para el sistema operativo cliente. Este nombre es independiente del tipo de sistema operativo.

Máquina no disponible

Uno de los requisitos de supervisión más comunes para una máquina virtual es crear una alerta si deja de ejecutarse. El mejor método para esto es crear una regla de alerta de métricas en Azure Monitor mediante la métrica de disponibilidad de la máquina virtual, que se encuentra actualmente en versión preliminar pública. Para ver un tutorial sobre esta métrica, consulte Creación de una regla de alerta de disponibilidad para la máquina virtual de Azure.

Como se describe en Escalado de reglas de alerta, cree una regla de alerta de disponibilidad mediante una suscripción o un grupo de recursos como recurso de destino. La regla se aplica a varias máquinas virtuales, incluidas las nuevas que se crean después de la regla de alerta.

Latido de agente

El latido del agente es ligeramente diferente de la alerta no disponible de la máquina porque se basa en el agente de Azure Monitor para enviar un latido. El latido del agente puede avisarle si la máquina se está ejecutando, pero el agente no responde.

Reglas de alertas de métricas

Se incluye una métrica denominada Latido en cada área de trabajo de Log Analytics. Cada máquina virtual conectada a esa área de trabajo envía un valor de métrica de latido cada minuto. Dado que el equipo es una dimensión de la métrica, puede activar una alerta cuando un equipo no pueda enviar un latido. Establezca Tipo de agregación en Recuento y el valor de Umbral para que coincida con la granularidad de la evaluación.

Reglas de alerta de búsqueda de registros

Las alertas de búsqueda de registros usan la tabla Latido, que debe tener un registro de latido cada minuto de cada máquina.

Use una regla con la consulta siguiente:

Heartbeat
| summarize TimeGenerated=max(TimeGenerated) by Computer, _ResourceId
| extend Duration = datetime_diff('minute',now(),TimeGenerated)
| summarize MinutesSinceLastHeartbeat = min(Duration) by Computer, bin(TimeGenerated,5m), _ResourceId

Alertas de CPU

En esta sección se describen las alertas de CPU.

Reglas de alertas de métricas

Destino Métrica
Host Porcentaje de CPU (incluido en las alertas recomendadas)
Invitado de Windows \Información del procesador(_Total)% de tiempo de procesador
Invitado de Linux cpu/usage_active

Reglas de alerta de búsqueda de registros

Uso de CPU

InsightsMetrics
| where Origin == "vm.azm.ms"
| where Namespace == "Processor" and Name == "UtilizationPercentage"
| summarize CPUPercentageAverage = avg(Val) by bin(TimeGenerated, 15m), Computer, _ResourceId

Alertas de memoria

En esta sección se describen las alertas de memoria.

Reglas de alertas de métricas

Destino Métrica
Host Bytes de memoria disponibles (versión preliminar) (incluido en las alertas recomendadas)
Invitado de Windows \Memoria% de bytes confirmados en uso
\Memoria\Bytes disponibles
Invitado de Linux mem/available
mem/available_percent

Reglas de alerta de búsqueda de registros

Memoria disponible en MB

InsightsMetrics
| where Origin == "vm.azm.ms"
| where Namespace == "Memory" and Name == "AvailableMB"
| summarize AvailableMemoryInMBAverage = avg(Val) by bin(TimeGenerated, 15m), Computer, _ResourceId

Memoria disponible en porcentaje

InsightsMetrics
| where Origin == "vm.azm.ms"
| where Namespace == "Memory" and Name == "AvailableMB"
| extend TotalMemory = toreal(todynamic(Tags)["vm.azm.ms/memorySizeMB"]) | extend AvailableMemoryPercentage = (toreal(Val) / TotalMemory) * 100.0
| summarize AvailableMemoryInPercentageAverage = avg(AvailableMemoryPercentage) by bin(TimeGenerated, 15m), Computer, _ResourceId  

Alertas de disco

En esta sección se describen las alertas de disco.

Reglas de alertas de métricas

Destino Métrica
Invitado de Windows \Disco lógico(_Total)% de espacio libre
\Disco lógico(_Total)\Megabytes libres
Invitado de Linux disk/free
disk/free_percent

Reglas de alerta de búsqueda de registros

Disco lógico usado: todos los discos de cada equipo

InsightsMetrics
| where Origin == "vm.azm.ms"
| where Namespace == "LogicalDisk" and Name == "FreeSpacePercentage"
| summarize LogicalDiskSpacePercentageFreeAverage = avg(Val) by bin(TimeGenerated, 15m), Computer, _ResourceId 

Disco lógico usado: discos individuales

InsightsMetrics
| where Origin == "vm.azm.ms"
| where Namespace == "LogicalDisk" and Name == "FreeSpacePercentage"
| extend Disk=tostring(todynamic(Tags)["vm.azm.ms/mountId"])
| summarize LogicalDiskSpacePercentageFreeAverage = avg(Val) by bin(TimeGenerated, 15m), Computer, _ResourceId, Disk 

IOPS de disco lógico

InsightsMetrics
| where Origin == "vm.azm.ms" 
| where Namespace == "LogicalDisk" and Name == "TransfersPerSecond"
| extend Disk=tostring(todynamic(Tags)["vm.azm.ms/mountId"])
| summarize DiskIOPSAverage = avg(Val) by bin(TimeGenerated, 15m), Computer, _ResourceId, Disk 

Velocidad de datos de disco lógico

InsightsMetrics
| where Origin == "vm.azm.ms" 
| where Namespace == "LogicalDisk" and Name == "BytesPerSecond"
| extend Disk=tostring(todynamic(Tags)["vm.azm.ms/mountId"])
| summarize DiskBytesPerSecondAverage = avg(Val) by bin(TimeGenerated, 15m), Computer, _ResourceId, Disk 

Alertas de red

Reglas de alertas de métricas

Destino Métrica
Host Entrada de red total, Salida de red total (incluido en las alertas recomendadas)
Invitado de Windows \Rendimiento de interfaz de red\Bytes enviados/s
\Disco lógico(_Total)\Megabytes libres
Invitado de Linux disk/free
disk/free_percent

Reglas de alerta de búsqueda de registros

Bytes de interfaces de red recibidos: todas las interfaces

InsightsMetrics
| where Origin == "vm.azm.ms"
| where Namespace == "Network" and Name == "ReadBytesPerSecond"
| summarize BytesReceivedAverage = avg(Val) by bin(TimeGenerated, 15m), Computer, _ResourceId  

Bytes de interfaces de red recibidos: interfaces individuales

InsightsMetrics
| where Origin == "vm.azm.ms"
| where Namespace == "Network" and Name == "ReadBytesPerSecond"
| extend NetworkInterface=tostring(todynamic(Tags)["vm.azm.ms/networkDeviceId"])
| summarize BytesReceievedAverage = avg(Val) by bin(TimeGenerated, 15m), Computer, _ResourceId, NetworkInterface 

Bytes de interfaces de red enviados: todas las interfaces

InsightsMetrics
| where Origin == "vm.azm.ms"
| where Namespace == "Network" and Name == "WriteBytesPerSecond"
| summarize BytesSentAverage = avg(Val) by bin(TimeGenerated, 15m), Computer, _ResourceId 

Bytes de interfaces de red enviados: interfaces individuales

InsightsMetrics
| where Origin == "vm.azm.ms"
| where Namespace == "Network" and Name == "WriteBytesPerSecond"
| extend NetworkInterface=tostring(todynamic(Tags)["vm.azm.ms/networkDeviceId"])
| summarize BytesSentAverage = avg(Val) by bin(TimeGenerated, 15m), Computer, _ResourceId, NetworkInterface 

Eventos de Windows y Linux

En el ejemplo siguiente se crea una alerta al crear un evento específico de Windows. Usa una regla de alertas de unidades métricas para crear una alerta independiente para cada equipo.

  • Crear una regla de alertas para un evento específico de Windows. En este ejemplo se muestra un evento en el registro de aplicaciones. Especifique un umbral de 0 e infracciones consecutivas superior a 0.

    Event 
    | where EventLog == "Application"
    | where EventID == 123 
    | summarize NumberOfEvents = count() by Computer, bin(TimeGenerated, 15m)
    
  • Crear una regla de alerta en eventos de Syslog con una gravedad determinada. En el ejemplo siguiente se muestran los eventos de autorización de errores. Especifique un umbral de 0 e infracciones consecutivas superior a 0.

    Syslog
    | where Facility == "auth"
    | where SeverityLevel == "err"
    | summarize NumberOfEvents = count() by Computer, bin(TimeGenerated, 15m)
    

Contadores de rendimiento personalizados

  • Crear una alerta sobre el valor máximo de un contador.

    Perf 
    | where CounterName == "My Counter" 
    | summarize AggregatedValue = max(CounterValue) by Computer
    
  • Crear una alerta sobre el valor promedio de un contador.

    Perf 
    | where CounterName == "My Counter" 
    | summarize AggregatedValue = avg(CounterValue) by Computer
    

Pasos siguientes

Análisis de los datos de supervisión recopilados para las máquinas virtuales