Apr 5, 2010

Monitorización de VMware ESXi con Zabbix (II)

Una vez que hemos establecido la infraestructura necesaria para poder monitorizar VMware ESXi con Zabbix, vamos a configurar Zabbix para poder realizar tal tarea.

Lo que he hecho ha sido desarrollar una plantilla para Zabbix, la cual está formada por 41 items (elementos encargados de obtener datos concretos) y 9 gráficos (utilizan los valores proporcionados por los items para representar los datos). En el siguiente link puede descargarse la plantilla: Template_ESXi.

Por lo tanto lo que haremos en primer lugar será ir a Configuration, Export/Import, con el objetivo de importar dicha plantilla. Una vez que la hayamos importado, iremos a la sección de Configuration, Host groups, y accederemos a la pantalla de Templates. Si pulsamos sobre el enlace Items, podremos ver la lista de todos los items que conforman la plantilla.


Hay uno de los items llamado "ESXi resxtop" el cual utiliza el script externo resxtop_esxi.sh para generar el fichero CSV (archivo que contiene los valores proporcionados por resxtop - consumo de CPU, memoria, disco, etc.) del VMware ESXi pasado a través de la macro HOSTNAME. Este item se ejecutará cada 30 sg de Lunes a Domingo. El resto de items utilizarán el script get_field_esxi.sh para obtener un valor concreto dentro del fichero CSV.


De esta forma si analizamos un item cualquiera, por ejemplo "Memory (Free)", podremos ver que al script get_field_esxi.sh se le pasarán dos argumentos a través de la línea de órdenes: la dirección IP o nombre del VMware ESXi (a través de la macro HOSTNAME) y el parámetro que queramos obtener dentro del fichero CSV. Para este caso concreto, como se quiere obtener la memoria que queda libre se le ha pasado la cadena de texto "\\Free MBytes".

Este item, que se ejecutará cada 30 sg de Lunes a Domingo, devolverá como resultado un número entero decimal que se corresponderá con los MB libres de memoria RAM. Para otros items lo único que cambiará será por ejemplo el tipo de resultado devuelto o la clase de unidad.


Esta plantilla ha sido creada teniendo en cuenta 8 cores, de ahí a que haya por ejemplo 8 items de tipo "Physical Cpu(0...7) Util Time". Por lo tanto, si la plantilla se utiliza para monitorizar otros VMware ESXi con menos cores, se pueden desactivar aquellos items no necesarios, o si por el contrario se dispone de más cores, se pueden añadir (clonar) más items.

Lo mismo ocurre también para el caso de los dos items relacionados con los interfaces de red: "Network Received Traffic (eth0)" y "Network Transmitted Traffic (eth0)". Si se tuviera algún VMware ESXi con otro interfaz de red, habría que clonar esos dos items y cambiar la cadena de texto "eth0" por "eth1".

La plantilla también dispone de 9 gráficos que utilizarán los items anteriormente comentados.


Si abrimos por ejemplo el gráfico de "Disk", podremos ver que hace uso de dos items: "Disk (Read)" y "Disk (Write)".


En la siguiente imagen podemos ver una de las gráficas (Physical Cpu Util Time) obtenidas por la plantilla Template_ESXi una vez que ha sido asignada a un VMware ESXi (ESXI01.LOCAL).

8 comments:

  1. Hi,

    the template link is not working for the ESXI template, could you fix that please? Thank you!

    ReplyDelete
  2. This comment has been removed by the author.

    ReplyDelete
  3. hi,

    any idea? I can not reach the ESXIs by HOSTNAME only by IP so can i change the template and scripts to make that work with an IP instead of Servername?

    ReplyDelete
  4. Hello,

    if you want to use the hostname, you must set it into the resolv.conf file. For instance:

    # cat /etc/resolv.conf
    ESXI01.LOCAL 192.168.1.100

    This ESXi monitoring solution has been tested with Zabbix 1.8.1, CentOS 5.4 and ESXi 4.0, and working correctly.

    I think that you should try to understand the different parts of the solution, because in this way, you will be able to detect possible mistakes in your installation.

    Take a look at the Zabbix server logs, test scripts separately, etc.

    ReplyDelete
  5. Hi,

    Is it possible you could share Template_ESXi.xml? The link is not working... Thanks.

    ReplyDelete
  6. Hi,

    You can get the file by clicking on the text string "Template_ESXi". Maybe, it cannot be distinguished well due to the new text format that I'm using now... I've tried out to download the xml file through the link and it works.

    Here you are the link: https://docs.google.com/leaf?id=0B9ehzLIBCThIMGFlMTE1ZjMtM2VmMy00NzdkLThiNzUtZjQwNDJkN2YzYTlk&hl=es

    ReplyDelete
  7. Hola he estado probando la solución y no consigo que los csv se generen, a veces funciona y a veces no. Siguiendo la primera parte del artículo, con las correciones de los comentarios, no consigo verificar que el csv funcione, si lanzo resxtop_esx.sh ip,hostname para que cojo los mismos valores que si lo lanza Zabbix, alguna vez obtengo el archivo. Estoy utilizando Zabbix 2.0.8 y uso la versión 4 del CLI porque la 5.1 necesita SSL en ESX 5. ¿Alguna idea?.

    ReplyDelete
    Replies
    1. Si pruebo con ./resxtop_esxi.sh ip hostname pide el pass y ejecuta el script, por lo que veo la línea con <<eof password eof no funciona en Centos 6

      Delete