[Updated] Grafana Dashboard for Veeam Enterprise Manager


Userlevel 7
Badge +6

Greetings everyone, as you know I have been working on Grafana Dashboards across all Veeam RESTful APIs (the only one pending is VBA GCP), but as the time has passed, the releases and core products I was using have evolved as well…

I am talking about the time-series I am using to store all the recollected data from the APIs. I was using InfluxDB v1.x (latest stable release is v1.8), but InfluxData is about to deprecate it and consider it end-of-life at the end of 2021. That left all the Community using it with the only option to go to InfluxDB v2.x, and start leveraging Flux, the new query language, which is extremely versatile btw.

Introducing the new Grafana Dashboard for Veeam Enterprise Manager for InfluxDB v2 using Flux, and Grafana 8.x

Before go any further, I just wanted to thank tigattack who contributed to the Script that pushes the data to InfluxDB v2.0.

Now, there it has been ton of work, as I needed to craft all the queries again from scratch converting legacy InfluxQL things like this:

Into something modern like this using Flux (which I am new into)

The final result is something extremely beautiful, yet useful, like this. Yes at the top you can filter by so many things, VMs, VBR Servers, Repos, Backup Jobs, Replica, etc.:

Alright, alright, I know YOU WANT IT, so keep reading about the setup.

Step 1 - Have InfluxDB v2, and Grafana v8.x installed

I can not cover this here, but there are tons of guides about how to install both systems, they are just a few commands, or just deploy everything in Docker, ping me privately if need help.

Step 2 - Download, and prepare the veeam_enterprisemanager.sh

This is not that difficult, on a Linux system, it can be a Linux container inside WSL2, or just a VM, or a docker container, anything with access to your InfluxDB v2, and your Enterprise Manager:

You will need to edit the basics, these are your details:

##
# 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
veeamUsername="YOUREMUSER" #Your username, if using domain based account, please add it like user@domain.com (if you use domain\account it is not going to work!)
veeamPassword='YOUREMPASSWORD'
veeamJobSessions="100"
veeamAuth=$(echo -ne "$veeamUsername:$veeamPassword" | base64);
veeamRestServer="YOUREMSERVERIP"
veeamRestPort="9398" #Default Port

Make the script executable, and run it :) If all works, then schedule it.

Step 3 - Import the Veeam Dashboard on your Grafana

The final step, the easiest one, on your Grafana click Import and either use the ID 11516, or the URL - https://grafana.com/grafana/dashboards/11516

And that’s it, now you have a fresh Grafana with all your information that the Enterprise Manager has. If you keep running this for days, weeks, months, is when you will be able to see in great detail long-term trends, etc.

Final thoughts

This has been such a great experience for me, take something that works and it is been used by 500+ (number of downloads) Veeam enthusiasts out there, and make it slick and future-proof for cutting-edge like Flux and InfluxDB v2. Hope you like it, at the end, I made this for you all. thank you!


20 comments

Have got a new for no output data?

 

It’s missing some data 

the out script v12 write :

Writing veeam_em_overview to InfluxDB
Writing veeam_em_overview_vms to InfluxDB
Writing veeam_em_overview_jobs to InfluxDB
Writing veeam_em_overview_repositories to InfluxDB
Writing veeam_em_overview_repositories to InfluxDB
Writing veeam_em_overview_repositories to InfluxDB
Writing veeam_em_overview_repositories to InfluxDB
Writing veeam_em_overview_repositories to InfluxDB
Writing veeam_em_overview_repositories to InfluxDB
Writing veeam_em_overview_repositories to InfluxDB
Writing veeam_em_overview_repositories to InfluxDB
Writing veeam_em_overview_repositories to InfluxDB
Writing veeam_em_backup_servers to InfluxDB
There are not new veeam_em_job_sessions since 2023-03-06T13:56:30Z
There are not new veeam_em_job_sessionsvm since 2023-03-06T13:56:30Z
There are not new veeam_em_job_sessions since 2023-03-06T13:56:30Z
There are not new veeam_em_job_sessionsvm since 2023-03-06T13:56:30Z
There are not new veeam_em_nas_sessions since 2023-03-06T13:56:30Z
 

