Skip to main content

Greetings, friends! I want to share with you the new Grafana Dashboard for Veeam Backup & Replication, no Enterprise Manager is needed, and it uses 100% VBR API.

Small note: For those familiar with the data protection scene, you might recall that we’ve already got a Grafana Dashboard dedicated to the Veeam Enterprise Manager API since 2020.

 

Grafana Dashboard for Veeam Backup & Replication API

 

When you finish this article, if you follow all the steps, you should have something similar to this. It might be different according to your environment, number of days you select, protected workloads, jobs, etc.

Dashboard – Summary

  • Job Historical Information – The very first graph. The most important one in my opinion. Grouped by 24 hours, get to know the status of your policies per day, on a range in time.
  • Job Historical Information Table – Very similar to the previous panel, but this time with more details about job name, status, date, etc.
  • Job Historical Information Duration – Very similar to previous panels, but this time showing in a bubble way, how much every job has taken to execute. A very cool way to see what jobs are taking the longer, trends, etc.
  • Job Last Result – BIG COLORED PANELS, what everyone I talk about is asking for. Get to know the last status across all jobs, and focus only on the ones are yellow/red.
  • Infrastructure – A few tables that shows some Infrastructure data across the Veeam Backup & Replication. A lot to improve here, but so far the VBR API doesn't give us much more details.
  • Restore Points – More big panels in colors. The more points, the darker the green becomes. This is a list of all your workloads, or the selected workload on top, with the amount of restore points to date.

Topology with all logical components

Very simple way of working, we will use a bash shell script that connects to our Veeam Backup & Replication Servers, 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_backup_and_replication.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="http://YOURINFLUXSERVERIP" #Your InfluxDB Server, http://FQDN or https://FQDN if using SSL
veeamInfluxDBPort="8086" #Default Port
veeamInfluxDBBucket="veeam" # 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
veeamJobSessions="1000"
veeamUsername="YOURVBRUSER"
veeamPassword="YOURVBRPASSWORD"
veeamBackupServer="YOURVBRAPIPORT"
veeamBackupPort="9419" #Default Port

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

chmod +x veeam_backup_and_replication.sh

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

Writing veeam_vbr_info to InfluxDB
Writing veeam_vbr_sessions to InfluxDB
Writing veeam_vbr_sessions to InfluxDB
Writing veeam_vbr_sessions to InfluxDB
Writing veeam_vbr_sessions to InfluxDB
Writing veeam_vbr_sessions to InfluxDB

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

*/30 * * * * /home/oper/veeam_backup_and_replication.sh >> /var/log/veeam_backup_and_replication.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 the ID:

Import Grafana Dashboards easily

Knowing the Grafana dashboard ID, we can just import it:18854:

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.

Thanks for sharing with us, @jorge.delacruz !👍🏻


@jorge.delacruz yes I can connect with the same user/password in swagger

Hi @jorge.delacruz  I am getting the “Unauthorized: Authentication failed” Error when executing the bash script. I am using the local Administrator account to access the API. It works well with swagger. Which credentials should be used from the bash script to access the API?


Well, do you have any special character in the password that can escape the double quotes?, if so, you can always can try creating a local admin in VBR server, give it access in the console with an easier pass and give it a go.


Well, do you have any special character in the password that can escape the double quotes?, if so, you can always can try creating a local admin in VBR server, give it access in the console with an easier pass and give it a go.

Hi @jorge.delacruz after using a simple password, it can push some data to influx dB. there is a new error as below

 


Well, do you have any special character in the password that can escape the double quotes?, if so, you can always can try creating a local admin in VBR server, give it access in the console with an easier pass and give it a go.

Hi @jorge.delacruz after using a simple password, it can push some data to influx dB. there is a new error as below

 

Hello, you can omit that, it is just a job that is in progress.

Cheers


Well, do you have any special character in the password that can escape the double quotes?, if so, you can always can try creating a local admin in VBR server, give it access in the console with an easier pass and give it a go.

Hi @jorge.delacruz after using a simple password, it can push some data to influx dB. there is a new error as below

 

Hi @jorge.delacruz after a retry it is now working okay.

Thank so much.

Is it possible to pull and display data for: surebackup, cloud failover plans and cloud connect repository?


Hello, full reference can be found here:

If you have any FR, please go to the Forums and contact Oleg :)

 

I do not think this is possible today


Getting an Unsupported RESTAPI version when attempting to run against a Veeam B&R 12 install.  Any ideas?

 

After changing the x-api-version: 1.1-rev1 to rev0 it worked fine.  Must be missing an update or something.


Just wanted to add my findings, if you are running influx with an selfsign certificate, you will have to do a find and replace on the sh script:

Find: influx write

Replace: influx write --skip-verify


Hello,

What permissions does the Veeam user need? I don't want to enter the password of an admin user in plain text in the file.

Cheers, Heyko


@Heyko I created a Veeam service account with read only access (Veeam Backup viewer permission) and the script is able to pull data just fine


