This commit is contained in:
apulkin
2026-05-18 15:49:38 +03:00
commit fc91673937
5 changed files with 149 additions and 0 deletions
+12
View File
@@ -0,0 +1,12 @@
# nano /usr/lib/zabbix/externalscripts/backup-discovery.sh
#!/bin/bash
JSON=$(for i in `ls -l /opt/Backup | sed '1d' | awk '{print $9}'`; do printf "{\"{#BACKUP}\":\"$i\"},"; done | sed 's/^\(.*\).$/\1/')
printf "{\"data\":["
printf "$JSON"
printf "]}"
# UserParameter=backup.discovery[*],/usr/lib/zabbix/externalscripts/backup-discovery.sh
# chmod +x /usr/lib/zabbix/externalscripts/backup-discovery.sh
# chown zabbix:zabbix /usr/lib/zabbix/externalscripts/backup-discovery.sh
+42
View File
@@ -0,0 +1,42 @@
# nano /usr/lib/zabbix//externalscripts/size_folder.sh
#!/bin/bash
BK_DIR="/opt/Backup"
SEARCH="$1"
for SRV_NAME in "$BK_DIR"/*; do
# Проверяем что это директория
[ -d "$SRV_NAME" ] || continue
SRV=$(basename "$SRV_NAME")
# Последний backup .rsc
LAST_BACKUP=$(ls -t "$SRV_NAME"/*.rsc 2>/dev/null | head -n 1)
# Если backup найден
if [[ -n "$LAST_BACKUP" ]]; then
BSIZE=$(stat -c%s "$LAST_BACKUP")
BTIME=$(stat -c%y "$LAST_BACKUP" | cut -d'.' -f1)
BFILE=$(basename "$LAST_BACKUP")
else
BSIZE=0
BTIME="N/A"
BFILE="N/A"
fi
if [[ "$SRV" == "$SEARCH" ]]; then
echo "$BSIZE"
exit 0
fi
done
# nano /etc/zabbix/zabbix_agentd.d/backup_info.conf
# UserParameter=backup.size[*],/usr/lib/zabbix//externalscripts/size_folder.sh $1
# chmod +x /usr/lib/zabbix//externalscripts/size_folder.sh
# chown zabbix:zabbix /usr/lib/zabbix//externalscripts/size_folder.sh
+34
View File
@@ -0,0 +1,34 @@
# nano /usr/lib/zabbix//externalscripts/time_folder.sh
#!/bin/bash
BK_DIR="/opt/Backup"
TARGET="$1"
current_time=$(date +"%s")
for srv in $(ls "$BK_DIR")
do
archive_path="$BK_DIR/$srv"
# получаем время изменения файла/архива
backup_unix=$(stat -c %Y "$archive_path" 2>/dev/null)
# если файл не найден — пропускаем
[ -z "$backup_unix" ] && continue
# разница в минутах
diff_minutes=$(( (current_time - backup_unix) / 60 ))
# вывод
if [ -n "$TARGET" ]; then
[ "$srv" = "$TARGET" ] && echo "$diff_minutes"
else
echo "$srv $diff_minutes"
fi
done
# nano /etc/zabbix/zabbix_agentd.d/backup_info.conf
# UserParameter=backup.time[*],/usr/lib/zabbix//externalscripts/time_folder.sh $1
# chmod +x /usr/lib/zabbix//externalscripts/time_folder.sh
# chown zabbix:zabbix /usr/lib/zabbix//externalscripts/time_folder.sh
+61
View File
@@ -0,0 +1,61 @@
zabbix_export:
version: '7.4'
template_groups:
- uuid: 23b4cb78db6e4cd194f3600a0006af6c
name: MyTemplates
- uuid: 7df96b18c230490a9a0a9e2307226338
name: Templates
templates:
- uuid: b7c4f5b01c6d49cab7e150aefd1c4921
template: 'Backup info'
name: 'Backup info'
groups:
- name: MyTemplates
- name: Templates
discovery_rules:
- uuid: 21402ff704aa4adfb2ffce69227a215e
name: 'Backup Dirs Discovery'
type: ZABBIX_ACTIVE
key: backup.discovery
delay: 10m
lifetime: 90d
enabled_lifetime_type: DISABLE_NEVER
item_prototypes:
- uuid: a993e4f83e0f4a4bb00879ae4d9d93f8
name: 'Backup size {#BACKUP}'
type: ZABBIX_ACTIVE
key: 'backup.size[{#BACKUP}]'
delay: 30m
history: 90d
trends: 1000d
units: B
tags:
- tag: Application
value: Backup
trigger_prototypes:
- uuid: a1546ccaa7c2499db2dd20f31e8677e0
expression: 'last(/Backup info/backup.size[{#BACKUP}])=0'
recovery_mode: RECOVERY_EXPRESSION
recovery_expression: 'last(/Backup info/backup.size[{#BACKUP}])>0'
name: 'Бэкап {#BACKUP} нулевого размера'
priority: HIGH
description: 'Последний бэкап создался с ошибкой, так как имеет нулевой размер.'
manual_close: 'YES'
- uuid: 98dad5a10fcf4f64908f6b78ed8f8646
name: 'Backup time {#BACKUP}'
type: ZABBIX_ACTIVE
key: 'backup.time[{#BACKUP}]'
history: 10d
trends: '0'
tags:
- tag: Application
value: Backup
trigger_prototypes:
- uuid: a8803dabc06440bfb539452234ab6483
expression: 'last(/Backup info/backup.time[{#BACKUP}])>1500'
recovery_mode: RECOVERY_EXPRESSION
recovery_expression: 'last(/Backup info/backup.time[{#BACKUP}])<1440'
name: 'Бэкап {#BACKUP} просрочен'
priority: HIGH
description: 'Дата создания последнего бэкапа больше суток.'
manual_close: 'YES'