Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ PBS uses an API, the documentation can be found here: https://pbs.proxmox.com/do

## Requirements

Zabbix 6.4 and higher
Zabbix 7.2 and higher

## Tested versions

Expand Down Expand Up @@ -107,5 +107,5 @@ Use the resulting Token ID and Secret in the host macros.
| -------------------------------------------------------- | ------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------- | -------- | -------------------------------- |
| PBS: Disk [{#DATASTORE.NAME}] Model has changed | <p>The model identifier has changed.</p> | `last(/Proxmox Backup Server by HTTP/pbs.disk.model[{#DISK.PATH}],#1)<>last(/Proxmox Backup Server by HTTP/pbs.disk.model[{#DISK.PATH}],#2)` | Warning | |
| PBS: Disk [{#DATASTORE.NAME}] Serial has changed | <p>The Serial number has changed.</p> | `last(/Proxmox Backup Server by HTTP/pbs.disk.serial[{#DISK.PATH}],#1)<>last(/Proxmox Backup Server by HTTP/pbs.disk.serial[{#DISK.PATH}],#2)` | Warning | |
| PBS: Disk [{#DATASTORE.NAME}] Status indicates a problem | <p>The Status indicator shows some different from 'unknown'.</p> | `find(/Proxmox Backup Server by HTTP/pbs.disk.status[{#DISK.PATH}],,"like","unknown")=0` | Warning | |
| PBS: Disk [{#DATASTORE.NAME}] Status indicates a problem | <p>The Status indicator shows 'failed'.</p> | `find(/Proxmox Backup Server by HTTP/pbs.disk.status[{#DISK.PATH}],,"like","failed")=1` | Warning | |
| PBS: Disk [{#DATASTORE.NAME}] Used has changed | <p>The disk is being reported as used differently than before.</p> | `last(/Proxmox Backup Server by HTTP/pbs.disk.used[{#DISK.PATH}],#1)<>last(/Proxmox Backup Server by HTTP/pbs.disk.used[{#DISK.PATH}],#2)` | Warning | |
76 changes: 41 additions & 35 deletions template_app_proxmox_backup_server.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
zabbix_export:
version: '6.4'
version: '7.2'
template_groups:
- uuid: a571c0d144b14fd4a87a9d9b2aa9fcd6
name: Templates/Applications
Expand Down Expand Up @@ -46,6 +46,8 @@ zabbix_export:
- name: token
value: '{$PBS.TOKEN.ID}'
tags:
- tag: component
value: backup
- tag: component
value: system
triggers:
Expand All @@ -58,13 +60,13 @@ zabbix_export:
type: HTTP_AGENT
key: pbs.datastore.status
delay: 5m
trends: '0'
history: 90d
value_type: TEXT
description: 'Get datastore status.'
preprocessing:
- type: CHECK_NOT_SUPPORTED
parameters:
- ''
- '-1'
error_handler: CUSTOM_VALUE
error_handler_params: 'Error getting data'
- type: JSONPATH
Expand All @@ -77,20 +79,22 @@ zabbix_export:
value: 'PBSAPIToken={$PBS.TOKEN.ID}:{$PBS.TOKEN.SECRET}'
output_format: JSON
tags:
- tag: component
value: backup
- tag: component
value: raw
- uuid: 83c76592aedf4833a63393b5e7b54fb9
name: 'PBS: Get disks'
type: HTTP_AGENT
key: pbs.disks
delay: 5m
trends: '0'
history: 90d
value_type: TEXT
description: 'Get disks.'
preprocessing:
- type: CHECK_NOT_SUPPORTED
parameters:
- ''
- '-1'
error_handler: CUSTOM_VALUE
error_handler_params: 'Error getting data'
- type: JSONPATH
Expand All @@ -103,20 +107,22 @@ zabbix_export:
value: 'PBSAPIToken={$PBS.TOKEN.ID}:{$PBS.TOKEN.SECRET}'
output_format: JSON
tags:
- tag: component
value: backup
- tag: component
value: raw
- uuid: 17e7c9ee749946aaaf19ae4f1148f0d1
name: 'PBS: Get failed tasks'
type: HTTP_AGENT
key: pbs.tasks.error
delay: 5m
trends: '0'
history: 90d
value_type: TEXT
description: 'Get erroneuous tasks.'
preprocessing:
- type: CHECK_NOT_SUPPORTED
parameters:
- ''
- '-1'
error_handler: CUSTOM_VALUE
error_handler_params: 'Error getting data'
- type: JSONPATH
Expand Down Expand Up @@ -157,6 +163,8 @@ zabbix_export:
value: 'PBSAPIToken={$PBS.TOKEN.ID}:{$PBS.TOKEN.SECRET}'
output_format: JSON
tags:
- tag: component
value: backup
- tag: component
value: raw
triggers:
Expand All @@ -173,13 +181,14 @@ zabbix_export:
name: 'PBS: Datastore discovery'
type: DEPENDENT
key: pbs.datastore.discovery
delay: '0'
lifetime: 30d
enabled_lifetime_type: DISABLE_NEVER
item_prototypes:
- uuid: 60f2c0498c414dfdab7e80cc7ea2985b
name: 'PBS: Datastore [{#DATASTORE.NAME}] Available Size'
type: DEPENDENT
key: 'pbs.datastore.available[{#DATASTORE.NAME}]'
delay: '0'
history: 90d
units: bytes
description: 'Available size of datastore in bytes.'
preprocessing:
Expand Down Expand Up @@ -208,8 +217,7 @@ zabbix_export:
name: 'PBS: Datastore [{#DATASTORE.NAME}] Error'
type: DEPENDENT
key: 'pbs.datastore.error[{#DATASTORE.NAME}]'
delay: '0'
trends: '0'
history: 90d
value_type: TEXT
description: 'Error status of datastore.'
preprocessing:
Expand Down Expand Up @@ -238,8 +246,7 @@ zabbix_export:
name: 'PBS: Datastore [{#DATASTORE.NAME}] Estimated Full Date'
type: DEPENDENT
key: 'pbs.datastore.estimatedfulldate[{#DATASTORE.NAME}]'
delay: '0'
trends: '0'
history: 90d
value_type: TEXT
description: |
Estimation of the Date Time Stamp when the storage will be full.
Expand Down Expand Up @@ -271,7 +278,7 @@ zabbix_export:
name: 'PBS: Datastore [{#DATASTORE.NAME}] Estimated Seconds to Full'
type: DEPENDENT
key: 'pbs.datastore.estimatedsecondstofull[{#DATASTORE.NAME}]'
delay: '0'
history: 90d
description: |
Estimation of the UNIX epoch when the storage will be full.
It's calculated via a simple Linear Regression (Least Squares) over the RRD data of the
Expand Down Expand Up @@ -312,8 +319,7 @@ zabbix_export:
name: 'PBS: Datastore [{#DATASTORE.NAME}] Estimated Time to Full'
type: DEPENDENT
key: 'pbs.datastore.estimatedtimetofull[{#DATASTORE.NAME}]'
delay: '0'
trends: '0'
history: 90d
value_type: TEXT
description: |
Estimation of the Time until the storage will be full.
Expand Down Expand Up @@ -357,7 +363,7 @@ zabbix_export:
name: 'PBS: Datastore [{#DATASTORE.NAME}] Total Size'
type: DEPENDENT
key: 'pbs.datastore.total[{#DATASTORE.NAME}]'
delay: '0'
history: 90d
units: bytes
description: 'Total size of datastore in bytes.'
preprocessing:
Expand All @@ -375,7 +381,7 @@ zabbix_export:
name: 'PBS: Datastore [{#DATASTORE.NAME}] Used Size'
type: DEPENDENT
key: 'pbs.datastore.used[{#DATASTORE.NAME}]'
delay: '0'
history: 90d
units: bytes
description: 'Used size of datastore in bytes.'
preprocessing:
Expand All @@ -401,14 +407,14 @@ zabbix_export:
name: 'PBS: Disk discovery'
type: DEPENDENT
key: pbs.disk.discovery
delay: '0'
lifetime: 30d
enabled_lifetime_type: DISABLE_NEVER
item_prototypes:
- uuid: 85501120e36d48589a52d56d0dec55d7
name: 'PBS: Disk [{#DISK.PATH}] Model'
type: DEPENDENT
key: 'pbs.disk.model[{#DISK.PATH}]'
delay: '0'
trends: '0'
history: 90d
value_type: TEXT
description: 'Model of the disk.'
preprocessing:
Expand All @@ -430,8 +436,7 @@ zabbix_export:
name: 'PBS: Disk [{#DISK.PATH}] Name'
type: DEPENDENT
key: 'pbs.disk.name[{#DISK.PATH}]'
delay: '0'
trends: '0'
history: 90d
value_type: TEXT
description: 'Name of the disk.'
preprocessing:
Expand All @@ -447,8 +452,7 @@ zabbix_export:
name: 'PBS: Disk [{#DISK.PATH}] Serial'
type: DEPENDENT
key: 'pbs.disk.serial[{#DISK.PATH}]'
delay: '0'
trends: '0'
history: 90d
value_type: TEXT
description: 'Serial of the disk.'
preprocessing:
Expand All @@ -470,7 +474,7 @@ zabbix_export:
name: 'PBS: Disk [{#DISK.PATH}] Size'
type: DEPENDENT
key: 'pbs.disk.size[{#DISK.PATH}]'
delay: '0'
history: 90d
units: bytes
description: 'Total Size of disk in bytes.'
preprocessing:
Expand All @@ -486,8 +490,7 @@ zabbix_export:
name: 'PBS: Disk [{#DISK.PATH}] Status'
type: DEPENDENT
key: 'pbs.disk.status[{#DISK.PATH}]'
delay: '0'
trends: '0'
history: 90d
value_type: TEXT
description: 'Disk status.'
preprocessing:
Expand All @@ -499,18 +502,20 @@ zabbix_export:
- 1h
master_item:
key: pbs.disks
tags:
- tag: component
value: pbs_disk
trigger_prototypes:
- uuid: 0ebb109edcbc40d095945ca9a530dc5f
expression: 'find(/Proxmox Backup Server by HTTP/pbs.disk.status[{#DISK.PATH}],,"like","unknown")=0'
expression: 'find(/Proxmox Backup Server by HTTP/pbs.disk.status[{#DISK.PATH}],,"like","failed")=1'
name: 'PBS: Disk [{#DISK.PATH}] Status indicates a problem'
priority: WARNING
manual_close: 'YES'
- uuid: 4e4148965fd9483bbc1ba7c145368bba
name: 'PBS: Disk [{#DISK.PATH}] Used'
type: DEPENDENT
key: 'pbs.disk.used[{#DISK.PATH}]'
delay: '0'
trends: '0'
history: 90d
value_type: TEXT
description: 'Indicates where (and if) that disk is used by PBS.'
preprocessing:
Expand All @@ -532,8 +537,7 @@ zabbix_export:
name: 'PBS: Disk [{#DISK.PATH}] Vendor'
type: DEPENDENT
key: 'pbs.disk.vendor[{#DISK.PATH}]'
delay: '0'
trends: '0'
history: 90d
value_type: TEXT
description: 'Vendor of the disk.'
preprocessing:
Expand All @@ -549,8 +553,7 @@ zabbix_export:
name: 'PBS: Disk [{#DISK.PATH}] Wearout'
type: DEPENDENT
key: 'pbs.disk.wearout[{#DISK.PATH}]'
delay: '0'
trends: '0'
history: 90d
value_type: TEXT
description: 'Wearout indicator.'
preprocessing:
Expand Down Expand Up @@ -583,6 +586,9 @@ zabbix_export:
path: $.vendor
- lld_macro: '{#DISK.WEAROUT}'
path: $.wearout
tags:
- tag: component
value: backup
macros:
- macro: '{$PBS.DATASTORE.AVAILABLE.MIN}'
value: '10737418240'
Expand Down