Cargando...

Monitorear Espacio de Discos en Máquinas Virtuales Azure

En el ámbito de la administración de sistemas, la monitorización del espacio en disco es una tarea crítica para garantizar el rendimiento y la disponibilidad de los servicios. Los discos llenos pueden llevar a una variedad de problemas, degradación del rendimiento, el servidor se pone lento, y hasta la interrupción completa de los servicios.

En entornos de nube, donde se utilizan máquinas virtuales para ejecutar aplicaciones críticas, una gestión proactiva del espacio en disco es fundamental para evitar tiempos de inactividad no planificados y garantizar la continuidad del negocio.

El servicio de monitoreo de Azure, Azure Monitor, ofrece una variedad de métricas predefinidas para visualizar información de diferentes recursos, particularmente en máquinas virtuales, hay métricas para varios componentes. Sin embargo, actualmente no hay una métrica para monitorizar el espacio libre en disco. Entonces, ¿Cómo monitorizar el espacio en disco en máquinas virtuales de Azure? Allá vamos.

Para monitorear el espacio de los discos de máquinas virtuales Azure podemos utilizar Log Analytics. En un área de trabajo de Log Analytics se pueden almacenar diferentes tipos de registro de la máquina virtual, y a partir de estos, crear métricas personalizadas y alertas. Y en este caso, es lo que nos interesa, crear una alerta para monitorear el espacio libre/utilizado de los discos de máquinas virtuales Azure.

Por supuesto, hay que hacer una configuración previa. Lo más sencillo es habilitar VM Insights, al hacer este proceso se crear una regla de recolección de Logs para la máquina virtual y se crear el área de trabajo de Logs Analytics, aunque este recurso también se puede crear de forma independiente.

Como activar VM Insights en máquinas virtuales Azure

Vamos a la máquina virtual, en la sección monitorización seleccionar Insights o Información y Habilitar. Se abrirá la ventana para configurar la regla de recopilación de datos y el Worskspace o áreas de trabajo de Logs Analýtics donde se almacenarán los registros.

Imagen: Habilitar VM Insights máquinas virtuales Azure

¿Cómo visualizar los registros de Azure Logs Analytics? Los logs recolectados de la máquina virtual se almacenan en tablas mediante el Lenguaje de consulta de Kusto (KQL), por lo tanto, para visualizar los registros se realizan consultas KQL. Con la activación de VM Insights se crean algunas tablas, la tabla InsightsMetrics es la que necesitamos para este escenario. Esta tabla almacena datos de métricas adicionales recopiladas por Azure Monitor para la máquina virtual, como métricas de disponibilidad, rendimiento y capacidad, incluyendo el espacio de los discos.

A continuación, comparto algunas consultas KQL para extraer información de los discos de máquinas virtuales Azure, las cuales puedes utilizar y personalizar dependiendo del caso de uso.

Extraer el porcentaje de espacio de todos los discos de todas las máquinas virtuales

InsightsMetrics
| where Namespace == "LogicalDisk"
| where Name == "FreeSpacePercentage"
| extend Disk=tostring(todynamic(Tags)["vm.azm.ms/mountId"])
| summarize arg_max(TimeGenerated, *) by Disk, Computer
| project TimeGenerated, Computer, Disk, Val 

porcentaje de espacio de todos los discos de todas las máquinas virtuales

Extraer el porcentaje de espacio libre en todos los discos de una máquina virtual de Azure.

InsightsMetrics
| where Computer == "crashell-test-vm-03"
| where Namespace == "LogicalDisk"
| where Name == "FreeSpacePercentage"
| extend Disk=tostring(todynamic(Tags)["vm.azm.ms/mountId"])
| summarize arg_max(TimeGenerated, *) by Disk
| project TimeGenerated, Computer, Disk, Val 

Imagen: porcentaje de espacio libre en todos los discos de una máquina virtual de Azure

Extraer el porcentaje de espacio libre de un disco específico de una máquina virtual Windows Azure

InsightsMetrics
| where Computer == "crashell-test-01"
| where Namespace == "LogicalDisk"
| where Name == "FreeSpacePercentage"
| extend Disk=tostring(todynamic(Tags)["vm.azm.ms/mountId"])
| summarize arg_max(TimeGenerated, *) by Disk
| where Disk == "C:"
| project TimeGenerated, Computer, Disk, Val 

Imagen: porcentaje de espacio libre de un disco específico de una máquina virtual Windows Azure

Extraer el porcentaje de espacio libre de un disco específico de una máquina virtual Linux Azure

InsightsMetrics
| where Computer == "crashell-test-vm-03"
| where Namespace == "LogicalDisk"
| where Name == "FreeSpacePercentage"
| extend Disk=tostring(todynamic(Tags)["vm.azm.ms/mountId"])
| summarize arg_max(TimeGenerated, *) by Disk
| where Disk == "/"
| project TimeGenerated, Computer, Disk, Val 

Imagen: porcentaje de espacio libre de un disco específico de una máquina virtual Linux Azure

Crear una alerta para monitorear el espacio en discos de máquinas virtuales Azure

Ya tenemos la información y lo único que nos queda es crear un alerta espacio libre en disco Azure Monitor para que notifique cuando se alcance un umbral definido. No vamos a explicar el proceso paso a paso para crear una alerta, el proceso es igual que si creas una alerta de métrica como el uso de CPU, memoria o cualquier otra métrica disponible, la diferencia es que, en este caso, como señal utilizaremos búsqueda de registros personalizada en lugar de una métrica, dado que vamos a consultar los registros de Log Analytics.

Lo primordial es tener la consulta KQL, y eso ya lo tenemos. En el ejemplo, tengo una máquina virtual Windows y me interesa monitorizar y crear alerta del espacio del disco C. Reutilizaré la consulta Extraer el porcentaje de espacio libre de un disco específico de una máquina virtual Windows Azure. En este caso, solo necesitamos el valor del porcentaje de espacio libre como tal.

InsightsMetrics
| where Computer == "crashell-test-01"
| where Namespace == "LogicalDisk"
| where Name == "FreeSpacePercentage"
| extend Disk=tostring(todynamic(Tags)["vm.azm.ms/mountId"])
| summarize arg_max(TimeGenerated, *) by Disk
| where Disk == "C:"
| project Val

Configurar regla de alerta en Azure Monitor o desde la máquina virtual

Como mencioné anteriormente, utilizaremos búsqueda de registros personalizada como señal y en consulta de búsqueda escribimos la consulta KQL que se ejecutará para extraer la información del espacio en disco.

Crear alerta con señal búsqueda de registros personalizada

Y lo siguiente es pan comido, definir la lógica de la alerta. Para este ejemplo, le indicamos que haga la evaluación cada 15 minutos y si el valor del umbral es menor o igual a 20, dispare la alerta. Es decir, cuando el porcentaje de espacio en disco sea menor o igual al 20%. Seguidamente se puede crear la acción para que se envíe una notificación a un correo específico.

Configurar regla de alerta en Azure Monitor

Importante. Se puede configurar con una frecuencia menor a 15 minutos, sin embargo, el precio por alerta es diferente. Esto dependerá de la criticidad del disco y que tanto se escribe en él.

reproductor Imagen: porcentaje de espacio libre en todos los discos de una máquina virtual de Azure image
reproductor Imagen: porcentaje de espacio libre de un disco específico de una máquina virtual Linux Azure image
  • John Doe
    43 Sales$156,24 Totals
    62%
  • Rosy O'Dowell
    12 Leads$56,24 Totals
    32%

With supporting text below as a natural lead-in to additional content.

Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled.