Cómo Configurar el Monitoreo para Alertar sobre el Alto Uso del Sistema Windows

  • Adam Bertram

    @adbertram

  • 6 de abril de 2020, 11: 18am EDT

Perfmon

Una de las herramientas que más se pasan por alto en Windows es Perfmon, también 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 artículo, exploramos cómo utilizar correctamente la capacidad de alerta de Perfmon con un alto uso de CPU.

¿Qué es Perfmon?

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

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

Si el Monitor de rendimiento no se inicia como Administrador, su utilidad será limitada y es posible que no vea los Conjuntos de Recopiladores de datos o los Informes.

Visualización de métricas

La primera vez que haga clic en el Monitor de rendimiento, se le mostrará un gráfico de líneas móviles que por defecto es %Processor Time. Esto, por sí solo, no es terriblemente útil, ya que los datos son un valor continuo y realmente 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 lo tanto, 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 lo que estamos buscando en última instancia. Entonces, ¿cómo alertamos sobre ciertas condiciones, en este caso, un alto uso de CPU sostenido en el tiempo?

Advertisement

Aquí es donde entran en juego los Conjuntos de recopiladores de datos. Después de expandir 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 desea crear el conjunto a partir de una plantilla o crear el conjunto manualmente. En este caso, necesitamos crear manualmente nuestra configuración.

En este caso, estamos configurando una Alerta de Contador de rendimiento. Esto monitorizará un contador determinado y luego podremos decirle a la alerta que realice ciertas acciones.

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

Advertisement

Un problema es que obtienes todas las métricas _Total del procesador. En última instancia, solo queremos la métrica \Processor(_Total)\% Processor Time. Para eliminar los demás, seleccione cada uno y haga clic en el botón Eliminar.

Desafortunadamente, de la forma en que funciona la eliminación, no puede hacer clic en el botón eliminar varias veces mientras mueve el elemento seleccionado de nuevo a la parte superior cada vez. Seleccione cada métrica individualmente y haga clic en Eliminar.

Ahora necesitamos decirle al contador de rendimiento en qué punto debe comenzar la alerta y, en este caso, estamos buscando que se active solo cuando esté por encima de 95.

por último, guarde y cierre el Conjunto de Recopiladores de Datos.

Configurando alertas

Con nuestra configuración predeterminada fuera del camino, ahora necesitamos configurar qué Acción de alerta va a tener lugar. Hay dos formas de configurar las alertas, Acción de Alerta y Tarea de Alerta. Seleccione su conjunto de recopiladores de datos de alto uso de CPU definido por el usuario, haga clic con el botón derecho en la entrada predeterminada DataCollector01 y elija Propiedades.

La forma más fácil de comenzar a monitorear entradas es navegar a la pestaña Acción de alerta y hacer clic en la casilla de verificación para «Registrar una entrada en el registro de eventos de la aplicación». También tiene la opción conveniente de iniciar un conjunto de recopiladores de datos diferente cuando se cumplen los criterios para una alerta. De esta manera, puede recopilar registros adicionales según sea necesario. Aquí, sin embargo, 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 este caso, solo una nueva entrada de 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 luego pueden realizar las acciones de alerta que queramos. Para que esto funcione, tenemos que hacer dos cosas. Cree el script a ejecutar y la tarea programada en sí.

Script de registro

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

HighCPUAlert.ps1

$Date = $args $Threshold = $args $Counter = $args $Value = " {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 realmente ejecutará el script al ser invocado por el Recopilador de datos. Usamos PowerShell para crear la tarea programada y usamos PowerShell 7 como tiempo de ejecución, como se indica en el ejecutable pwsh.exe.

$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 publique formalmente, el ejecutable puede ser pwsh-preview.exe.

Configurar la Tarea de alerta

Finalmente, necesitamos configurar la Tarea de Alerta en el Recopilador de datos. Para hacer esto, navegue a las propiedades de nuevo de DataCollector01 e ingrese los siguientes detalles.

Citamos los argumentos de la tarea porque vienen como cadenas a PowerShell. Por lo tanto, al citarlos, estamos facilitando la separación de los argumentos por índice, es decir, $arg o $arg.

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

Ejecutando el Recopilador de datos

Haciendo clic con el botón derecho en el Conjunto de Recopiladores de datos, Uso elevado de CPU y seleccionando Inicio, comenzará el proceso de recopilación. Si supervisa las tareas programadas, verá que la tarea programada recién creada se ejecuta periódicamente en función del intervalo de supervisión y el umbral establecido.

Conclusión

Al utilizar 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 se pueda diagnosticar a través de la recopilación de datos de métricas.

Adam Bertram
Adam Bertram es un veterano de TI de más de 20 años y un experimentado profesional de negocios en línea. Es consultor, MVP de Microsoft, bloguero, entrenador, autor publicado y comercializador de contenido para múltiples empresas de tecnología. Ponte al día con los artículos de Adam en adamtheautomator.com, conéctate en LinkedIn o síguelo en Twitter en @adbertram.Lea la Biografía completa »

Deja una respuesta

Tu dirección de correo electrónico no será publicada.