Skip to main content

Greetings, community! For years, I have been working with many, if not all, Veeam APIs to build gorgeous dashboards and visualizations in Grafana, but I always had in my mind on using the truly comprehensive Veeam ONE API to build the Dashboard of Dashboards, or the Supreme View as Veeam ONE has pretty much all the other products information, and even more. Small spoiler: Since upcoming v13, even the Reports would available from API!!!!!

Grafana Dashboards for Veeam ONE API

I have prepared two views, for now, using Veeam ONE API, views that include absolutely everything (Onprem ALL Hypervisors, All Job Types, Public Cloud, and even VB365!). When you finish this article, if you follow all the steps, you should have something similar to this. It might be different in content of course depending of your environment.

Job/Policy History like never seen before
Protected Workloads view, including pretty much all platforms. Onprem, Cloud, and Microsoft 365

Job Policy History - Summary

  • Platform support: VM Backups, Cloud Director Backups, VM Replication, Backup Copy, VM Copy, File Backup, Agent Backup, Agent Policies, Microsoft 365 Backup, Public Cloud Policies
  • Last Job Run: Easy to see and filter when the job finished last time
  • Platform: Easy to filter by platform
  • Status: Coloured by status
  • Avg Duration: For the jobs that supports this metric
  • Last Duration: For the jobs that supports this metric
  • Transferred Data: For the jobs that supports this metric
  • Backup Server: Whenever available

Protected Workloads - Summary

  • Platform support: Virtual Machines (all supported hypervisors), Computers (all supported types), File Shares, Object Storage, Enterprise Applications, 365 Users, 365 Groups, 365 Sites, 365 Teams, Public Cloud VMs, Public Cloud Files, Public Cloud Databases, Public Cloud Networks
  • Workload Name: Get granular, find that workload you are interested
  • Last protected date: In regular date format
  • Last protected age: Human-friendly date format
  • Backup Server: To filter by VBR when you have hundreds
  • Job Name: Super useful to identify workloads on multiple jobs
  • Provisioned Size, Used Size: Whenever available, usually just for VMs
  • Parent Hostname: Good to identify the vCenter, or Cluster where the workload belongs
  • Platform: Easy to filter by platform

Topology with all logical components

Very simple way of working, we will use a bash shell script that connects to our Veeam ONE Server, using the REST API, and then it will send the metrics to InfluxDB, and visualize them with Grafana. The design would be something similar to this:

Download and configure the veeam_one_overview.sh script

We have almost everything ready, we have one last step, the script that will make all this work, we will download the latest version from the Github repository:

You will need jq, so please go ahead and install it first (apt-get install jq, or yum install jq)

This shell script can be downloaded and run from the telegraf server, InfluxDB, or any other Linux. We will have to edit the configuration parameters:

# Configurations
##
# Endpoint URL for InfluxDB
veeamInfluxDBURL="YOURINFLUXSERVER" #Your InfluxDB Server, http://FQDN or https://FQDN if using SSL
veeamInfluxDBPort="8086" #Default Port
veeamInfluxDBBucket="YOURINFLUXDB" # InfluxDB bucket name (not ID)
veeamInfluxDBToken="TOKEN" # InfluxDB access token with read/write privileges for the bucket
veeamInfluxDBOrg="ORG NAME" # InfluxDB organisation name (not ID)

# Endpoint URL for login action
veeamUsername="YOURVEEAMONEUSER" #Usually domain\user or user@domain.tld
veeamPassword="YOURVEEAMONEPASS"
veeamONEServer="https://YOURVEEAMONEIP" #You can use FQDN if you like as well
veeamONEPort="1239" #Default Port

Once the changes are done, make the script executable with chmod:

chmod +x veeam_one_overview.sh

The output of the command should be something like the next, without errors:

Writing veeam_ONE_about to InfluxDB
Writing veeam_ONE_overview_protectedvms data to InfluxDB
Writing veeam_ONE_overview_protectedvms data to InfluxDB
Writing veeam_ONE_overview_protectedvms data to InfluxDB
Writing veeam_ONE_overview_protectedvms data to InfluxDB
Writing veeam_ONE_overview_protectedvms data to InfluxDB
Writing veeam_ONE_overview_protectedvms data to InfluxDB
Writing veeam_ONE_overview_protectedvms data to InfluxDB
Writing veeam_ONE_overview_protectedvms data to InfluxDB
Writing veeam_ONE_overview_protectedvms data to InfluxDB
Writing veeam_ONE_overview_protectedvms data to InfluxDB

If so, please now add this script to your crontab, change to your script path, like for example every 60 minutes:

*/60 * * * * * /home/oper/veeam_one_overview.sh >> /var/log/veeam_one_overview.log 2>&1

Grafana Dashboards

I have already spend the time building all the queries, variables etc for you. Just go to Grafana and download it, or use these IDs:

Import Grafana Dashboards easily

Knowing the Grafana dashboard ID, we can just import them:

  • 23465
  • 23466

And that’s it. With the menus on the top you can display and adjust the Dashboard to your different choices, like jobs, workloads, etc.:

 

Please leave your feedback in the comments, or on GitHub.
Link to all the rest of Veeam Grafana Dashboards:

A post with all the links to your Grafana work...GREAT! Thanks for sharing ​@jorge.delacruz !


Thanks for sharing ​@jorge.delacruz !!


This is awesome! 😎 Always looking for more Grafana integrations with Veeam and VONE which has more data is going to be fantastic.  I will get this one implemented and provide feedback.


Got the script working and dashboards imported.  Very cool so far.  Will continue to play and provide feedback.  Great work Jorge.

 
 
 

Got the script working and dashboards imported.  Very cool so far.  Will continue to play and provide feedback.  Great work Jorge.

 
 
 

Awesome mate! The script is limited to 100 results to all queries, that means jobs, and protected workloads, etc. If you have more than 100 of anything, consider to give it a batch replace to 1000 or the number you want :)

I am obsessed with the filtering capabilities of the Grafana table, down to a single workload.


That’s awesome! thanks for making this


Got the script working and dashboards imported.  Very cool so far.  Will continue to play and provide feedback.  Great work Jorge.

Awesome mate! The script is limited to 100 results to all queries, that means jobs, and protected workloads, etc. If you have more than 100 of anything, consider to give it a batch replace to 1000 or the number you want :)

I am obsessed with the filtering capabilities of the Grafana table, down to a single workload.

You sure it’s limited to 100? Looking at the script on github it looks more like 10,000 based on the example URL below

veeamONEURL="$veeamONEServer:$veeamONEPort/api/v2.2/publicCloud/policies/virtualMachines?Offset=0&Limit=10000"


do you have some insights from VONE 13 as well?

does it change that VONE will be able to monitor cpu, memory for linux servers?


Amazing! Thanks for sharing!


Hi,

In the section below

# Endpoint URL for login action
veeamUsername="YOURVEEAMONEUSER" #Usually domain\user or user@domain.tld
veeamPassword="YOURVEEAMONEPASS"
veeamONEServer="https://YOURVEEAMONEIP" #You can use FQDN if you like as well
veeamONEPort="1239" #Default Port

Is it possible to replace the part where you need to add a Veeam Username and Password by an GMSA account? Don’t like to add passwords.

Thanks,
Benny


Comment