And idea?

Regards

Hello,

New script, and dashboard version, can be found on the VeeamHub, support now for v12, and other enhancements :)

Thank you. I test this this afternoon :)

With new script I had no error now.

Thank you all

Userlevel 7
Badge +6

Thank you @jorge.delacruz 

Userlevel 7
Badge +8

I’ll have to add this to my Grafana instance. 

Userlevel 7
Badge +6

Hello,

New script, and dashboard version, can be found on the VeeamHub, support now for v12, and other enhancements :)

Yes I confirme I had same error but after install jq it’s work.

 

But now I have this error only 5 last line :

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)

 

And idea?

The query isn’t pulling any data would be my opinion. 

I would run the query individually straight into the Linux console. 

 

copy all the data you have put in # Endpoint URL for login action straight into the console. 

 

veeamEMUrl="https://$veeamRestServer:$veeamRestPort/api/reports/summary/overview"

 

Run the below and hopefully should display a bunch of data. 

curl -X GET "$veeamEMUrl" -H "Accept:application/json" -H "X-RestSvcSessionId: $veeamXRestSvcSessionId" -H "Cookie: X-RestSvcSessionId=$veeamXRestSvcSessionId" -H "Content-Length: 0"

 Then try the following

veeamEMOUrl=$(curl -X GET "$veeamEMUrl" -H "Accept:application/json" -H "X-RestSvcSessionId: $veeamXRestSvcSessionId" -H "Cookie: X-RestSvcSessionId=$veeamXRestSvcSessionId" -H "Content-Length: 0" 2>&1 --silent | awk 'NR==1{sub(/^\xef\xbb\xbf/,"")}1')


echo $veeamEMOUrl | jq

Once you have run those individually run the following to see if you get anything from it. 

    veeamBackupServers=$(echo "$veeamEMOUrl" | jq --raw-output ".BackupServers")
veeamProxyServers=$(echo "$veeamEMOUrl" | jq --raw-output ".ProxyServers")
veeamRepositoryServers=$(echo "$veeamEMOUrl" | jq --raw-output ".RepositoryServers")
veeamRunningJobs=$(echo "$veeamEMOUrl" | jq --raw-output ".RunningJobs")
veeamScheduledJobs=$(echo "$veeamEMOUrl" | jq --raw-output ".ScheduledJobs")
veeamSuccessfulVmLastestStates=$(echo "$veeamEMOUrl" | jq --raw-output ".SuccessfulVmLastestStates")
veeamWarningVmLastestStates=$(echo "$veeamEMOUrl" | jq --raw-output ".WarningVmLastestStates")
veeamFailedVmLastestStates=$(echo "$veeamEMOUrl" | jq --raw-output ".FailedVmLastestStates")

 

Yes I confirme I had same error but after install jq it’s work.

 

But now I have this error only 5 last line :

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)

 

And idea?

veeamRestPort="9419" #Default Port

 

there is rest port right now

 

But today i deploy all like this post follow, but with this errors:

 

