Discover Veeam jobs as individual Zabbix items

This commit is contained in:
2026-07-16 11:16:37 +07:00
parent 4b7602e8e7
commit 5c06c90abb
3 changed files with 277 additions and 12 deletions

View File

@@ -22,15 +22,28 @@ This repository contains PowerShell scripts for Veeam Backup & Replication:
"error_names": "Failed job",
"warning_names": "Warning job",
"jobs_table": "Name | Enabled | Last run | Next run | Result | Restore points\n...",
"jobs_lld": {
"data": [
{
"{#VEEAMJOBKEY}": "RGFpbHkgYmFja3Vw",
"{#VEEAMJOBNAME}": "Daily backup"
}
]
},
"jobs": [
{
"key": "RGFpbHkgYmFja3Vw",
"name": "Daily backup",
"enabled": true,
"enabled_numeric": 1,
"enabled_text": "yes",
"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
"result": "Success",
"restore_points": 14,
"restore_points_text": "14"
}
]
}
@@ -41,6 +54,29 @@ Restore point counting is best effort. The script uses `Get-VBRBackup` and
to backups in the current environment, the job remains visible and its restore
point count is shown as `-`.
## Discovered per-job items
The template uses a dependent low-level discovery rule:
```text
veeam.jobs.discovery
```
It creates one set of discovered items per Veeam job:
```text
veeam.job.enabled[{#VEEAMJOBKEY}]
veeam.job.last_run[{#VEEAMJOBKEY}]
veeam.job.next_run[{#VEEAMJOBKEY}]
veeam.job.result[{#VEEAMJOBKEY}]
veeam.job.restore_points[{#VEEAMJOBKEY}]
```
`{#VEEAMJOBNAME}` is stored as a tag named `veeam_job`, so Zabbix views and
dashboard widgets can group or filter the discovered items by job name. The
legacy `veeam.jobs.table` item remains available as a quick text overview, but
the discovered items are the preferred way to build a dashboard.
## Zabbix dashboard idea
Create a dashboard named `Veeam Jobs` for hosts linked to the `Veeam Backup Jobs`
@@ -55,10 +91,10 @@ Suggested widgets:
| 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` |
| Middle | Top hosts or item list | discovered `veeam.job.*` items |
| Bottom left | Item value or item list | `veeam.jobs.error.names` |
| Bottom center | Item value or item list | `veeam.jobs.warning.names` |
| Bottom right | Item value or item list | `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