Saludos amigos, allá en Octubre de 2020 reporté de manera oficial en el Github de Influxdata, el error que todos parecíamos tener desde telegraf 1.15 en adelante, y es que el plugin de VMware no recolecta bien las métricas de clúster, como son el consumo de CPU y RAM, entre otros.
Éstas métricas son claves, ya que son las que vemos cuando estamos observando en el Web Client el Overview, tal que así:
Esta situación ha llevado a que muchos comentaráis en el blog en Castellano, en Inglés, por correo, y en los comentarios del Dashboard de Grafana sobre el incidente.
Bien, pues tengo buenas noticias, ya que Influxdata ha lanzado telegraf v.1.18.2, que incluye entre otras mejoras un workaround para la incidencia, veamos cómo activarlo.
Telegraf v1.18.2 – Muchas mejoras, pero la más importante para nosotros la de VMware vSphere
Como os decía, hay muchas mejoras, os las desgloso todas juntas aquí mismo:
- Agente
- El formato JSON es ahora compatible con los nulos para asegurar que Telegraf detecta correctamente los valores nulos y devuelve una métrica vacía sin error.
- El common.shim ha sido actualizado para aceptar entradas más grandes del escáner.
- Input APCUPSD (apcupsd)
- Resuelto un error de ALARMDEL en un repositorio bifurcado. Esta corrección asegura que el plugin funciona cuando no se establece la duración del retraso de la alarma.
- Procesador del convertidor (converter)
- Se ha añadido soporte para float64 para poder convertir valores de cadena hexadecimal más largos en un tipo numérico sin perder en precisión. Nota: si un número de cadena supera el límite de tamaño para float64, la precisión puede seguir perdiéndose.
- Input del cliente NFS (nfsclient)
- Actualizado para recoger con éxito métricas distintas a las de lectura y escritura.
- Input SNMP (snmp)
- Actualizado para registrar los fallos de autentificación de snmpv3.
- Output de Sumo Logic (sumologic)
- Se ha añadido soporte para sanear el nombre de la métrica en el serializador Carbon2.
- Input de VMware vSphere (vsphere)
- Se ha añadido la configuración de MetricLookback para gestionar los retrasos en los informes de vCenter 6.7 y posteriores.
- Input del cliente OPC UA (opcua)
- Se ha corregido el manejo de errores.
Cómo actualizar a la última versión de Telegraf
Os he contado cómo instalar telegraf en varios posts, si hemos seguido los pasos y usado los repositorios de Influxdata será muy sencillo, primero comprobar la versión que tenemos:
telegraf --version Telegraf 1.18.1 (git: HEAD d3ac9a3f)
También podemos actualizar nuestro InfluxDB, que tiene una actualización reciente:
influx --version InfluxDB shell version: 1.8.4
Vamos ha lanzar el típico comando para actualizar vuiestros paquetes, en mi caso es Ubuntu, asique quedaría así:
apt-get update && apt-get upgrade
Durante la actualización, nos preguntará si queremos actualizar los paquetes, entre todos los que no tengo actualizados podemos ver telegraf e influxdb, diremos que Y:
The following packages have been kept back: base-files sosreport ubuntu-server The following packages will be upgraded: cloud-init grafana grub-common grub-pc grub-pc-bin grub2-common influxdb libldap-2.4-2 libldap-common libpci3 libprocps8 linux-firmware pciutils procps python3-distupgrade telegraf ubuntu-release-upgrader-core update-notifier-common 18 upgraded, 0 newly installed, 0 to remove and 3 not upgraded. Need to get 250 MB of archives. After this operation, 723 kB of additional disk space will be used. Do you want to continue? [Y/n]
Ya está, si volvemos a ejecutar el comando para ver la versión que tenemos, podremos ver que hemos actualizado sin ningún tipo de problema.
Conociendo a fondo el nuevo MetricLookback del plugin de telegraf para vSphere
Lo que los chicos de Influxdata han hecho ha sido intentar recolectar estras métricas del clúster usando intervalos más grandes de los 15 minutos que se usaban anteriormente, para controlarlo tenemos el nuevo metric_lookback que se basa en trozos de 5 minutos y cómo de lejos queremos llegar. Desde Influxdata nos recomiendan usar como máximo 8, que multiplicado por 5, tenemos 40 minutos. Con lo que si la métrica de consumo de CPU del clúster está en ese rango la cogerá y la guardará en InfluxDB como era de esperar, os dejo el ejemplo de la config:
[[inputs.vsphere]] ## List of vCenter URLs to be monitored. These three lines must be uncommented ## and edited for the plugin to work. interval = "20s" vcenters = [ "https://vcsa.jorgedelacruz.es/sdk" ] username = "[email protected]" password = "TUPASS" vm_metric_include = [] host_metric_include = [] datastore_metric_exclude = ["*"] max_query_metrics = 256 timeout = "60s" insecure_skip_verify = true [[inputs.vsphere]] interval = "300s" vcenters = [ "https://vcsa.jorgedelacruz.es/sdk" ] username = "[email protected]" password = "TUPASS" datastore_metric_include = [ "disk.capacity.latest", "disk.used.latest", "disk.provisioned.latest" ] cluster_metric_include = [] datacenter_metric_include = [] insecure_skip_verify = true force_discover_on_init = true host_metric_exclude = ["*"] # Exclude realtime metrics vm_metric_exclude = ["*"] # Exclude realtime metrics max_query_metrics = 256 collect_concurrency = 3 metric_lookback = 8
Como resultado una vez que lo he habilitado y reiniciado el servicio de telegraf, tenemos lo siguiente, vemos que no tenía nada antes, y de repente ¡Sorpresa!
Funciona también para las métricas de RAM del clúster:
Nada más amigos, por ahora no he tocado el Dashboard oficial, ya que estoy observando cómo se comporta estás métricas, además de que creo que usando la media de los hosts, etc. Conseguimos detalles más precisos, y con mejor intervalo que los cada 5 minutos (o 40) que ofrece este workaround, pero es bueno tenerlo. Os iré contanto.

Hola Jorge,
Hay forma de disponer de un plug-in para monitorear un host ESXi 7 no administrado por Vcenter.