root@ubuntu20portatil:~# ./veeam_enterprisemanager.sh
./veeam_enterprisemanager.sh: line 40: jq: command not found
./veeam_enterprisemanager.sh: line 51: jq: command not found
./veeam_enterprisemanager.sh: line 52: jq: command not found
./veeam_enterprisemanager.sh: line 53: jq: command not found
./veeam_enterprisemanager.sh: line 54: jq: command not found
./veeam_enterprisemanager.sh: line 55: jq: command not found
./veeam_enterprisemanager.sh: line 56: jq: command not found
./veeam_enterprisemanager.sh: line 57: jq: command not found
./veeam_enterprisemanager.sh: line 58: jq: command not found
Writing veeam_em_overview to InfluxDB
curl: (7) Failed to connect to 172.19.44.255 port 80: Connection refused
./veeam_enterprisemanager.sh: line 73: jq: command not found
./veeam_enterprisemanager.sh: line 74: jq: command not found
./veeam_enterprisemanager.sh: line 75: jq: command not found
./veeam_enterprisemanager.sh: line 76: jq: command not found
./veeam_enterprisemanager.sh: line 77: jq: command not found
./veeam_enterprisemanager.sh: line 78: jq: command not found
./veeam_enterprisemanager.sh: line 79: jq: command not found
./veeam_enterprisemanager.sh: line 80: jq: command not found
./veeam_enterprisemanager.sh: line 81: jq: command not found
Writing veeam_em_overview_vms to InfluxDB
curl: (7) Failed to connect to 172.19.44.255 port 80: Connection refused
./veeam_enterprisemanager.sh: line 95: jq: command not found
./veeam_enterprisemanager.sh: line 96: jq: command not found
./veeam_enterprisemanager.sh: line 97: jq: command not found
./veeam_enterprisemanager.sh: line 98: jq: command not found
./veeam_enterprisemanager.sh: line 99: jq: command not found
./veeam_enterprisemanager.sh: line 100: jq: command not found
./veeam_enterprisemanager.sh: line 101: jq: command not found
./veeam_enterprisemanager.sh: line 102: jq: command not found
./veeam_enterprisemanager.sh: line 103: jq: command not found
./veeam_enterprisemanager.sh: line 104: jq: command not found
./veeam_enterprisemanager.sh: line 105: jq: command not found
./veeam_enterprisemanager.sh: line 106: jq: command not found
./veeam_enterprisemanager.sh: line 108: jq: command not found
Writing veeam_em_overview_jobs to InfluxDB
curl: (7) Failed to connect to 172.19.44.255 port 80: Connection refused
./veeam_enterprisemanager.sh: line 124: jq: command not found
./veeam_enterprisemanager.sh: line 146: jq: command not found
./veeam_enterprisemanager.sh: line 254: jq: command not found
./veeam_enterprisemanager.sh: line 260: jq: command not found
./veeam_enterprisemanager.sh: line 300: jq: command not found
./veeam_enterprisemanager.sh: line 306: jq: command not found
./veeam_enterprisemanager.sh: line 342: jq: command not found
./veeam_enterprisemanager.sh: line 348: jq: command not found
./veeam_enterprisemanager.sh: line 384: jq: command not found
./veeam_enterprisemanager.sh: line 390: jq: command not found
./veeam_enterprisemanager.sh: line 429: jq: command not found
./veeam_enterprisemanager.sh: line 475: jq: command not found
./veeam_enterprisemanager.sh: line 496: jq: command not found
./veeam_enterprisemanager.sh: line 502: jq: command not found
 

https://github.com/VeeamHub/grafana/issues/23#issuecomment-1310379876

any help pls….

The error your having looks like it can’t find the jq command. Have you tried to install jq on the system?

 

veeamRestPort="9419" #Default Port

 

there is rest port right now

 

But today i deploy all like this post follow, but with this errors:

 

