From 5aa9645a83fd0596d6b698983ce3055d7e36dc56 Mon Sep 17 00:00:00 2001 From: damage Date: Thu, 2 Apr 2026 16:55:33 +0200 Subject: [PATCH] add proxmox backup server template --- app/proxmox_backup_server/README.sh | 6 ++ ...late_app_proxmox_backup_server_active.yaml | 86 +++++++++++++++++++ 2 files changed, 92 insertions(+) create mode 100644 app/proxmox_backup_server/README.sh create mode 100644 app/proxmox_backup_server/template_app_proxmox_backup_server_active.yaml diff --git a/app/proxmox_backup_server/README.sh b/app/proxmox_backup_server/README.sh new file mode 100644 index 0000000..3ddea73 --- /dev/null +++ b/app/proxmox_backup_server/README.sh @@ -0,0 +1,6 @@ +## Install +* copy `pbs.sh` into `/usr/local/bin` +* install `jq` + +## API permissions +* `Audit` on every datastore which should be monitored diff --git a/app/proxmox_backup_server/template_app_proxmox_backup_server_active.yaml b/app/proxmox_backup_server/template_app_proxmox_backup_server_active.yaml new file mode 100644 index 0000000..3f67784 --- /dev/null +++ b/app/proxmox_backup_server/template_app_proxmox_backup_server_active.yaml @@ -0,0 +1,86 @@ +zabbix_export: + version: '7.0' + template_groups: + - uuid: a4cf0bf4375f4f0c9b3475b7a3531b3b + name: damage + templates: + - uuid: a0ed4ae0737d47c48938583a15510344 + template: 'PBS Backup Status Active' + name: 'PBS Backup Status Active' + groups: + - name: damage + items: + - uuid: a0be013137cf4cd1b579c419cbace3c5 + name: 'PBS JSON' + type: ZABBIX_ACTIVE + key: 'devloop.pbs[{HOST.CONN},{$DEVLOOP.PBS.API.PORT},{$DEVLOOP.PBS.API.USER.NAME},{$DEVLOOP.PBS.API.USER.REALM},{$DEVLOOP.PBS.API.USER.TOKEN},{$DEVLOOP.PBS.API.TOKENSECRET}]' + history: 1h + value_type: TEXT + trends: '0' + discovery_rules: + - uuid: 5bfb062fc9b444888a6013a4d225c843 + name: PBS + type: DEPENDENT + key: devloop.pbs.discover + delay: '0' + item_prototypes: + - uuid: c94d7d2c7d354d21bf25d209e2be056b + name: 'PBS Backup Size {#DATASTORE}.{#NAMESPACE} {#BACKUP_TYPE}-{#BACKUP_ID}' + type: DEPENDENT + key: 'devloop.pbs.backup.size[{#DATASTORE}, {#NAMESPACE}, {#BACKUP_TYPE}, {#BACKUP_ID}]' + delay: '0' + units: B + preprocessing: + - type: JSONPATH + parameters: + - '$[0].size' + master_item: + key: 'devloop.pbs.backup[{#DATASTORE}, {#NAMESPACE}, {#BACKUP_TYPE}, {#BACKUP_ID}]' + - uuid: 30de20ba2d2841b186439b27a1ba4c38 + name: 'PBS Backup Timestamp {#DATASTORE}.{#NAMESPACE} {#BACKUP_TYPE}-{#BACKUP_ID}' + type: DEPENDENT + key: 'devloop.pbs.backup.timestamp[{#DATASTORE}, {#NAMESPACE}, {#BACKUP_TYPE}, {#BACKUP_ID}]' + delay: '0' + units: unixtime + preprocessing: + - type: JSONPATH + parameters: + - '$[0]["backup-time"]' + master_item: + key: 'devloop.pbs.backup[{#DATASTORE}, {#NAMESPACE}, {#BACKUP_TYPE}, {#BACKUP_ID}]' + - uuid: bddc15b366be444ebf12d9f2d54ba196 + name: 'PBS Backup {#DATASTORE}.{#NAMESPACE} {#BACKUP_TYPE}-{#BACKUP_ID} JSON' + type: DEPENDENT + key: 'devloop.pbs.backup[{#DATASTORE}, {#NAMESPACE}, {#BACKUP_TYPE}, {#BACKUP_ID}]' + delay: '0' + history: 1h + value_type: TEXT + trends: '0' + preprocessing: + - type: JSONPATH + parameters: + - '$[?(@.datastore==''{#DATASTORE}'' && @.namespace==''{#NAMESPACE}'' && @["backup-type"]==''{#BACKUP_TYPE}'' && @["backup-id"]==''{#BACKUP_ID}'')]' + master_item: + key: 'devloop.pbs[{HOST.CONN},{$DEVLOOP.PBS.API.PORT},{$DEVLOOP.PBS.API.USER.NAME},{$DEVLOOP.PBS.API.USER.REALM},{$DEVLOOP.PBS.API.USER.TOKEN},{$DEVLOOP.PBS.API.TOKENSECRET}]' + master_item: + key: 'devloop.pbs[{HOST.CONN},{$DEVLOOP.PBS.API.PORT},{$DEVLOOP.PBS.API.USER.NAME},{$DEVLOOP.PBS.API.USER.REALM},{$DEVLOOP.PBS.API.USER.TOKEN},{$DEVLOOP.PBS.API.TOKENSECRET}]' + lld_macro_paths: + - lld_macro: '{#BACKUP_ID}' + path: '$["backup-id"]' + - lld_macro: '{#BACKUP_TYPE}' + path: '$["backup-type"]' + - lld_macro: '{#DATASTORE}' + path: $.datastore + - lld_macro: '{#NAMESPACE}' + path: $.namespace + macros: + - macro: '{$DEVLOOP.PBS.API.PORT}' + value: '8007' + description: 'default 8007' + - macro: '{$DEVLOOP.PBS.API.TOKENSECRET}' + description: xxx-xxx-xxx-xxx + - macro: '{$DEVLOOP.PBS.API.USER.NAME}' + - macro: '{$DEVLOOP.PBS.API.USER.REALM}' + description: 'e.g. pbs' + - macro: '{$DEVLOOP.PBS.API.USER.TOKEN}' + description: 'token name'