diff --git a/Monitor-VeeamJobs.ps1 b/Monitor-VeeamJobs.ps1 index 590ed73..6bb4467 100644 --- a/Monitor-VeeamJobs.ps1 +++ b/Monitor-VeeamJobs.ps1 @@ -242,27 +242,6 @@ function ConvertTo-ZabbixText { return $text } -function Format-VeeamJobSummary { - param( - [Parameter(Mandatory = $true)] - [string]$Enabled, - - [Parameter(Mandatory = $true)] - [string]$LastRun, - - [Parameter(Mandatory = $true)] - [string]$NextRun, - - [Parameter(Mandatory = $true)] - [string]$Result, - - [Parameter(Mandatory = $true)] - [string]$RestorePoints - ) - - return 'Enabled: {0} | Last: {1} | Next: {2} | Result: {3} | Restore points: {4}' -f $Enabled, $LastRun, $NextRun, $Result, $RestorePoints -} - function Get-VeeamJobScheduleEnabled { param( [Parameter(Mandatory = $true)] @@ -552,33 +531,24 @@ function Get-VeeamJobMetrics { $lastState = Get-VeeamJobLastState -Job $_ -LastSession $lastSession $restorePoints = $null $enabledNumeric = if ($scheduleEnabled -eq $false) { 0 } else { 1 } - $enabledText = if ($enabledNumeric -eq 1) { 'yes' } else { 'no' } - $lastRunText = ConvertTo-ZabbixText -Value (Get-VeeamJobLastRun -Job $_ -LastSession $lastSession) - $nextRunText = ConvertTo-ZabbixText -Value (Get-VeeamJobNextRun -Job $_) - $lastResultText = ConvertTo-ZabbixText -Value $lastResult - $lastStateText = ConvertTo-ZabbixText -Value $lastState - $resultText = ConvertTo-ZabbixText -Value $(if ($null -ne $lastResult) { $lastResult } else { $lastState }) if ($restorePointCounts.ContainsKey($jobName)) { $restorePoints = $restorePointCounts[$jobName] } - $restorePointsText = ConvertTo-ZabbixText -Value $restorePoints - [ordered]@{ key = ConvertTo-ZabbixJobKey -Name $jobName name = $jobName enabled = $scheduleEnabled enabled_numeric = $enabledNumeric - enabled_text = $enabledText - last_run = $lastRunText - next_run = $nextRunText - last_result = $lastResultText - last_state = $lastStateText - result = $resultText + enabled_text = if ($enabledNumeric -eq 1) { 'yes' } else { 'no' } + last_run = ConvertTo-ZabbixText -Value (Get-VeeamJobLastRun -Job $_ -LastSession $lastSession) + next_run = ConvertTo-ZabbixText -Value (Get-VeeamJobNextRun -Job $_) + last_result = ConvertTo-ZabbixText -Value $lastResult + last_state = ConvertTo-ZabbixText -Value $lastState + result = ConvertTo-ZabbixText -Value $(if ($null -ne $lastResult) { $lastResult } else { $lastState }) restore_points = $restorePoints - restore_points_text = $restorePointsText - summary = Format-VeeamJobSummary -Enabled $enabledText -LastRun $lastRunText -NextRun $nextRunText -Result $resultText -RestorePoints $restorePointsText + restore_points_text = ConvertTo-ZabbixText -Value $restorePoints } }) $disabledJobs = @($allJobs | Where-Object { diff --git a/README.md b/README.md index 1053e98..1ed8385 100644 --- a/README.md +++ b/README.md @@ -43,8 +43,7 @@ This repository contains PowerShell scripts for Veeam Backup & Replication: "last_state": "Stopped", "result": "Success", "restore_points": 14, - "restore_points_text": "14", - "summary": "Enabled: yes | Last: 2026-07-16 01:00:00 | Next: 2026-07-17 01:00:00 | Result: Success | Restore points: 14" + "restore_points_text": "14" } ] } @@ -71,7 +70,6 @@ veeam.job.last_run[{#VEEAMJOBKEY}] veeam.job.next_run[{#VEEAMJOBKEY}] veeam.job.result[{#VEEAMJOBKEY}] veeam.job.restore_points[{#VEEAMJOBKEY}] -veeam.job.summary[{#VEEAMJOBKEY}] ``` `{#VEEAMJOBNAME}` is stored as a tag named `veeam_job`, so Zabbix views and @@ -79,18 +77,6 @@ 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. -For a compact dashboard list, use the discovered summary item: - -```text -Veeam job [JOB_NAME]: Summary -``` - -It displays one line per job: - -```text -Enabled: yes | Last: 2026-07-16 01:00:00 | Next: - | Result: Success | Restore points: 14 -``` - ## Zabbix dashboard idea Create a dashboard named `Veeam Jobs` for hosts linked to the `Veeam Backup Jobs` @@ -105,7 +91,7 @@ Suggested widgets: | Top row | Item value | `veeam.jobs.disabled` | | Top row | Item value | `veeam.jobs.error` | | Top row | Item value | `veeam.jobs.warning` | -| Middle | Item list | discovered `Veeam job [*]: Summary` items | +| 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` | diff --git a/zabbix-templete-veeam-jobs.xml b/zabbix-templete-veeam-jobs.xml index 1c6b964..e6fb775 100644 --- a/zabbix-templete-veeam-jobs.xml +++ b/zabbix-templete-veeam-jobs.xml @@ -537,38 +537,6 @@ - - db766a0ea9984a988cb49c5bb6a029b4 - Veeam job [{#VEEAMJOBNAME}]: Summary - DEPENDENT - veeam.job.summary[{#VEEAMJOBKEY}] - 0 - - veeam.scripts.monitor - - TEXT - Single-line summary for Veeam job {#VEEAMJOBNAME}: enabled state, last run, next run, latest result, and restore point count. - - - JSONPATH - - $.jobs[?(@.key=="{#VEEAMJOBKEY}")].summary.first() - - - - 90d - 0 - - - component - backup - - - veeam_job - {#VEEAMJOBNAME} - - -