Nagios – Monitorizando nuestras máquinas virtuales de VMware vSphere
En este documento monitorizaremos elementos interesantes que obtendremos de nuestras máquinas virtuales basadas en VMware vSphere, centralizando en Nagios los checkeos que hagamos para gestionar sus valores, obtener alertas o generar gráficas de sus consumos. Veremos entre otros checkeos en las MV obteniendo los valores de su CPU Ready, CPU Wait, Overhead de memoria, memctl, balloning, IOs de escritura o de lectura…
Gracias al script ‘check_vmware_api.pl’ que ya instalamos en un documento anterior, podremos avanzar y monitorizar ahora cualquier parámetro de una Máquina Virtual, da igual la versión que usemos, ya que al instalar el SDK correspondiente nos permitirá conectividad, sean entornos vSphere 5.x o 6.x. Por tanto, si no tienes instalado los pre-requisitos, te recomiendo su lectura!
[sourcecode]cpu – shows cpu info
+ usage – CPU usage in percentage
+ usagemhz – CPU usage in MHz
+ wait – CPU wait time in ms
+ ready – CPU ready time in ms
mem – shows mem info
+ usage – mem usage in percentage
+ usagemb – mem usage in MB
+ swap – swap mem usage in MB
+ swapin – swapin mem usage in MB
+ swapout – swapout mem usage in MB
+ overhead – additional mem used by VM Server in MB
+ overall – overall mem used by VM Server in MB
+ active – active mem usage in MB
+ memctl – mem used by VM memory control driver(vmmemctl) that controls ballooning
net – shows net info
+ usage – overall network usage in KBps(Kilobytes per Second)
+ receive – receive in KBps(Kilobytes per Second)
+ send – send in KBps(Kilobytes per Second)
^ all net info(except usage and no thresholds)
io – shows disk I/O info
+ usage – overall disk usage in MB/s
+ read – read disk usage in MB/s
+ write – write disk usage in MB/s
runtime – shows runtime info
+ con – connection state
+ cpu – allocated CPU in MHz
+ mem – allocated mem in MB
+ state – virtual machine state (UP, DOWN, SUSPENDED)
+ status – overall object status (gray/green/red/yellow)
+ consoleconnections – console connections to VM
+ guest – guest OS status, needs VMware Tools
+ tools – VMware Tools status
+ issues – all issues for the host[/sourcecode]
Estos serán algunos de los Comandos y Subcomandos que podremos pasar para obtener la información que nos interese de una MV, podremos hacer la consulta a un servidor vCenter o sobre un host ESXi, seguido del nombre de la MV tal y como se ve desde el vSphere Client. Podemos analizar cualquier parámetro de CPU, Memoria, Red, Disco o estado de la MV. Algo así nos valdría si queremos probar a ejecutarlo desde shell:
[sourcecode]./check_vmware.api.pl -D DATA_CENTER | -H DIRECCION_IP_HOST_ESXi -N NOMBRE_MV -f FICHERO_AUTH -l COMANDO -s SUBCOMANDO -w WARNING -c CRITICAL[/sourcecode]
Bastará con dar de alta el Comando que necesitemos como siempre desde Centreon, esto será una única vez para luego llamarlo desde cada Servicio de monitorización que creemos. En este caso atacaré directamente a un host ESXi por lo que a pinrel pondré su IP, pero esto cada uno puede configurarlo como quiera, contra un vCenter sería lo ideal. “Configuration” > Commands” > duplicamos el ‘check_vmware_api.pl’ que tenemos ya creado y hacemos uno similar para monitorizar las MVs. Cumplimentamos al menos:
- Command Name: Le llamaré ‘check_vmware_api.pl_VM’ para saber que con este Comando monitorizaremos MVs.
- Command Type: Seleccionamos ‘Check’.
- Command Line: Será lo que ejecutarán los Servicios que creemos para monitorizar los ítems en las MVs. Algo como lo siguiente nos valdría donde pasaremos como argumentos a la hora de crear el Servicio el Nombre de la MV, el Comando, el Subcomando, el Warning y el valor para Critical:
$USER1$/check_vmware_api.pl -H DIRECCION_IP_HOST_ESXi -N $ARG1$ -f $USER1$/check_vmware_api.auth -l $ARG2$ -s $ARG3$ -w $ARG4$ -c $ARG5$
Grabamos con “Save”,
Y nada! Ya será tan sencillo como crear tantos Servicios como necesitemos, desde “Configuration” > “Services”. En este caso crearé los Servicios asociados desde Relations a cada MV, seleccionare el Comando que acabamos de crear desde el combo, siendo ‘check_vmware_api.pl_VM’, y cumplimentarermos los argumentos, indicando el propio nombre de la MV a consultar, el Comando que en este tipo ‘cpu’ y con el Subomando ‘ready’ nos dará pues eso, el tiempo de CPU Ready que tiene la MV, además de indicar los valores para que nos alerte de Warning y Critical (en este caso son milisegundos).
Y nada, si grabamos y exportamos la configuración como ya conocemos, podremos volvernos a la vista de Monitorización y ver los valores que estamos monitorizando, en este caso vemos los tiempos de CPU Ready o CPU Wait, así como el throughput de escritura o lectura en MB/s, así como si la MV tiene usado Balloning o Swap que conocemos son elementos que nos indicará que la MV está sufriendo. E interesante conocer el Estado a nivel de VMware de la máquina virtual así como el estado de las VMware Tools!!! Disfrutarlo!