Agent Plugin: Missing Data for Veeam Jobs

CMK version: CEE 2.2.0p34
OS version: SLES 15-SP6

Error message: `[agent] Success, [piggyback] Success (but no data found for this host), Missing monitoring data for plugins: veeam_jobs, veeam_tapejobs

Output of “cmk --debug -vvn hostname”:

Checkmk version 2.2.0p34
Updating IPv4 DNS cache for HOSTNAME: IP-ADDRESS
Trying to acquire lock on /omd/sites/lkvbayern/var/check_mk/ipaddresses.cache
Got lock on /omd/sites/lkvbayern/var/check_mk/ipaddresses.cache
Releasing lock on /omd/sites/lkvbayern/var/check_mk/ipaddresses.cache
Released lock on /omd/sites/lkvbayern/var/check_mk/ipaddresses.cache
+ FETCHING DATA
  Source: SourceInfo(hostname='HOSTNAME', ipaddress='IP-ADDRESS', ident='piggyback', fetcher_type=<FetcherType.PIGGYBACK: 4>, source_type=<SourceType.HOST: 1>)
[cpu_tracking] Start [7fe4bcc93b50]
Read from cache: NoCache(HOSTNAME, path_template=/dev/null, max_age=MaxAge(checking=0.0, discovery=0.0, inventory=0.0), simulation=False, use_only_cache=False, file_cache_mode=1)
[PiggybackFetcher] Execute data source
No piggyback files for 'HOSTNAME'. Skip processing.
No piggyback files for 'IP-ADDRESS'. Skip processing.
[cpu_tracking] Stop [7fe4bcc93b50 - Snapshot(process=posix.times_result(user=0.0, system=0.0, children_user=0.0, children_system=0.0, elapsed=0.0))]
+ PARSE FETCHER RESULTS
  HostKey(hostname='HOSTNAME', source_type=<SourceType.HOST: 1>)  -> Add sections: []
Received no piggyback data
[cpu_tracking] Start [7fe4bcc6bb10]
value store: synchronizing
Trying to acquire lock on /omd/sites/lkvbayern/tmp/check_mk/counters/HOSTNAME
Got lock on /omd/sites/lkvbayern/tmp/check_mk/counters/HOSTNAME
value store: loading from disk
Releasing lock on /omd/sites/lkvbayern/tmp/check_mk/counters/HOSTNAME
Released lock on /omd/sites/lkvbayern/tmp/check_mk/counters/HOSTNAME
No piggyback files for 'HOSTNAME'. Skip processing.
No piggyback files for 'IP-ADDRESS'. Skip processing.
[cpu_tracking] Stop [7fe4bcc6bb10 - Snapshot(process=posix.times_result(user=0.020000000000000018, system=0.0, children_user=0.0, children_system=0.0, elapsed=0.010000001639127731))]
[piggyback] Success (but no data found for this host), execution time 0.0 sec | execution_time=0.010 user_time=0.020 system_time=0.000 children_user_time=0.000 children_system_time=0.000 cmk_time_agent=0.000

Since we installed Veeam Backup & Recovery (VBR) 12.3.2.3617 we don’t receive the VBR data that concerns all Jobs.
VBR and the Checkmk agent are running on Windows Server 2016. Until the update of VBR the Checkmk agent delivered all job data.
Checkmk agent is version 2.2 .
Agent plugins are mssql.vbs, veeam_backup_status.ps1 and windows_updates.vbs .

Any idea how to fix or debug the problem?

TIA!

Regards,
Tobias Crefeld.

What type of Veeam backups do you have?

  • vSphere
  • Nutanix
  • HyperV
  • Proxmox

If you have Proxmox or Nutanix, then you will see nothing without modifying the “veeam_backup_status.ps1” script. As these backup are not normal VBR jobs.

Often enough you have to restart the CheckMK agent service after updating Veeam. I think it has something to do with the paths to Veeam’s PowerShell scriplets; those seem to change when updating — and path changes aren’t propagated to running processes.

As central hypervisor management we are using vSphere only.
The monitoring worked fine since several years until we patched VBR two days ago.

After patching VBR the whole server has been rebooted so Checkmk service has been restarted as well. Nevertheless we stopped and started the service afterwards but this didn’t help.
I’m not familiar with PowerShell. Is it possible that it isn’t enough to restart the Agent service and that I have to reinstall it? Just a guess.

No for the Powershell plugins no restart or reinstall is needed.
But you can test to run the veeam Powershell script from a administrator shell.
This should produce the expected output.

Is your agent running as local system or with a specific user account?

What you can do manually, is to test the script, with an administrative account, to make sure that the overall function is given.

The service is running with something like “login as local system account” (German Windows installation).

I’m not quite sure what you mean with testing the PowerShell script.
I started one shell that presents itself as “Administrator: Windows PowerShell” and delivers the following output:

PS C:\WINDOWS\system32> C:\programdata\checkmk\agent\plugins\veeam_backup_status.ps1
Ausnahme beim Festlegen von "buffersize": "Die Puffergröße kann nicht festgelegt werden, da die angegebene Größe zu groß oder zu klein ist.
Parametername: value
Der tatsächliche Wert war 150,300."
In C:\programdata\checkmk\agent\plugins\veeam_backup_status.ps1:18 Zeichen:1
+ $pswindow.buffersize = $newsize
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], SetValueInvocationException
    + FullyQualifiedErrorId : ExceptionWhenSetting

Then I started another shell that presents itself as “Administrator: Windows PowerShell ISE” and delivers nothing (empty line).

Executing the script at the same shell with “-Debug” delivers the following output:

PS C:\ProgramData\checkmk\agent\plugins> .\veeam_backup_status.ps1 -Debug
No Veeam powershell modules could be loaded

Der Header im Powershell kann einfach entfernt werden. Der setzt nur die Größe des virtuellen Terminals. Wegen unerwünschten Zeilenumbrüchen.

Normal sollten aber nach dem Fehler noch andere Ausgaben kommen.

Zum Debugging ist in dem Fall bisl Powershell Kenntnisse von Vorteil. Da lässt sich viel an den Ausgaben ablesen was falsch läuft.

Ich arbeite in der gleichen Abteilung wie Tobias und habe versucht bei der Fehlersuche zu unterstützen.
Es scheint so, als ob eine Datei gefehlt hat. Und zwar die “Veeam.Backup.PowerShell.types.ps1xml” im Verzeichnis “C:\Program Files\Veeam\Backup and Replication\Console\Veeam.Backup.PowerShell”.
Ich konnte die Datei von einem anderen System kopieren und danach lief die Datenübermittlung wieder an CheckMK.

Danke für die Unterstützung. Die Fehlermeldungen in PowerShell haben mich in die richtige Richtung gewiesen.

Warum die Datei auf diesem System fehlte und auf anderen Servern, die die Veeam Backup & Replication Console installiert haben nicht, kann ich nicht sagen.

1 Like

I have tested the PowerShell script “veeam_backup_status” , it shows all other offsite/onsite jobs, but does not show Proxmox Jobs. can you please tell me how to adjust the script?

This is a completely different then the problem here. It would be better to have a new thread with something like “No Proxmox Veeam jobs visible in CheckMK”

I have already opened another case, but cmk support is not replying on that :slight_smile: . But i guess this case also relevant to my inquiry regarding PVE Veeam Backup-Jobs, which is not visible in CMK

No - in your case the problem is that PVE and Nutanix backups are no normal Veeam backup jobs. These jobs are enterprise backup jobs. The used scripts needs other functions to fetch such job types.

so where can i get this type of script?

For Proxmox Virtual Environment (PVE) backups we’re using a self-built local check PowerShell script that queries Veeam’s PostgreSQL database directly, fetches the list of PVE backup jobs, evaluates the latest run for each & verifies its status & when it was run last (more than 24h ago is CRIT). This works well enough for our purposes.

I’ve just added it as an extension to the Exchange as linet_veeam_pve_backup. It’s still under review. You can get the MKP from the extension’s home page (“Releases” tab for the MKP download) if you don’t want to wait for the review. Read the README on the home page for usage instructions.

This is my version of the original Powershell script.
That is also supporting Proxmox and Nutanix backups.
veeam_backup.ps1 (7.6 KB)
The important part is the different function to fetch all the jobs.

1 Like

Ooooh interesting, thanks. You probably mean:

$myBackups = [Veeam.Backup.Core.CBackupJob]::GetAll()

instead of

Get-VBRJob -WarningAction SilentlyContinue

So yeah, my knowledge of Veeam’s PowerShell scriptlets not supporting PVE jobs is still the case.

Yes this fetches all types of jobs not only VBRJobs
Only “problem” is now that you see every job as a single check and not the groups of jobs as before.

Thank you for the script! its working now and the PVE Veeam-Jobs are visible. I have also tried this in other Server, which the Veeam is protected by MFA , its not running.

But this is a complete different problem. Here you need to consult your Veeam support, how to fetch monitoring data from such an instance.