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