Veeam Backup Jobs for Zabbix
This repository contains a PowerShell collector and a Zabbix 7.0 template for monitoring Veeam Backup & Replication jobs.
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.