Cómo configurar el monitoreo para alertar sobre el uso elevado del sistema de Windows

Contenidos

Una de las herramientas más pasadas por alto en Windows es Perfmon, además conocido como monitor de rendimiento. Esta utilidad tiene muchas habilidades pasadas por alto, una de ellas es la capacidad de alertar sobre varias condiciones métricas. En este post, exploramos cómo usar correctamente la capacidad de alerta de Perfmon con un uso elevado de CPU.

¿Qué es Perfmon?

Disponible desde los primeros días de Windows en varias iteraciones, Performance Monitor está habilitada como un complemento MMC para Windows destinado a ayudar a monitorear el uso del sistema y varias métricas de rendimiento. La vista predeterminada al iniciar destaca algunas áreas diferentes y métricas en tiempo real.

  • Monitor de rendimiento – Visualización de métricas en tiempo real
  • Conjuntos de recopiladores de datos – Recopilación establecida de datos durante un intervalo de tiempo determinado
  • Informes – Cómo ver los datos recopilados en los conjuntos de recopiladores de datos

Si Performance Monitor no se inicia como administrador, su utilidad será limitada y es factible que no vea los conjuntos de recopiladores de datos o los informes.

Visualización de métricas

Cuando haga clic por primera vez en Monitor de rendimiento, se le mostrará un gráfico de líneas en movimiento que por defecto es %Processor Time. Esto, por sí solo, no es muy útil dado que los datos son un valor variable y verdaderamente queremos saber si hay condiciones adversas.

Puede agregar métricas adicionales a este gráfico, haciendo clic en el signo más verde y agregando más métricas. Tenga en cuenta que la escala de valores puede no coincidir entre diferentes puntos de datos y, por eso, puede ser de menor utilidad cuando se combina en un solo gráfico.

Conjuntos de recopiladores de datos

Los datos en tiempo real son útiles, pero no son lo que buscamos en última instancia. Entonces, ¿cómo alertamos sobre ciertas condiciones, en esta circunstancia, un alto uso de CPU sostenido en el tiempo?

Aquí es donde entran los conjuntos de recopiladores de datos. Después de expandir los conjuntos de recopiladores de datos, haga clic con el botón derecho en Definido por el usuario → Nuevo → Conjunto de recopiladores de datos.

Se le presentará la opción de nombrar el conjunto y si crear el conjunto a partir de una plantilla o crear el conjunto manualmente. En esta circunstancia, necesitamos crear manualmente nuestra configuración.

En esta circunstancia, estamos configurando un Alerta de contador de rendimiento. Esto monitoreará un contador dado y posteriormente podemos decirle a la alerta que tome ciertas acciones.

Dado que buscamos monitorear el porcentaje total de CPU, es más importante seleccionar la métrica correcta para monitorear. Aquí estamos eligiendo Procesador → _Total haciendo clic en «Agregar >>» junto a la instancia seleccionada.

Un obstáculo es que obtienes todos los Procesador _Total métrica. En última instancia, solo queremos Processor(_Total)% Processor Time métrico. Para quitar los demás, seleccione cada uno y haga clic en el botón Quitar.

Desafortunadamente, la forma en que funciona la eliminación, no puede simplemente hacer un clic en el botón Quitar varias veces, dado que mueve el elemento seleccionado a la parte de arriba cada vez. Seleccione cada métrica individualmente y haga clic en Quitar.

Ahora necesitamos decirle al contador de rendimiento en qué punto debe comenzar la alerta y, en esta circunstancia, buscamos que se active solo cuando esté arriba 95.

Por último, guarde y cierre el conjunto de recopiladores de datos.

Configurar alertas

Con nuestra configuración predeterminada fuera del camino, debemos configurar ahora qué Acción de alerta se llevará a cabo. Hay dos alternativas para configurar las alertas, Acción de alerta y Tarea de alerta. Selecciona tu Definido por el usuario → Uso elevado de CPU conjunto de recopiladores de datos, haga clic con el botón derecho DataCollector01 entrada y elija Propiedades.

La forma más fácil de comenzar a monitorear las entradas es navegar a la pestaña Acción de alerta y hacer un clic en la casilla de verificación para «Registrar una entrada en el registro de eventos de la aplicación». Además tiene la opción conveniente de iniciar un conjunto de recopiladores de datos distinto cuando se cumplen los criterios para una alerta. De esta manera, puede recolectar registros adicionales según sea necesario. A pesar de esto, aquí solo vamos a registrar una entrada.

Configurar una tarea de alerta

Todo esto está muy bien, pero en última instancia, no estamos recibiendo una alerta real en esta circunstancia, solo una nueva entrada en el registro de eventos. En la pestaña Tarea de alerta, podemos decirle a este recopilador de datos que inicie una tarea programada y envíe algunos parámetros, que posteriormente pueden realizar las acciones de alerta que queramos. Para que esto funcione, debemos hacer dos cosas. Cree el script para ejecutar y la propia tarea programada.

Script de registro

A continuación se muestra un script de registro muy simple. Leemos las métricas de alerta generadas por la tarea de alerta y enviamos esos resultados a un archivo de registro.

HighCPUAlert.ps1

$Date      = $args[0]
$Threshold = $args[1]
$Counter   = $args[2]

$Value = "[{0}] {1} {2} | {3}" -F $Date, 'High CPU', $Threshold, $Counter

Add-Content -Value $Value -Path 'C:HighCPUAlert.log'

Tarea programada

Aquí necesitamos crear la tarea programada que verdaderamente ejecutará el script cuando el recopilador de datos lo invoque. Estamos usando PowerShell para crear la tarea programada y usando PowerShell 7 como tiempo de ejecución, como lo indica el pwsh.exe ejecutable.

$Params = @{
    "Action"    = New-ScheduledTaskAction -Execute "pwsh.exe" -Argument "-NoProfile -File C:HighCPUAlert.ps1 $(Arg0)"
    "Principal" = New-ScheduledTaskPrincipal -UserId "LOCALSERVICE" -LogonType ServiceAccount
    "Settings"  = New-ScheduledTaskSettingsSet
}

New-ScheduledTask @Params | Register-ScheduledTask 'HighCPUAlert'

Hasta que PowerShell 7 se lance formalmente, el ejecutable puede ser pwsh-preview.exe.

Configuración de la tarea de alerta

En conclusión, necesitamos configurar la tarea de alerta en el recopilador de datos. Para hacer esto, navegue a las propiedades nuevamente de DataCollector01 e ingrese los siguientes detalles.

Citamos los argumentos de la tarea debido a que vienen como cadenas de PowerShell. Por eso, al citarlos, facilitamos la separación de los argumentos por índice, dicho de otra forma $arg[0] o $arg[1].

Una vez que haga clic en guardar, es factible que se le solicite una credencial, debe ser un usuario con acceso de administrador.

Ejecución del recopilador de datos

Al hacer un clic con el botón derecho en el conjunto de recopiladores de datos, uso elevado de CPU y elegir Comienzo, comenzará el procedimiento de recolección. Si supervisa las tareas programadas, verá que la tarea programada recién creada se ejecuta periódicamente según el intervalo de supervisión y el umbral establecido.

Conclusión

A través de el uso de las herramientas de supervisión integradas de Windows, puede estructurar algunas soluciones de supervisión útiles y potentes en torno a las utilidades principales y PowerShell. Con esta flexibilidad, podrá llegar al fondo de casi cualquier problema que pueda diagnosticarse a través de la recopilación de datos métricos.

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.