Saludos amigos, os traigo una nueva entrada sobre Grafana y Veeam, que estoy seguro os gustará y pondréis en vuestros laboratorios. Allá por 2017 os conté cómo monitorizan Veeam usando los PowerShell CMDlets y también cómo hacerlo usando PowerShell y Enterprise Manager RESTful API. Estas entradas han tenido decenas de miles de visitas, pero si bien es cierto que eran más bien una prueba de concepto ya que le faltaban muchos detalles.
Hoy, tengo el gusto de traeros ya un Dashboard completo y finalizado para poder monitorizar Veeam Backup & Replication, sin límite de servidores, trabajos, VMs o Repos, gracias a Veeam Enterprise Manager y su RESTful API (sólo en Enterprise Plus)
Veeam Enterprise Manager Dashboard
Al terminar la entrada tendréis algo similar a ese Dashboard que os permitirá visualizar:
Sección de Enterprise Manager – Summary
- Número Total de Veeam Backup & Replication Servers administrados por Enterprise Manager
- Número Total de Veeam Backup Repositories que tienen los Veeam Backup & Replication Servers administrados por Enterprise Manager
- Número Total de Veeam Backup Proxies que tienen los Veeam Backup & Replication Servers administrados por Enterprise Manager
- Número Total de Veeam Jobs que tienen los Veeam Backup & Replication Servers administrados por Enterprise Manager
- Número Total de VMs protegidas que tienen los Veeam Backup & Replication Servers administrados por Enterprise Manager
- Consumo de espacio en disco por cada Veeam Backup Repository
Sección de VBR – Veeam Backup Performance
- Consumo de CPU del Veeam Backup Server
- Consumo de RAM del Veeam Backup Server
- Consumo de Espacio en Disco del Veeam Backup Server
- Consumo de Red del Veeam Backup Server
Sección de VBR – Backup Jobs
- Nombre de cada Trabajo de Copia de Seguridad, con el último estado conocido en el periodo seleccionado en el Dashboard
Sección de VBR – Replica Jobs
- Nombre de cada Trabajo de Replica, con el último estado conocido en el periodo seleccionado en el Dashboard
Sección de VBR – Protected VMs
- Nombre de cada VM protegida por Veeam que incluya un trabajo de copia de seguridad, con el último estado conocido en el periodo seleccionado en el Dashboard
Sección de VBR – Replicated VMs
- Nombre de cada VM replicada por Veeam que incluya un trabajo de replica, con el último estado conocido en el periodo seleccionado en el Dashboard
Sección de VBR – Job Historical Performance and Duration
- Tabla con información del estado de todos los trabajos de copia de seguridad, ordenados por fecha, incluye nombre y el último estado conocido en el periodo seleccionado en el Dashboard.
- Tabla con información de la duración de cada trabajo de copia de seguridad y replica, ordenados por fecha, incluye la duración y el nombre del trabajo según el periodo seleccionado en el Dashboard.
Topología con todos los componentes lógicos
Esta entrada es un poco diferente de las anteriores, ya que en este caso usaremos una combinación de telegraf para Microsoft Windows para recoger métricas de los servidores de Veeam Backup y un shell script para recoger las métricas de Enterprise Manager mediante RESTful API. El diseño sería algo similar a esto:
Como podemos ver, el agente de telegraf recogerá todos los contadores con métricas, y los manda a InfluxDB, a su vez, el shell script descargará métricas desde Enterprise Manager usando RESTful API, que mandará a InfluxDB también, desde donde podemos visualizarlos cómodamente con Grafana.
Descargar e instalar como servicio telegraf para Microsoft Windows
Aunque ya os conté los pasos hace unos años, vamos a ver los pasos actualizados, lo primero será descargar la última versión de Telegraf para Windows desde GitHub:
Crearemos una carpeta en C:/Program Files/Telegraf y extraeremos los ficheros dentro:
Desde una consola PowerShell o CMD, como administrador, lanzaremos lo siguiente:
C:\"Program Files"\Telegraf\telegraf.exe --service install
Y ya con esto tendríamos telegraf instalado, para arrancarlo, podríamos lanzarlo probando la config con el siguiente comando:
C:\"Program Files"\Telegraf\telegraf.exe --config C:\"Program Files"\Telegraf\telegraf.conf --test
O un simple:
net start telegraf
Ya que tenemos todo listo, vamos al siguiente paso para ver lo que tenemos que añadir adicional al fichero de configuración.
Configuración de telegraf.conf para Veeam Enterprise Manager
El fichero de configuración de telegraf es bastante denso, lo primero que tendremos que editar como siempre es el output, donde tendremos que configurar la ruta del InfluxDB donde estamos mandando los datos, en mi caso:
[[outputs.influxdb]] urls = ["http://192.168.1.3:8086"] database = "telegraf" username = "myuser" password = "mypass"
Además de esto básico, esta es la configuración recomendada para poder ingerir bien el hostname del VBR:
## Override default hostname, if empty use os.Hostname() hostname = "yourvbr.yourdomain.com"
Con este fichero de telegraf.conf listo, editar por favor si tenéis los logs en otra ubicación o algo, ya podremos arrancar el servicio:
net start telegraf
Podemos hacer un more del telegraf.log para ver si hay algún error.
Ya tenemos todo, vamos al siguiente paso.
Descargar y configurar el script veeam-enterprisemanager.sh
Ya tenemos casi todo listo, nos queda un último paso, el script que hará que todo esto funcione, nos descargaremos la última versión desde el repositorio de Github:
Este script shell, puede descargarse y ejecutarse desde el servidor de telegraf, o influxDB, o cualquier otro Linux. Tendremos que editar los parámetros de configuración:
## # Configurations ## # Endpoint URL for InfluxDB veeamInfluxDBURL="http://YOURINFLUXSERVERIP" #Your InfluxDB Server, http://FQDN or https://FQDN if using SSL veeamInfluxDBPort="8086" #Default Port veeamInfluxDB="telegraf" #Default Database veeamInfluxDBUser="USER" #User for Database veeamInfluxDBPassword="PASSWORD" #Password for Database # Endpoint URL for login action veeamUsername="YOUREMUSER" #Your username, if using domain based account, please add it like [email protected] (if you use domain\account it is not going to work!) veeamPassword="YOUREMPASSWORD" veeamAuth=$(echo -ne "$veeamUsername:$veeamPassword" | base64); veeamRestServer="YOUREMSERVERIP" veeamRestPort="9398" #Default Port
Hacerlo ejecutable con este simple paso:
chmod +x veeam_enterprisemanager.sh
Nos aseguraremos que tenemos jq instalado, un apt-get install jq o yum install jq si usamos CentOS:
sudo apt-get install jq
Y ya al lanzarlo si todo ha ido bien, veremos lo siguiente:
HTTP/1.1 204 No Content Content-Type: application/json Request-Id: 53ee7045-30e1-11ea-8bf5-000000000000 X-Influxdb-Build: OSS X-Influxdb-Version: 1.6.3 X-Request-Id: 53ee7045-30e1-11ea-8bf5-000000000000 Date: Tue, 07 Jan 2020 00:04:52 GMT
Si estamos contentos, lo programaremos cada 30 minutos, así:
crontab -e */30 * * * * /home/oper/veeam_enterprisemanager.sh >> /var/log/veeam_enterprisemanager.log 2>&1
Ya está todo, vamos al siguiente paso.
Comprobando que estamos ingiriendo información con Chronograf
Lo normal a estas alturas, si hemos realizado bien todos los pasos, es que ya estemos mandando información recopilada por el script hacía InfluxDB, si realizamos una búsqueda usando el maravilloso Chronograf, podremos comprobar que tenemos información:
Todas las variables de este nuevo script de Veeam para Enterprise Manager se guardan en veeam_em_* con lo que es realmente sencillo encontrarlas.
Dashboards de Grafana
He creado un Dashboard desde cero seleccionando las mejores peticiones a la base de datos, rematando colores, pensando que gráfica y cómo mostrarla, y además todo está automatizado de manera que encaja con nuestro entorno sin ningún problema y sin tener que editar nada de forma manual. El Dashboard lo podéis encontrar aquí, una vez importado, podéis usar los menús desplegables superiores para seleccionar entre organizaciones, backups, repositories y proxies,VMs, etc.:
Importar los Dashboard de Grafana de manera sencilla
Para que no tengáis que perder horas configurando un nuevo Dashboard, e ingerir y depurar queries, os he creado ya cuatro maravillosos Dashboards con todo lo necesario para monitorizar nuestro entorno de manera muy sencilla, os quedará como la imagen que os mostré más arriba.Desde nuestro Grafana, haremos Create – Import
Seleccionaremos el nombre que queramos e introduciremos el ID: 11516, que es la ID únicas del Dashboard, o la URL:
Con los menús de arriba podréis desplegar y ajustar el Dashboard a vuestro VBR, Repositorios, Jobs, VMs, etc.:
Espero que os guste, y me gustaría dejaros la serie completa aquí, para que empecéis a jugar con los plugins que os he ido contando todos estos años:
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte I (Instalando InfluxDB, Telegraf y Grafana)
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte II (Instalar agente Telegraf en Nodos remotos Linux)
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte III Integración con PRTG
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte IV (Instalar agente Telegraf en Nodos remotos Windows)
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte V (Activar inputs específicos, Red, MySQL/MariaDB, Nginx)
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte VI (Monitorizando Veeam)
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte VII (Monitorizar vSphere)
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte VIII (Monitorizando Veeam con Enterprise Manager)
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte IX (Monitorizando Zimbra Collaboration)
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte X (Grafana Plugins)
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XI
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XII – Plugin nativo de Telegraf para vSphere
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XIII – Veeam Backup for Microsoft Office 365
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XIV – Veeam Availability Console
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XV – Monitorización IPMI de nuestros Hosts ESXi
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XVI – Rendimiento y seguridad avanzada de Veeam Backup for Microsoft Office 365
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XVII – Mostrando los Dashboards en dos monitores usando Raspberry Pi 4
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XVIII – Monitorizar temperatura y estado de Raspberry Pi 4
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XIX (Monitorizando Veeam con Enterprise Manager) Shell Script
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XX (Monitorizando Certificados SSL x.509)
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XXI (Monitorizando HTTP Responses)
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XXII (Monitorizando Cloudflare con Mapa)
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XXIII (Monitorizando WordPress con Jetpack RESTful API)
- En Busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XXIV (Monitorizando de Veeam for Microsoft Azure)
- En Busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XXV (Monitorizando Consumo Eléctrico)
- En Busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XXVI (Monitorizando Veeam Backup for Nutanix)
- En Busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XXVII (Monitorizando ReFS y XFS (block-cloning y reflink)
- En Busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XXVIII (Monitorizando HPE StoreOnce)
- En Busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XXIX (Monitorizando PiHole)
- En Busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XXX (Monitorizando Veeam Backup for AWS)
- En Busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XXXI (Monitorizando Unifi Protect)
- En Busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XXXII (Monitorizando Veeam ONE – experimental)
- En Busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XXXIII (Monitorizando NetApp ONTAP)
- En Busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XXXIV (Monitorizando Goldshell Miners – JSONv2)


Buenas tardes Jorge,
Antes que nada muchisimas felicidades por cada uno de los posts que creas la verdad que son muy faciles de seguir y de implementar aquello que quiero.
En esta ocasion estoy intentando realizar la monitorizacion en mi servidor de Grafana tanto de Veeam Avaibility Console como del dashboard del Veeam B&R pero a la hora de lanzar cada uno de los scripts para verificar que se conecta correctamente me salta los siguientes mensajes de error:
script_veeam/veeam_availability-console-grafana.sh: 35: script_veeam/veeam_availability-console-grafana.sh: jq: not found
script_veeam/veeam_availability-console-grafana.sh: 43: script_veeam/veeam_availability-console-grafana.sh: declare: not found
script_veeam/veeam_availability-console-grafana.sh: 44: script_veeam/veeam_availability-console-grafana.sh: jq: not found
script_veeam/veeam_availability-console-grafana.sh: 162: script_veeam/veeam_availability-console-grafana.sh: jq: not found
script_veeam/veeam_availability-console-grafana.sh: 163: script_veeam/veeam_availability-console-grafana.sh: jq: not found
script_veeam/veeam_availability-console-grafana.sh: 164: script_veeam/veeam_availability-console-grafana.sh: jq: not found
script_veeam/veeam_availability-console-grafana.sh: 165: script_veeam/veeam_availability-console-grafana.sh: jq: not found
script_veeam/veeam_availability-console-grafana.sh: 166: script_veeam/veeam_availability-console-grafana.sh: jq: not found
script_veeam/veeam_availability-console-grafana.sh: 167: script_veeam/veeam_availability-console-grafana.sh: jq: not found
script_veeam/veeam_availability-console-grafana.sh: 169: script_veeam/veeam_availability-console-grafana.sh: jq: not found
script_veeam/veeam_availability-console-grafana.sh: 171: script_veeam/veeam_availability-console-grafana.sh: jq: not found
script_veeam/veeam_availability-console-grafana.sh: 172: script_veeam/veeam_availability-console-grafana.sh: jq: not found
script_veeam/veeam_availability-console-grafana.sh: 173: script_veeam/veeam_availability-console-grafana.sh: jq: not found
script_veeam/veeam_availability-console-grafana.sh: 174: script_veeam/veeam_availability-console-grafana.sh: jq: not found
script_veeam/veeam_availability-console-grafana.sh: 175: script_veeam/veeam_availability-console-grafana.sh: jq: not found
script_veeam/veeam_availability-console-grafana.sh: 176: script_veeam/veeam_availability-console-grafana.sh: jq: not found
script_veeam/veeam_availability-console-grafana.sh: 177: script_veeam/veeam_availability-console-grafana.sh: jq: not found
script_veeam/veeam_availability-console-grafana.sh: 178: script_veeam/veeam_availability-console-grafana.sh: jq: not found
script_veeam/veeam_availability-console-grafana.sh: 179: script_veeam/veeam_availability-console-grafana.sh: jq: not found
script_veeam/veeam_availability-console-grafana.sh: 180: script_veeam/veeam_availability-console-grafana.sh: jq: not found
script_veeam/veeam_availability-console-grafana.sh: 181: script_veeam/veeam_availability-console-grafana.sh: jq: not found
script_veeam/veeam_availability-console-grafana.sh: 182: script_veeam/veeam_availability-console-grafana.sh: jq: not found
HTTP/1.1 400 Bad Request
Content-Type: application/json
Request-Id: 977062d9-5710-11ea-817b-005056b18c13
X-Influxdb-Build: OSS
X-Influxdb-Error: unable to parse ‘veeam_vac_vcclicense,edition=,status=,type=,contactPerson=,backupServerName=,companyName= licenseExpirationDate=1582502400,supportExpirationDate=1582502400,licensedCloudConnectBackups=,usedCloudConnectBackups=,licensedCloudConnectReplicas=,usedCloudConnectReplicas=,licensedCloudConnectServers=,usedCloudConnectServers=,licensedCloudConnectWorkstations=,usedCloudConnectWorkstations=’: missing tag value
X-Influxdb-Version: 1.7.8
X-Request-Id: 977062d9-5710-11ea-817b-005056b18c13
Date: Mon, 24 Feb 2020 14:18:56 GMT
Content-Length: 433
{“error”:”unable to parse ‘veeam_vac_vcclicense,edition=,status=,type=,contactPerson=,backupServerName=,companyName= licenseExpirationDate=1582502400,supportExpirationDate=1582502400,licensedCloudConnectBackups=,usedCloudConnectBackups=,licensedCloudConnectReplicas=,usedCloudConnectReplicas=,licensedCloudConnectServers=,usedCloudConnectServers=,licensedCloudConnectWorkstations=,usedCloudConnectWorkstations=’: missing tag value”}
Que me falta por configurar!?
Muchas gracias de antemano
Saludos,
Tienes que instalar jq:
sudo apt-get install jq
o yum install jq si usas CentOS
Buenos días.
creo que había escrito el comentario en la entrada que no era, muchas gracias por por el tiempo y la disposición para realizar este tipo de entradas las cuales ayudan mucho a las personas que estamos comenzando en este mundo de grafana y veeam backup, he seguido todo el tutorial sin ningún problema, pero a la hora de ejecutar el script me esta sacando un error en jq, con lo cual el grafana solo me esta mostrando los primeros gráficos, espero que me puedas colaborar si sabes a que se debe este error, de ante mano muchas gracias.
jq: error (at :1): Cannot iterate over null (null)
jq: error (at :1): Cannot iterate over null (null)
jq: error (at :1): Cannot iterate over null (null)
jq: error (at :1): Cannot iterate over null (null)
jq: error (at :1): Cannot iterate over null (null)
jq: error (at :1): Cannot iterate over null (null)
jq: error (at :1): Cannot iterate over null (null)
Saludos Yeison,
Eso puede ser por varios motivos, supongo que usas Enterprise Manager, y tienes Enterprise Plus, ademas, has puesto usuario asi [email protected] ? Un saludo
Thank you Jorge for this amazing post! I’m having problems only with the Veeam Backup Performance (CPU,RAM,UPTIME,DISK,NETWORK) dashboard. I have two separated servers, a Win2008 R2 with Veeam Enteprise Manager and a Win2019 Veeam Backup Server. It shows the correct IP Address in the line title, but it doesn’t show any data.
Hello Amauri,
You need to install the telegraf agent on the Enterprise Manager only. Let me know how it goes.
Buenas tardes,
Jorge muchas gracias por este Dashboard que funciona excelente yo lo monte y funciona buenisimo pero tengo un problema quiero monitorizar un veeam que se encuentra en la red del cliente me puede orientar como hacer para que el Influxdb que se encuentra en mi red pueda rellenarse desde el telegraf qeu esta en su red,
te explico un poco tengo mi red y un fireware ya tiene apertira el puerto 8086 y el cliente tiene un fireware y el ordenar lo cual mande aperturar el puerto 8086 pero el telegraf no se si lo tengo que apuntar a la IP de mi servidor o mi wan?? me puedes ayudar un poco.
Gracias. y saludos.
Buenas Jorge nesecito tomar datos de una Cabina Pure Storage, tengo un Scrip en Pyhton que realizar la captura de los taos pero no se como enviarlo al Influxdb me pudieras ayudar?
Saludos Jose,
Supongo que si ya tienes los datos, ahora enviarlos a InfluxDB es facil – https://www.influxdata.com/blog/writing-data-to-influxdb-with-python/
Buenas tardes jorge disculpa algo no me esta funcionando, me puedes ayudar con lo de Monitorizar las Pure Storage tengo el API token, conoces alguna forma de monitorizarla? lo de Python no lo manejo mucho, te comento del script si coloco: El Script -h la IP de la cabina -k y el API token el me devuelve toda la información de la cabina, pero llego hasta allí no se como llamar a ese script si se configura desde el Telegraf o si lo configuro directo en el InfluxDB.
Muchas gracias de ante mano.
Saludos Jose Antonio,
Pues, he hablado sobre como hacer todo esto en el siguiente video – https://www.youtube.com/watch?v=m4eVyByUkps&feature=youtu.be
Es un proceso sencillo, pero que necesitas depurar y ser maestro en ello poco a poco, espero te ayude, ademas tienes todos mis scripts, que son faciles de leer, ya me dices.
Un saludo
Excelente Dashboard, gracias por compartirlo. Lo tengo funcional en mi entorno. Una duda respecto a esta métrica “Consumo de espacio en disco por cada Veeam Backup Repository”, puede ser que en realidad lo que informa es el espacio libre y no el espacio utilizado ? Porque me informa 67,66% y yo tengo usado el 32% aprox.