Compare commits
9 Commits
8419dda558
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 743cd830c6 | |||
| 30467c50a8 | |||
| 287efe373d | |||
| bbd1c6f6c0 | |||
| dcf12b9d34 | |||
| 5aa9645a83 | |||
| 70009b58b3 | |||
| 5f682bc1a0 | |||
| 4e695e2594 |
@@ -0,0 +1,91 @@
|
||||
zabbix_export:
|
||||
version: '7.4'
|
||||
template_groups:
|
||||
- uuid: cd6848345eb04289b2d5260c10e0d269
|
||||
name: devloop
|
||||
- uuid: a571c0d144b14fd4a87a9d9b2aa9fcd6
|
||||
name: Templates/Applications
|
||||
templates:
|
||||
- uuid: 9e713ad0b15346b3aeb1913ffd928988
|
||||
template: 'Template App PatMed by Zabbix agent active'
|
||||
name: 'Template App PatMed by Zabbix agent active'
|
||||
vendor:
|
||||
name: devloop
|
||||
version: '1.1'
|
||||
groups:
|
||||
- name: devloop
|
||||
- name: Templates/Applications
|
||||
items:
|
||||
- uuid: 123ba14e7cfd4ef2b8caeca47fa4b5ac
|
||||
name: 'PatMed Version Available'
|
||||
type: HTTP_AGENT
|
||||
key: devloop.patmed.version.available
|
||||
delay: 1h
|
||||
history: 365d
|
||||
value_type: TEXT
|
||||
preprocessing:
|
||||
- type: JSONPATH
|
||||
parameters:
|
||||
- $.version
|
||||
- type: DISCARD_UNCHANGED_HEARTBEAT
|
||||
parameters:
|
||||
- 1d
|
||||
url: 'https://portal.production.patmed.de/api/v1/version/latest-gateway-version'
|
||||
post_type: JSON
|
||||
posts: '{"version":"284", "os":"WINDOWS","arch":"AMD64","currentChannel":"RELEASE","requestStaging":false}'
|
||||
request_method: POST
|
||||
verify_peer: 'YES'
|
||||
verify_host: 'YES'
|
||||
- uuid: 78458591c0f047c784f131226f8bf5c7
|
||||
name: 'PatMed Version Current'
|
||||
type: ZABBIX_ACTIVE
|
||||
key: devloop.patmed.version.current
|
||||
delay: 1h
|
||||
history: 365d
|
||||
value_type: TEXT
|
||||
preprocessing:
|
||||
- type: DISCARD_UNCHANGED_HEARTBEAT
|
||||
parameters:
|
||||
- 1d
|
||||
- uuid: 4f587dcd6df9438099ffe1ac5d49819e
|
||||
name: 'PatMed Gateway Process'
|
||||
type: ZABBIX_ACTIVE
|
||||
key: 'proc.num[java,,,gateway/app/app.jar]'
|
||||
triggers:
|
||||
- uuid: ed3f2943b30345958e75ee57e2a95b0f
|
||||
expression: 'last(/Template App PatMed by Zabbix agent active/proc.num[java,,,gateway/app/app.jar])<1'
|
||||
name: 'PatMed Java Gateway Process not available'
|
||||
priority: HIGH
|
||||
tags:
|
||||
- tag: Application
|
||||
value: PatMed
|
||||
- tag: Application
|
||||
value: T2MED
|
||||
- tag: ApplicationType
|
||||
value: Medical
|
||||
triggers:
|
||||
- uuid: 2c9926b988b64fc0a948e1210fbdaf78
|
||||
expression: 'last(/Template App PatMed by Zabbix agent active/devloop.patmed.version.current)<>last(/Template App PatMed by Zabbix agent active/devloop.patmed.version.available)'
|
||||
name: 'PatMed Update Available (Stage 1)'
|
||||
priority: INFO
|
||||
dependencies:
|
||||
- name: 'PatMed Update Available (Stage 2)'
|
||||
expression: 'last(/Template App PatMed by Zabbix agent active/devloop.patmed.version.current)<>last(/Template App PatMed by Zabbix agent active/devloop.patmed.version.available,#1:now-1h)'
|
||||
- uuid: fb2dcabcb76a481eba3f9e94428d5d9c
|
||||
expression: 'last(/Template App PatMed by Zabbix agent active/devloop.patmed.version.current)<>last(/Template App PatMed by Zabbix agent active/devloop.patmed.version.available,#1:now-1h)'
|
||||
name: 'PatMed Update Available (Stage 2)'
|
||||
priority: WARNING
|
||||
dependencies:
|
||||
- name: 'PatMed Update Available (Stage 3)'
|
||||
expression: 'last(/Template App PatMed by Zabbix agent active/devloop.patmed.version.current)<>last(/Template App PatMed by Zabbix agent active/devloop.patmed.version.available,#1:now-2h)'
|
||||
- uuid: 57e1dee126af429c8c4f9ac29168510a
|
||||
expression: 'last(/Template App PatMed by Zabbix agent active/devloop.patmed.version.current)<>last(/Template App PatMed by Zabbix agent active/devloop.patmed.version.available,#1:now-2h)'
|
||||
name: 'PatMed Update Available (Stage 3)'
|
||||
priority: AVERAGE
|
||||
dependencies:
|
||||
- name: 'PatMed Update Available (Stage 4)'
|
||||
expression: 'last(/Template App PatMed by Zabbix agent active/devloop.patmed.version.current)<>last(/Template App PatMed by Zabbix agent active/devloop.patmed.version.available,#1:now-3h)'
|
||||
- uuid: 85ed40b8575241708e516156ec028602
|
||||
expression: 'last(/Template App PatMed by Zabbix agent active/devloop.patmed.version.current)<>last(/Template App PatMed by Zabbix agent active/devloop.patmed.version.available,#1:now-3h)'
|
||||
name: 'PatMed Update Available (Stage 4)'
|
||||
priority: HIGH
|
||||
@@ -0,0 +1,6 @@
|
||||
## Install
|
||||
* copy `pbs.sh` into `/usr/local/bin`
|
||||
* install `jq`
|
||||
|
||||
## API permissions
|
||||
* `Audit` on every datastore which should be monitored
|
||||
Executable
+32
@@ -0,0 +1,32 @@
|
||||
#!/bin/bash
|
||||
|
||||
HOST="${1}"
|
||||
PORT="${2}"
|
||||
TOKENID="${3}@${4}!${5}"
|
||||
TOKENSECRET="${6}"
|
||||
|
||||
datastores=$(wget --header="Authorization: PBSAPIToken=${TOKENID}:${TOKENSECRET}" --content-on-error -q -O - "https://${HOST}:${PORT}/api2/json/admin/datastore")
|
||||
|
||||
IFS='
|
||||
'
|
||||
for datastore in $(echo "${datastores}" |jq --raw-output '.data[].store'); do
|
||||
namespaces=$(wget --header="Authorization: PBSAPIToken=${TOKENID}:${TOKENSECRET}" --content-on-error -q -O - "https://${HOST}:${PORT}/api2/json/admin/datastore/${datastore}/namespace")
|
||||
|
||||
for namespace in $(echo "${namespaces}" |jq --raw-output '.data[].ns'); do
|
||||
# group backups by backup-type and backup-id, only get the backup of each group (thus the map) with max backup-time and add datastore and namespace to each backup
|
||||
temp=$(wget --header="Authorization: PBSAPIToken=${TOKENID}:${TOKENSECRET}" --content-on-error -q -O - "https://${HOST}:${PORT}/api2/json/admin/datastore/${datastore}/snapshots?ns=${namespace}" |jq ".data |group_by([.\"backup-type\", .\"backup-id\"]) |map(max_by(.\"backup-time\")) |map(.datastore |= \"${datastore}\") |map(.namespace |= \"${namespace}\")")
|
||||
|
||||
# remove array symbols ([ and ])
|
||||
temp="${temp:1}"
|
||||
temp="${temp::-1}"
|
||||
|
||||
if [[ "${#temp}" -ne 0 ]]; then
|
||||
backups="${backups}${temp},"
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
# remove last set comma
|
||||
ret="[${backups::-1}]"
|
||||
|
||||
echo $ret
|
||||
@@ -0,0 +1,115 @@
|
||||
zabbix_export:
|
||||
version: '7.0'
|
||||
template_groups:
|
||||
- uuid: cd6848345eb04289b2d5260c10e0d269
|
||||
name: devloop
|
||||
- uuid: a571c0d144b14fd4a87a9d9b2aa9fcd6
|
||||
name: Templates/Applications
|
||||
templates:
|
||||
- uuid: a0ed4ae0737d47c48938583a15510344
|
||||
template: 'PBS Backup Status Active'
|
||||
name: 'PBS Backup Status Active'
|
||||
vendor:
|
||||
name: devloop
|
||||
version: '1.1'
|
||||
groups:
|
||||
- name: devloop
|
||||
- name: Templates/Applications
|
||||
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}]'
|
||||
delay: 1h
|
||||
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}]'
|
||||
tags:
|
||||
- tag: devloop.pbs.backup
|
||||
value: '{#BACKUP_TYPE}-{#BACKUP_ID}'
|
||||
- tag: devloop.pbs.backup-id
|
||||
value: '{#BACKUP_ID}'
|
||||
- tag: devloop.pbs.backup-type
|
||||
value: '{#BACKUP_TYPE}'
|
||||
- tag: devloop.pbs.datastore
|
||||
value: '{#DATASTORE}'
|
||||
- tag: devloop.pbs.namespace
|
||||
value: '{#NAMESPACE}'
|
||||
- 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}]'
|
||||
tags:
|
||||
- tag: devloop.pbs.backup
|
||||
value: '{#BACKUP_TYPE}-{#BACKUP_ID}'
|
||||
- tag: devloop.pbs.backup-id
|
||||
value: '{#BACKUP_ID}'
|
||||
- tag: devloop.pbs.backup-type
|
||||
value: '{#BACKUP_TYPE}'
|
||||
- tag: devloop.pbs.datastore
|
||||
value: '{#DATASTORE}'
|
||||
- tag: devloop.pbs.namespace
|
||||
value: '{#NAMESPACE}'
|
||||
- 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'
|
||||
Reference in New Issue
Block a user