Buen Lunes a todos!!
Continuamos con la segunda parte del uso de Typeperf. Aquí vamos a utilizarlo mediante un script en vbs para monitorizar cada x minutos, por ejemplo, el valor de un contador que queramos. A partir de aquí, lo implementamos en ovo, Nagios o cualquier otra plataforma de monitorización.
El script en cuestión lo podemos encontrar en Nagios Exchage : Check Performance Monitor, el mismo lo podemos personalizar. En la página del script hay muy poca información pero es muy intuitiva, lo único que nos quedará es configurar los umbrales de alerta para cada tipo de contador, pues no siempre es el mismo y el valor que recibimos tampoco.
Comentar también en el aspecto del valor recogido, que la conversión no es tan sencilla y puede darnos algún que otro dolor de cabeza. Por ejemplo, podemos recibir por comando el valor 25 respecto a un contador, pero al pasarlo por el script, el 25 se convierta en 2500000. Las soluciones van des de ir dividiendo para eliminar esos 0 de más, o bien, para mi la más sencilla, si el umbral es de 26, configurarlo a 2600000.
Script
Este Script está preparado para recibir las variables por comando e interpretarlas después.
Entonces, para el caso de Nagios, podemos introducir dentro del INI del servidor monitorizado bajo NRPE Handlers, la siguiente linea
check_proc_time=cscript /nologo "C:\Program Files\NSClient++\scripts\perfmon4.vbs" -C "Processor" -I "_Total" -P "% Processor Time" "% Processor Time" -f "%f %"
Lo que le pedimos es sobre el contador del procesador, queremos saber el % Processor Time y esto el script lo traduce a:
typeperf "\Processor(_Total)\% Processor Time" -sc 1
En el fichero temporal que crea, se almacena el valor que se recoge en el momento, se analiza y se compara con los umbrales que definimos o bien en el script, o bien lo podemos pasar por comando añadiendo -w 50 -c 90, por ejemplo.
Por supuesto, podemos modificar este script para que no recoja valores y ponerlos nosotros de forma manual y personalizada, pues si tenemos que configurarlo para ovo, mejor que sea un valor estático y no variable.