root@ubuntu20portatil:~# ./veeam_enterprisemanager.sh
./veeam_enterprisemanager.sh: line 40: jq: command not found
./veeam_enterprisemanager.sh: line 51: jq: command not found
./veeam_enterprisemanager.sh: line 52: jq: command not found
./veeam_enterprisemanager.sh: line 53: jq: command not found
./veeam_enterprisemanager.sh: line 54: jq: command not found
./veeam_enterprisemanager.sh: line 55: jq: command not found
./veeam_enterprisemanager.sh: line 56: jq: command not found
./veeam_enterprisemanager.sh: line 57: jq: command not found
./veeam_enterprisemanager.sh: line 58: jq: command not found
Writing veeam_em_overview to InfluxDB
curl: (7) Failed to connect to 172.19.44.255 port 80: Connection refused
./veeam_enterprisemanager.sh: line 73: jq: command not found
./veeam_enterprisemanager.sh: line 74: jq: command not found
./veeam_enterprisemanager.sh: line 75: jq: command not found
./veeam_enterprisemanager.sh: line 76: jq: command not found
./veeam_enterprisemanager.sh: line 77: jq: command not found
./veeam_enterprisemanager.sh: line 78: jq: command not found
./veeam_enterprisemanager.sh: line 79: jq: command not found
./veeam_enterprisemanager.sh: line 80: jq: command not found
./veeam_enterprisemanager.sh: line 81: jq: command not found
Writing veeam_em_overview_vms to InfluxDB
curl: (7) Failed to connect to 172.19.44.255 port 80: Connection refused
./veeam_enterprisemanager.sh: line 95: jq: command not found
./veeam_enterprisemanager.sh: line 96: jq: command not found
./veeam_enterprisemanager.sh: line 97: jq: command not found
./veeam_enterprisemanager.sh: line 98: jq: command not found
./veeam_enterprisemanager.sh: line 99: jq: command not found
./veeam_enterprisemanager.sh: line 100: jq: command not found
./veeam_enterprisemanager.sh: line 101: jq: command not found
./veeam_enterprisemanager.sh: line 102: jq: command not found
./veeam_enterprisemanager.sh: line 103: jq: command not found
./veeam_enterprisemanager.sh: line 104: jq: command not found
./veeam_enterprisemanager.sh: line 105: jq: command not found
./veeam_enterprisemanager.sh: line 106: jq: command not found
./veeam_enterprisemanager.sh: line 108: jq: command not found
Writing veeam_em_overview_jobs to InfluxDB
curl: (7) Failed to connect to 172.19.44.255 port 80: Connection refused
./veeam_enterprisemanager.sh: line 124: jq: command not found
./veeam_enterprisemanager.sh: line 146: jq: command not found
./veeam_enterprisemanager.sh: line 254: jq: command not found
./veeam_enterprisemanager.sh: line 260: jq: command not found
./veeam_enterprisemanager.sh: line 300: jq: command not found
./veeam_enterprisemanager.sh: line 306: jq: command not found
./veeam_enterprisemanager.sh: line 342: jq: command not found
./veeam_enterprisemanager.sh: line 348: jq: command not found
./veeam_enterprisemanager.sh: line 384: jq: command not found
./veeam_enterprisemanager.sh: line 390: jq: command not found
./veeam_enterprisemanager.sh: line 429: jq: command not found
./veeam_enterprisemanager.sh: line 475: jq: command not found
./veeam_enterprisemanager.sh: line 496: jq: command not found
./veeam_enterprisemanager.sh: line 502: jq: command not found
 

https://github.com/VeeamHub/grafana/issues/23#issuecomment-1310379876

any help pls….

Userlevel 7
Badge +7

Awesome work, I need to find the time to build all this, and get rid of my old nagios and so on!

cool!

veeamRestPort="9419" #Default Port

 

there is rest port right now

 

But today i deploy all like this post follow, but with this errors:

 

