Veeam Backup Jobs for Zabbix
This repository contains PowerShell scripts for Veeam Backup & Replication:
Monitor-VeeamJobs.ps1collects job metrics for Zabbix.NotifyOfDisabledJobs.ps1sends an email when disabled jobs are detected.zabbix-templete-veeam-jobs.xmlimports the Zabbix 7.0 template.
Zabbix collector output
Monitor-VeeamJobs.ps1 prints one compressed JSON object by default:
{
"total": 10,
"disabled": 1,
"successful": 7,
"error": 1,
"warning": 1,
"disabled_names": "Disabled job",
"disabled_excluded_names": "Policy disabled by design",
"error_names": "Failed job",
"warning_names": "Warning job",
"jobs_table": "Name | Enabled | Last run | Next run | Result | Restore points\n...",
"jobs": [
{
"name": "Daily backup",
"enabled": true,
"last_run": "2026-07-16 01:00:00",
"next_run": "2026-07-17 01:00:00",
"last_result": "Success",
"last_state": "Stopped",
"restore_points": 14
}
]
}
Restore point counting is best effort. The script uses Get-VBRBackup and
Get-VBRRestorePoint when both cmdlets are available; if Veeam cannot map a job
to backups in the current environment, the job remains visible and its restore
point count is shown as -.
Zabbix dashboard idea
Create a dashboard named Veeam Jobs for hosts linked to the Veeam Backup Jobs
template.
Suggested widgets:
| Area | Widget | Items |
|---|---|---|
| Top row | Item value | veeam.jobs.total |
| Top row | Item value | veeam.jobs.successful |
| Top row | Item value | veeam.jobs.disabled |
| Top row | Item value | veeam.jobs.error |
| Top row | Item value | veeam.jobs.warning |
| Middle | Plain text | veeam.jobs.table |
| Bottom left | Plain text | veeam.jobs.error.names |
| Bottom center | Plain text | veeam.jobs.warning.names |
| Bottom right | Plain text | veeam.jobs.disabled.names |
Use a red threshold for veeam.jobs.error, yellow for veeam.jobs.warning, and
keep veeam.jobs.disabled aligned with the existing exclusion policy. The
template intentionally keeps veeam.jobs.disabled.excluded.names, because some
disabled policies are expected.
Email notification script
NotifyOfDisabledJobs.ps1 sends an email if one or more Veeam jobs are disabled.
To exclude expected disabled jobs, add keywords to:
C:\Scripts\Veeam\NotifyOfDisabledJobs_EXCLUSIONS.IN
Example exclusions:
Backup_FILE01
Backup_FILE47
Replication_FILE
Example batch launch:
powershell.exe c:\scripts\Veeam\NotifyOfDisabledJobs.ps1
The original workflow runs this check every four hours, so intentionally disabled jobs can be excluded while unexpected disabled jobs still raise a notification.