add
This commit is contained in:
@@ -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
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
@@ -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'
|
||||
Reference in New Issue
Block a user