Nagios – Midiendo la carga de los discos en Windows
Si nos interesa controlar la carga que sufren los discos de nuestros servidores Windows, podremos monitorizar sencillamente gracias a un sencillo PowerShell que ejecutaremos mediante NRPE. Obtendremos latencias de lectura y escritura, número de lecturas y escrituras por segundo, así como el ratio de lectura y escritura en MB/s y también el tiempo de cola de lectura & escritura!
Bien, lo primero, realizaremos este proceso mediante NRPE, quiero decir, que si no tienes el comando ‘check_nrpe’ en el appliance de Nagios o de Centreon, o el Agente NSClient ++ instalado en el equipo Windows, repasa este documento!
Nos descargaremos el script de PowerShell que nos permitirá esto, llamado ‘check_ms_win_disk_load.ps1’, lo podremos descargar de esta URL: https://exchange.nagios.org/directory/Plugins/Operating-Systems/Windows-NRPE/Check-Microsoft-Windows-Disk-Load/details.
Bien, descargamos dicho script y lo dejaremos en la carpeta ‘%ProgramFiles%\NSClient++\scriptsScripts‘ de cada Windows a monitorizar. Además, modificamos el fichero de configuración de NSClient++, el ‘nsclient.ini’, y le añadimos la siguiente configuración:
[sourcecode][/settings/external scripts/scripts]
disk_load = cmd /c echo scripts\\check_ms_win_disk_load.ps1 $ARG1$; exit($lastexitcode) | powershell.exe -executionpolicy bypass -command –
[/settings/external scripts/alias]
disk_load = disk_load[/sourcecode]
Bien, deberemos crear un Servicio por cada disco que vamos a monitorizar, en este ejemplo veremos cómo obtener la Carga del disco C:\ de un Windows. Creamos el Servicio desde “Configuration” > “Services” y clonamos de uno existente. Le configuramos al menos la siguiente configuración:
- Description: Le indicamos el nombre con el que le veremos desde la monitorización, algo como ‘Disco C – Carga’ nos puede valer.
- Template: Normalmente, seleccionamos ‘generic-active-service-custom’.
- Check Command: Seleccionamos de la lista de comandos, ‘check_nrpe’.
- Args: Debemos cumplimentar aquí el alias que definimos en el archivo INI, en este documento pasaremos mediante NRPE el check ‘disk_load’. Deberemos además pasarle unos argumentos (con -a) donde indicaremos el disco y los tiempos de aviso. En este ejemplo indico: disk_load -a ‘-dl C -ms 5 -rqw 20 -rqc 50’
Grabamos con “Save”,
Y lo de siempre, tras grabar la configuración en Nagios / Centreon, podremos forzar el checkeo de este Servicio y verificar que puede obtener correctamente los datos. Tras un tiempo razonable, ya podremos visualizar la carga que sufren nuestros discos de nuestros servidores, fácilmente monitorizaremos no sólo el uso, si no las latencias en miliseguntos de lectura o escritura, el número de lecturas y escrituras por segundo, throughput lectura y escritura en MB/s y por último las colas de lectura & escritura!