root@ubuntu20portatil:~# ./veeam_enterprisemanager.sh
./veeam_enterprisemanager.sh: line 40: jq: command not found
./veeam_enterprisemanager.sh: line 51: jq: command not found
./veeam_enterprisemanager.sh: line 52: jq: command not found
./veeam_enterprisemanager.sh: line 53: jq: command not found
./veeam_enterprisemanager.sh: line 54: jq: command not found
./veeam_enterprisemanager.sh: line 55: jq: command not found
./veeam_enterprisemanager.sh: line 56: jq: command not found
./veeam_enterprisemanager.sh: line 57: jq: command not found
./veeam_enterprisemanager.sh: line 58: jq: command not found
Writing veeam_em_overview to InfluxDB
curl: (7) Failed to connect to 172.19.44.255 port 80: Connection refused
./veeam_enterprisemanager.sh: line 73: jq: command not found
./veeam_enterprisemanager.sh: line 74: jq: command not found
./veeam_enterprisemanager.sh: line 75: jq: command not found
./veeam_enterprisemanager.sh: line 76: jq: command not found
./veeam_enterprisemanager.sh: line 77: jq: command not found
./veeam_enterprisemanager.sh: line 78: jq: command not found
./veeam_enterprisemanager.sh: line 79: jq: command not found
./veeam_enterprisemanager.sh: line 80: jq: command not found
./veeam_enterprisemanager.sh: line 81: jq: command not found
Writing veeam_em_overview_vms to InfluxDB
curl: (7) Failed to connect to 172.19.44.255 port 80: Connection refused
./veeam_enterprisemanager.sh: line 95: jq: command not found
./veeam_enterprisemanager.sh: line 96: jq: command not found
./veeam_enterprisemanager.sh: line 97: jq: command not found
./veeam_enterprisemanager.sh: line 98: jq: command not found
./veeam_enterprisemanager.sh: line 99: jq: command not found
./veeam_enterprisemanager.sh: line 100: jq: command not found
./veeam_enterprisemanager.sh: line 101: jq: command not found
./veeam_enterprisemanager.sh: line 102: jq: command not found
./veeam_enterprisemanager.sh: line 103: jq: command not found
./veeam_enterprisemanager.sh: line 104: jq: command not found
./veeam_enterprisemanager.sh: line 105: jq: command not found
./veeam_enterprisemanager.sh: line 106: jq: command not found
./veeam_enterprisemanager.sh: line 108: jq: command not found
Writing veeam_em_overview_jobs to InfluxDB
curl: (7) Failed to connect to 172.19.44.255 port 80: Connection refused
./veeam_enterprisemanager.sh: line 124: jq: command not found
./veeam_enterprisemanager.sh: line 146: jq: command not found
./veeam_enterprisemanager.sh: line 254: jq: command not found
./veeam_enterprisemanager.sh: line 260: jq: command not found
./veeam_enterprisemanager.sh: line 300: jq: command not found
./veeam_enterprisemanager.sh: line 306: jq: command not found
./veeam_enterprisemanager.sh: line 342: jq: command not found
./veeam_enterprisemanager.sh: line 348: jq: command not found
./veeam_enterprisemanager.sh: line 384: jq: command not found
./veeam_enterprisemanager.sh: line 390: jq: command not found
./veeam_enterprisemanager.sh: line 429: jq: command not found
./veeam_enterprisemanager.sh: line 475: jq: command not found
./veeam_enterprisemanager.sh: line 496: jq: command not found
./veeam_enterprisemanager.sh: line 502: jq: command not found
 

I am getting the following message when running the sh.

 

Writing veeam_em_overview to InfluxDB

HTTP/1.1 204 No Content

X-Influxdb-Build: OSS

X-Influxdb-Version: v2.3.0+SNAPSHOT.090f681737

Date: Thu, 07 Jul 2022 12:00:06 GMT

 

Writing veeam_em_overview_vms to InfluxDB

HTTP/1.1 204 No Content

X-Influxdb-Build: OSS

X-Influxdb-Version: v2.3.0+SNAPSHOT.090f681737

Date: Thu, 07 Jul 2022 12:00:06 GMT

 

Writing veeam_em_overview_jobs to InfluxDB

HTTP/1.1 204 No Content

X-Influxdb-Build: OSS

X-Influxdb-Version: v2.3.0+SNAPSHOT.090f681737

Date: Thu, 07 Jul 2022 12:00:08 GMT

 

There are not new veeam_em_job_sessions since 2022-07-06T12:00:05Z

There are not new veeam_em_job_sessionsvm since 2022-07-06T12:00:05Z

There are not new veeam_em_job_sessions since 2022-07-06T12:00:05Z

There are not new veeam_em_job_sessionsvm since 2022-07-06T12:00:05Z

There are not new veeam_em_nas_sessions since 2022-07-06T12:00:05Z

Userlevel 7
Badge +4

Good one, Thanks for the update !

Userlevel 4
Badge +1

very nice. Will try to get it up and running in the new year :)

Userlevel 7
Badge +6

Very nice, thank you for the update @jorge.delacruz  😎👍🏼

Appreciated it!

Userlevel 7
Badge +6

Great work Jorge on this one.  Will try to find some time in the new year to start looking in to this stuff. :smiley:

Thank you, ping me when you will start the deployment, etc. Cheers!

Userlevel 7
Badge +17

Very nice, thank you for the update @jorge.delacruz  😎👍🏼

Userlevel 7
Badge +20

Great work Jorge on this one.  Will try to find some time in the new year to start looking in to this stuff. :smiley:

Comment