Just wanted to add my findings, if you are running influx with an selfsign certificate, you will have to do a find and replace on the sh script:

Find: influx write

Replace: influx write --skip-verify

Nice catch, I always use proper SSL. Will modify that right away, thanks a lot!


Hello,

What permissions does the Veeam user need? I don't want to enter the password of an admin user in plain text in the file.

Cheers, Heyko

Hello, well it requires a user that can login in the RESTAPI. Try a Veeam Backup Viewer, and of course, reduce all windows permissions to that user, so no RDP, etc.

 

Ah, I can see that @maaron has just tried it, nice stuff!


Hi,
I'm trying to run the script for veeam backup and replication v11 but i get this error:

Bad request: Unsupported RESTAPI version. The following versions are supported: v1.0-rev1.

Changing the script x-api-version to 1.0-rev1 I get these errors:

 

root@veeamdashboard:~# ./veeam_backup_and_replication.sh
Successfully obtained bearer token
Writing veeam_vbr_info to InfluxDB
Error: failed to write data: 400 Bad Request: unable to parse 'veeam_vbr_info,veeamVBRId=,veeamVBRName=,veeamVBRVersion=,veeamVBR=192.168.1.150,veeamDatabaseVendor= vbr=1': missing tag value
jq: error (at <stdin>:1): Cannot iterate over null (null)
jq: error (at <stdin>:1): Cannot iterate over null (null)
jq: error (at <stdin>:1): Cannot iterate over null (null)
jq: error (at <stdin>:1): Cannot iterate over null (null)
jq: error (at <stdin>:1): Cannot iterate over null (null)
root@veeamdashboard:~#

 

 

And I miss a lot of info on the dashboard (eg Managed Servers, Proxy, Backup repository usage, Backup repositories)

I've created a simple readonly user in Veeam of course, with a "simple" password.

Any idea?


Maybe @jorge.delacruz can assist you with this one.


Just wanted to add my findings, if you are running influx with an selfsign certificate, you will have to do a find and replace on the sh script:

Find: influx write

Replace: influx write --skip-verify

Another Finding I want to add as I've only just been able to get the dashboard to work.

If you are getting “vnone” showing on your dashboard this is because the the influxdb datasource within Grafana needs to have the query language set to “flux” instead of the default “influxQL”


@maaron Already checked,it’s not my case.

Of course thank you!

I miss some data and I get these errors:

 

jq: error (at <stdin>:1): Cannot iterate over null (null)
jq: error (at <stdin>:1): Cannot iterate over null (null)
jq: error (at <stdin>:1): Cannot iterate over null (null)

 

No idea why (I had to replace the rest api version in the script otherwise it won’t start at all)

 


uhm...I’m using version 11 of Veeam, can it be the problem with my errors?


Ok I found the problem...needed to replace ALL the occurence of rest-api version...missed some occurence.

 

Now I still get this error at the beginning of the script:

Successfully obtained bearer token
Writing veeam_vbr_info to InfluxDB
Error: failed to write data: 400 Bad Request: unable to parse 'veeam_vbr_info,veeamVBRId=,veeamVBRName=,veeamVBRVersion=,veeamVBR=192.168.1.190,veeamDatabaseVendor= vbr=1': missing tag value
Writing veeam_vbr_sessions to InfluxDB

….

Writing veeam_vbr_sessions to InfluxDB

 

PS: It think the “x-api version” should be put inside a variable at the beginning of the script

 

 

 


Ok...finally found the problem with the API and v11.

V11 doesn’t support serverInfo

https://helpcenter.veeam.com/archive/backup/110/vbr_rest/reference/vbr-rest-v1-rev2.html#tag/Service

 

I hope serverInfo is not fundamental for the script

 

I hope this can help someone else

 


Ok...finally found the problem with the API and v11.

V11 doesn’t support serverInfo

https://helpcenter.veeam.com/archive/backup/110/vbr_rest/reference/vbr-rest-v1-rev2.html#tag/Service

 

I hope serverInfo is not fundamental for the script

 

I hope this can help someone else

 

Why not update to v12?  Version 11 is fairly old.


I think adding the API version as variable is a good idea, will revisit the script this week and add a lot of new stuff. Thanks for trusting this Grafana project, it is being fun, and it will get much better as more endpoints come to it.


Is it normal that I don’t see replica job statistic in the dashboard? (I can only see backups)


Ok...finally found the problem with the API and v11.

V11 doesn’t support serverInfo

https://helpcenter.veeam.com/archive/backup/110/vbr_rest/reference/vbr-rest-v1-rev2.html#tag/Service

 

I hope serverInfo is not fundamental for the script

 

I hope this can help someone else

 

Why not update to v12?  Version 11 is fairly old.

We’re working on a new infrastructure in these days but i wanna try this dashboard before installing it on the new servers


Replicas should be there, where are you missing them, on what widget/widgets? Cheers


Comment