Раз в месяц 1 число
По расписанию md1 - 1 число, wd1-7 в любой день h6 в 00Ч m0-32 с00м до 32м каждые 4 минуты
D:\bk_share\data\f.01\month\2024-06-01-data-full.7z
дифы ежедневные Переменны 1-7,05:00-07:00
D:\bk_share\data\f.01\day\2024-05-29-data-diff.7z
D:\bk_share\data\f.02\month\2024-06-01-data-full.7z
D:\bk_share\data\f.02\day\2024-05-29-data-diff.7z
..........
D:\bk_share\data\f.30\month\2024-06-01-data-full.7z
D:\bk_share\data\f.30\day\2024-05-29-data-diff.7z
У нас есть 30 папок на месяц и 30 ежедневных
Путь прописываем в макросах
{$PDATADIFF} D:\bk_share\data
{$PDATAFULL} D:\bk_share\data
Шаблон
Группы элементов данных
BK_DATA_DIFF_LLD
BK_DATA_FULL_LLD
Правила обнаружения
Обнаружение папок data diff на Windows Прототипы элементов данных 4 Прототипы триггеров 1 Прототипы графиков Прототипы узлов сети system.run["dir /A:D /B \"\"{$PDATADIFF}\"\""] 12h Zabbix агент Активировано
Обнаружение папок на Linux
system.run["ls -F \"{$PDATADIFF}\"|grep -E \"*/\""]
Обнаружение папок на Windows
system.run["dir /A:D /B \"\"{$PDATADIFF}\"\""]
Команда проверки из терминала
zabbix_get -s $1 -k system.run["dir /A:D /B \""{$PDATADIFF}"\""]
Предобработка
Показать
Код: Выделить всё
var data = value.split("\n");
var result = [];
for (var i = 0; i < data.length; i++) {
var obj = {};
obj["{#DATANAMEF}"] = data[i].replace("\r", "");
result.push(obj);
}
//return JSON.stringify(result);
// Читаемый вид перенос строк
return JSON.stringify(result).replace(/\[/g,"[\n").replace(/\},/g,"},\n").replace(/\}]/g,"}\n]");
Обнаружение папок data full на Windows Прототипы элементов данных 4 Прототипы триггеров 1 Прототипы графиков Прототипы узлов сети system.run["dir /A:D /B \"\"{$PDATAFULL}\"\""] 24h Zabbix агент Активировано
Обнаружение папок на Linux
system.run["ls -F \"{$PDATAFULL}\"|grep -E \"*/\""]
Обнаружение папок на Windows
system.run["dir /A:D /B \"\"{$PDATAFULL}\"\""]
Команда проверки из терминала
zabbix_get -s $1 -k system.run["dir /A:D /B \""{$PDATAFULL}"\""]
Предобработка
Показать
Код: Выделить всё
var data = value.split("\n");
var result = [];
for (var i = 0; i < data.length; i++) {
var obj = {};
obj["{#DATANAMEF}"] = data[i].replace("\r", "");
result.push(obj);
}
//return JSON.stringify(result);
// Читаемый вид перенос строк
return JSON.stringify(result).replace(/\[/g,"[\n").replace(/\},/g,"},\n").replace(/\}]/g,"}\n]");
Обнаружение файлов на Linux Прототипы элементов данных Прототипы триггеров Прототипы графиков Прототипы узлов сети system.run["grep -r -l \".*diff.7z\" /mnt/bk_share/data| sed 's|^/mnt/bk_share/data/||'"] 12h Zabbix агент Деактивировано
Обнаружение файлов на Linux
grep -r -l ".*diff.7z" {$PDATADIFF}| sed 's|^{$PDATADIFF}||'
find {$PDATADIFF} -type f -name ".*diff.7z" | sed 's|^{$PDATADIFF}||'
Windows
zabbix_get -s $IP -p $PORT -k system.run["dir /a-d /B \""${puti}"\""]
Предобработка
Показать
Код: Выделить всё
var data = value.split("\n");
var result = [];
for (var i = 0; i < data.length; i++) {
var obj = {};
obj["{#DATANAMEF}"] = data[i].replace("\r", "");
result.push(obj);
}
//return JSON.stringify(result);
// Читаемый вид перенос строк
return JSON.stringify(result).replace(/\[/g,"[\n").replace(/\},/g,"},\n").replace(/\}]/g,"}\n]");
Прототипы элементов данных Для 1 правила обнаружения
Наличие файла day\2025-01-31-{#DATANAMEF}-diff.7z vfs.file.exists["{$PDATADIFF}\{#DATANAMEF}\day\{$DATE_YYYY}-{$DATE_MM}-{$DATE_DD}-{#DATANAMEF}-diff.7z"] 0 90d 90d Zabbix агент BK_DATA_DIFF_LLD Да
Размер файла day\2025-01-31-{#DATANAMEF}-diff.7z vfs.file.size["{$PDATADIFF}\{#DATANAMEF}\day\{$DATE_YYYY}-{$DATE_MM}-{$DATE_DD}-{#DATANAMEF}-diff.7z"] 0 90d 90d Zabbix агент BK_DATA_DIFF_LLD Да
Время изменения свойств файла day\2025-01-31-{#DATANAMEF}-diff.7z vfs.file.time["{$PDATADIFF}\{#DATANAMEF}\day\{$DATE_YYYY}-{$DATE_MM}-{$DATE_DD}-{#DATANAMEF}-diff.7z",change] 0 90d 90d Zabbix агент BK_DATA_DIFF_LLD Да
Время изменения файла day\2025-01-31-{#DATANAMEF}-diff.7z vfs.file.time["{$PDATADIFF}\{#DATANAMEF}\day\{$DATE_YYYY}-{$DATE_MM}-{$DATE_DD}-{#DATANAMEF}-diff.7z",modify] 0 90d 90d Zabbix агент BK_DATA_DIFF_LLD Да
Прототипы триггеров
Средняя Файл бэка старый или отсутсвует {$DATE_YYYY}-{$DATE_MM}-{$DATE_DD}-{#DATANAMEF}-diff.7z
{check-data-back-local-lld:vfs.file.exists["{$PDATADIFF}\{#DATANAMEF}\day\{$DATE_YYYY}-{$DATE_MM}-{$DATE_DD}-{#DATANAMEF}-diff.7z"].max(15h)}=0 or {check-data-back-local-lld:vfs.file.exists["{$PDATADIFF}\{#DATANAMEF}\day\{$DATE_YYYY}-{$DATE_MM}-{$DATE_DD}-{#DATANAMEF}-diff.7z"].nodata(24h)}=1 or {check-data-back-local-lld:vfs.file.time["{$PDATADIFF}\{#DATANAMEF}\day\{$DATE_YYYY}-{$DATE_MM}-{$DATE_DD}-{#DATANAMEF}-diff.7z",modify].fuzzytime(28h)}=0 or {check-data-back-local-lld:vfs.file.size["{$PDATADIFF}\{#DATANAMEF}\day\{$DATE_YYYY}-{$DATE_MM}-{$DATE_DD}-{#DATANAMEF}-diff.7z"].last(#2)}/{check-data-back-local-lld:vfs.file.size["{$PDATADIFF}\{#DATANAMEF}\day\{$DATE_YYYY}-{$DATE_MM}-{$DATE_DD}-{#DATANAMEF}-diff.7z"].last()}<0.9 or {check-data-back-local-lld:vfs.file.size["{$PDATADIFF}\{#DATANAMEF}\day\{$DATE_YYYY}-{$DATE_MM}-{$DATE_DD}-{#DATANAMEF}-diff.7z"].last()}/{check-data-back-local-lld:vfs.file.size["{$PDATADIFF}\{#DATANAMEF}\day\{$DATE_YYYY}-{$DATE_MM}-{$DATE_DD}-{#DATANAMEF}-diff.7z"].last(#2)}>1.1 Да
Прототипы элементов данных для Правила обнаружения 2
Наличие файла month\2025-01-31-{#DATANAMEF}-full.7z vfs.file.exists["{$PDATAFULL}\{#DATANAMEF}\month\{$DATE_YYYY}-{$DATE_MM}-{$DATE_DD}-{#DATANAMEF}-full.7z"] 0 90d 90d Zabbix агент BK_DATA_FULL_LLD Да
Размер файла month\2025-01-31-{#DATANAMEF}-full.7z vfs.file.size["{$PDATAFULL}\{#DATANAMEF}\month\{$DATE_YYYY}-{$DATE_MM}-{$DATE_DD}-{#DATANAMEF}-full.7z"] 0 90d 90d Zabbix агент BK_DATA_FULL_LLD Да
Время изменения свойств файла month\2025-01-31-{#DATANAMEF}-full.7z vfs.file.time["{$PDATAFULL}\{#DATANAMEF}\month\{$DATE_YYYY}-{$DATE_MM}-{$DATE_DD}-{#DATANAMEF}-full.7z",change] 0 90d 90d Zabbix агент BK_DATA_FULL_LLD Да
Время изменения файла month\2025-01-31-{#DATANAMEF}-full.7z vfs.file.time["{$PDATAFULL}\{#DATANAMEF}\month\{$DATE_YYYY}-{$DATE_MM}-{$DATE_DD}-{#DATANAMEF}-full.7z",modify] 0 90d 90d Zabbix агент BK_DATA_FULL_LLD Да
Прототипы триггеров
Средняя Файл бэка старый или отсутсвует {$DATE_YYYY}-{$DATE_MM}-{$DATE_DD}-{#DATANAMEF}-full.7z
{$DATE_DD}=01 and ({check-data-back-local-lld:vfs.file.exists["{$PDATAFULL}\{#DATANAMEF}\month\{$DATE_YYYY}-{$DATE_MM}-{$DATE_DD}-{#DATANAMEF}-full.7z"].max({$TRIG_SECONDS_PREV_MONTH})}=0 or {check-data-back-local-lld:vfs.file.exists["{$PDATAFULL}\{#DATANAMEF}\month\{$DATE_YYYY}-{$DATE_MM}-{$DATE_DD}-{#DATANAMEF}-full.7z"].nodata({$TRIG_SECONDS_PREV_MONTH})}=1 or {check-data-back-local-lld:vfs.file.time["{$PDATAFULL}\{#DATANAMEF}\month\{$DATE_YYYY}-{$DATE_MM}-{$DATE_DD}-{#DATANAMEF}-full.7z",modify].fuzzytime({$TRIG_SECONDS_PREV_MONTH})}=0 or {check-data-back-local-lld:vfs.file.size["{$PDATAFULL}\{#DATANAMEF}\month\{$DATE_YYYY}-{$DATE_MM}-{$DATE_DD}-{#DATANAMEF}-full.7z"].last(#2)}/{check-data-back-local-lld:vfs.file.size["{$PDATAFULL}\{#DATANAMEF}\month\{$DATE_YYYY}-{$DATE_MM}-{$DATE_DD}-{#DATANAMEF}-full.7z"].last()}<0.9 or {check-data-back-local-lld:vfs.file.size["{$PDATAFULL}\{#DATANAMEF}\month\{$DATE_YYYY}-{$DATE_MM}-{$DATE_DD}-{#DATANAMEF}-full.7z"].last()}/{check-data-back-local-lld:vfs.file.size["{$PDATAFULL}\{#DATANAMEF}\month\{$DATE_YYYY}-{$DATE_MM}-{$DATE_DD}-{#DATANAMEF}-full.7z"].last(#2)}>1.1) Да