Vfs dir size windows

Шаблон с Zabbix 4.2
Проверка доступна на Linux и Windows (на узле активируется нужное правило обнаружения для той или иной ОС)

НОВАЯ ВЕРСИЯ ШАБЛОНА Обновлённая версия Обнаружение папок и запрос их размера LLD Шаблон + Скрипт

Скачать Шаблон + скрипт

Проверка только папок или папки (файлы не проверяются в данном случае если необходимо проверять еще файлы или только файлы нужно переделать скрипт запрос и ключ прототипа элемента)

Для тех у кого При запросе Элемента данных Zabbix агент и Zabbix активный агент — у нас ограничение по времени ответа, т.е. ответ должен успеть придти за указанное время в файле конфигурации сервера и агента, максимальное время 30 секунд! Не успевает придти ответ слишком долгий запрос.
Читаем тут 11 собщение для Linux через скрипт и тут 12 сообщение для Windows через скрипт
Скачать Шаблон + скрипт

Изменения в шаблоне и скрипте V1.0 до V1.3
Добавлена возможность проверять несколько папок на одном хосте прописав в макросе путь через точку с запятой;
Но при этом скрипт некорректно работал на Windows из-за слешей windows в пути \ так как считал спец символами их, а путь нужно передавать сразу готовый в отличии от v1.0 где путь поставлялся из макроса и найденная папка. Слеши прописываются обратные / в пути но проверка проходит (возможно как то сделать в элементе предобработку регулярку для изменения в пути слешей / на \)
Сделан шаблон и скрипт для работы с портом.

Алгоритм: после того как добавили шаблон к узлу в Макросах узла прописываем переменную
Например Макрос {$PATH.DIR} Значение /var/www/owncloud/data пишем путь без кавычек экранировать не нужно, закрывающий слеш так же не нужен он уже есть в скрипте!
по данному пути у нас хранятся папки пользователей будем проверять их размер
Пример нескольких путей Макрос {$PATH.DIR} Значение /var/www/owncloud/data;/root
На Windows Макрос {$PATH.DIR} Значение C:\zabbix;C:\Users;\\IP\Папка

Discovery-size-dir.jpg

Версия с Портом дополнительно в узле нужно прописать порт

Discovery-size-dir-Port.jpg

Пример Макросов на узле

Пример макросов.jpg

Более подробно о работе Команда DIR для Windows

vfs.dir.size[директория,<regex_вкл>,<regex_искл>,<режим>,<макс_глубина>]

Размер директории (в байтах). Целое число директория — абсолютный путь к директории
regex_вкл — регулярное выражение описывающее включаемые файл, директорию и символическую ссылку (если пусто, включаются все файлы, директории и символические ссылки; пустая строка является значением по умолчанию)
regex_искл — регулярное вырыжение описывающее исключаемые файл, директорию и символическую ссылку (если пусто, ничего не исключать; пустая строка является значением по умолчанию)
режим — возможные значения:
apparent (по умолчанию) — получение реальных размеров файлов вместо использования диска (работает как du -sb директория), disk — получение использования диска (работает как du -s -B1 директория). В отличии от du команды, элемент данных vfs.dir.size принимает во внимание скрытые файлы при вычислении размера директории (работает как du -sb .[^.]* * в пределах директории).
макс_глубина — максимальная глубина сканируемых поддиректорий. -1 (по умолчанию) — без ограничения, 0 — без проверки нижестоящих поддиректорий.
Подсчитываются только те директории к которым zabbix пользователь имеет по крайней мере права чтения.

В Windows любая символическая ссылка пропускается и жесткие ссылки принимаются во внимание только один раз.

При наличии больших директорий или медленных дисков этот элемент данных может превысить время ожидания из-за настройки Timeout в файлах конфигурации агента и сервера/прокси. При необходимости увеличьте эти значения времени ожидания.

Примеры:
⇒ vfs.dir.size[/tmp,log] — вычисление размеров всех файлов в /tmp, которые содержат в своём имени ‘log’
⇒ vfs.dir.size[/tmp,log,^.+\.old$] — вычисление размеров всех файлов в /tmp, которые содержат в своём имени ‘log’, исключая файлы содержащие в своем имени ‘.old’

Ограничение размера файлов зависит от наличия поддержки больших файлов.

Поддерживается начиная с Zabbix 3.4.0.

Другие варианты ключей
vfs.dev.read[<устройство>,<тип>,<режим>]
vfs.dev.write[<устройство>,<тип>,<режим>]
vfs.dir.count[директория,<regex_вкл>,<regex_искл>,<типы_вкл>,<типы_искл>,<макс_глубина>,<мин_размер>,<макс_размер>,<мин_возраст>,<макс_возраст>]
vfs.dir.size[директория,<regex_вкл>,<regex_искл>,<режим>,<макс_глубина>]
vfs.file.cksum[файл]
vfs.file.contents[файл,<кодировка>]
vfs.file.exists[файл]
vfs.file.md5sum[файл]
vfs.file.regexp[файл,регулярное выражение,<кодировка>,<начальная строка>,<конечная строка>,<вывод>]
vfs.file.regmatch[файл,регулярное выражение,<кодировка>,<начальная строка>,<конечная строка>]
vfs.file.size[файл]
vfs.file.time[файл,<режим>]
vfs.fs.discovery
vfs.fs.inode[fs,<режим>]
vfs.fs.size[fs,<режим>]
Более подробно об этих ключах читаем тут

Установка
На Заббикс сервер копируем скрипт size-dir.sh и size-dir-port.sh в папку /usr/local/share/zabbix/externalscripts
Даем права на выполнение скрипта chmod 777 /usr/local/share/zabbix/externalscripts/size-dir.sh
Даем права на выполнение скрипта chmod 777 /usr/local/share/zabbix/externalscripts/size-dir-port.sh
Делаем импорт Шаблона «Обнаружение папок и запрос их размера» и «Обнаружение папок и запрос их размера с Портом»
Цепляем шаблон к узлу
Прописываем путь где будем проверять, в Макрос Узла
Если вариант с портом в макросе порта в узле прописываем порт
Активируем нужное авто обнаружение linux или Windows в узле (для быстроты можно отметить галкой и нажать проверить сейчас)
Проверить на Windows в cmd кодировку командой chcp и в зависимости от кодировки активировать правило cp866 или cp1251 для поддержки Русского наименования папок!
После того как элементы создадутся будет запрошен их размер
Если размер превышает заданные в триггер он сработает
Так же если нет данных элемента более 24 часов Триггер сработает

Для Widows
Проверить на Windows в cmd кодировку командой chcp
Проверить на самом хосте команду
Локально cmd dir /A:D /B «C:\Users»
По сети cmd dir /A:D /B «\\192.168.ххх.ххх\папка» либо имя пк cmd dir /A:D /B «\\Имя-Пк\папка»

Хотя в самом скрипте есть » «при передаче в скрипт, теряется слеш \ Либо экранируем или пишем по 2шт если сеть то 3 \\\
Экранируем кавычки \» так же если нужен \ пишем их несколько \\\
discoverywin — кодировка cp866
discoverywincp — кодировка cp1251
./size-dir.sh 192.168.ХХХ.ХХХ discoverywin ‘C:\Users’ — одинарные кавычки
./size-dir.sh 192.168.ХХХ.ХХХ discoverywin «C:\Users»двойные желательно так проверять
./size-dir.sh 192.168.ХХХ.ХХХ discoverywin C:\\Users — 2 слеша пака с именем с пробелом уже не отработает в таком варианте
Несколько папок через точку с запятой
./size-dir.sh 192.168.ХХХ.ХХХ discoverywin «C:\Users;C:\zabbix»

Запрос по сети (так же если нужно через точку с запятой несколько путей, вместо IP можно использовать имя-пк)
zabbix_get -s IP -k system.run[«dir /B C:\\Users»]
zabbix_get -s IP -k system.run[«dir /A:D /B C:\\Users»]
./zabbix_get -s 192.168.ххх.ххх -k system.run[«dir /A:D /B \»\\\192.168.ххх.ххх\папка\»»]
./size-dir.sh 192.168.ххх.ххх discoverywin «\\\192.168.ххх.ххх\папка»

С портом все аналогично выбирается скрипт для работы с портом и вторая входная это порт один пример
./size-dir-port.sh 192.168.ххх.ххх 10050 discoverywin «\\\192.168.ххх.ххх\docs»

Проверить работу ключа получить размер папки
Так же проверить команду запроса размера папки должен прилететь размер
zabbix_get -s 192.168.XXX.XXX -k ‘vfs.dir.size[C:\Users\Имя-Папки]’

Для путей Linux нет проблем так как используется обратный слеш / экранировать не нужно
Для Linux
Команда bash
ls -F путь-на-папку|grep -E «*/» Показать что лежит по данному пути, найти и вывести все что заканчивается на / — т.е. это будет папка
ls -F «root»|grep -E «*/» Пример для папки root

zabbix_get -s IP -k system.run[«ls -F /var/www/owncloud/data|grep -E \»*/\»»]

Скриптом
Linux
./size-dir.sh IP discovery /var/www/owncloud/data
Если есть пробелы в папке экранируем
./size-dir.sh IP discovery «/var/www/own cloud/data»

Скрипт size-dir.sh

#!/bin/bash
#2020/12/15 v1.3
# Автор Мамзиков Артём Андреевич Описание по скрипту
# Получение списка папок в определенной директории и мониторинг их размера

IFS=$’\n’
JSON=»{\»data\»:[«
SEP=»»

if [[ $2 = «discovery» ]]
then
# Проверка нескольких директорий на 1 хосте, делим через ;
IFS=’;’ read -ra sumdir < <(echo $3)
# Печать разделенной строки
for puti in «${sumdir[@]}»
do
get=`zabbix_get -s $1 -k system.run[«ls -F «${puti}»|grep -E \»*/\»»]`
# Запрашиваем папки в owncloud/data циклом
for dirp in $get
do
JSON=$JSON»$SEP\n{\»{#DIRSIZELINUX}\»:\»»${puti}»/$dirp\»}»
SEP=», «
done
done
# Выводим результат в json data
JSON=$JSON»\n]}»
echo -e $JSON
fi

if [[ $2 = «discoverywin» ]]
then
# Проверка нескольких директорий на 1 хосте, делим через ;
IFS=’;’ read -ra sumdir < <(echo $3)
# Печать разделенной строки
for puti in «${sumdir[@]}»
do
get=`zabbix_get -s $1 -k system.run[«dir /A:D /B \»»${puti}»\»»]`
# Избавимся от CR Возврат каретки если нужно можно еще от LF Перевод строки \r \n ; главное убрать \r иначе ломает весь вывод
obr=$(echo «${get}»|tr -d ‘\r’)
# Запрашиваем папки циклом
#for dirp in «${obr}»
# Если корректно не отображается русский перекодируем из cp866 в utf8 ,кому нужно можно так же из cp1251 в utf8
for dirp in $(echo «${obr}»|iconv -f cp866 -t utf8)
do
# Ввиду сложности передачи слешей windows, преобразуем в пути \ в обратные слеши /
#put=$(echo «${puti}»|sed ‘s/\\/\//g’)
put=»${puti//\\//}»
# Объединим все в один путь, в одну выходную переменную
JSON=$JSON»$SEP\n{\»{#DIRSIZEWIN}\»:\»»${put}»/$dirp\»}»
SEP=», «
done
done
# Выводим результат в json data
JSON=$JSON»\n]}»
echo -e $JSON
fi

if [[ $2 = «discoverywincp» ]]
then
# Проверка нескольких директорий на 1 хосте, делим через ;
IFS=’;’ read -ra sumdir < <(echo $3)
# Печать разделенной строки
for puti in «${sumdir[@]}»
do
get=`zabbix_get -s $1 -k system.run[«dir /A:D /B \»»${puti}»\»»]`
# Избавимся от CR Возврат каретки если нужно можно еще от LF Перевод строки \r \n ; главное убрать \r иначе ломает весь вывод
obr=$(echo «${get}»|tr -d ‘\r’)
# Запрашиваем папки циклом
#for dirp in «${obr}»
# Если корректно не отображается русский перекодируем из cp1251 в utf8
for dirp in $(echo «${obr}»|iconv -f cp1251 -t utf8)
do
# Ввиду сложности передачи слешей windows, преобразуем в пути \ в обратные слеши /
#put=$(echo «${puti}»|sed ‘s/\\/\//g’)
put=»${puti//\\//}»
# Объединим все в один путь, в одну выходную переменную
JSON=$JSON»$SEP\n{\»{#DIRSIZEWIN}\»:\»»${put}»/$dirp\»}»
SEP=», «
done
done
# Выводим результат в json data
JSON=$JSON»\n]}»
echo -e $JSON
fi

Скрипт size-dir-port.sh

#!/bin/bash
#2020/12/15 v1.3
# Автор Мамзиков Артём Андреевич Описание по скрипту
# Получение списка папок в определенной директории и мониторинг их размера

IFS=$’\n’
JSON=»{\»data\»:[«
SEP=»»

if [[ $3 = «discovery» ]]
then
# Проверка нескольких директорий на 1 хосте, делим через ;
IFS=’;’ read -ra sumdir < <(echo $4)
# Печать разделенной строки
for puti in «${sumdir[@]}»
do
get=`zabbix_get -s $1 -p $2 -k system.run[«ls -F «${puti}»|grep -E \»*/\»»]`
# Запрашиваем папки в owncloud/data циклом
for dirp in $get
do
JSON=$JSON»$SEP\n{\»{#DIRSIZELINUX}\»:\»»${puti}»/$dirp\»}»
SEP=», «
done
done
# Выводим результат в json data
JSON=$JSON»\n]}»
echo -e $JSON
fi

if [[ $3 = «discoverywin» ]]
then
# Проверка нескольких директорий на 1 хосте, делим через ;
IFS=’;’ read -ra sumdir < <(echo $4)
# Печать разделенной строки
for puti in «${sumdir[@]}»
do
get=`zabbix_get -s $1 -p $2 -k system.run[«dir /A:D /B \»»${puti}»\»»]`
# Избавимся от CR Возврат каретки если нужно можно еще от LF Перевод строки \r \n ; главное убрать \r иначе ломает весь вывод
obr=$(echo «${get}»|tr -d ‘\r’)
# Запрашиваем папки циклом
#for dirp in «${obr}»
# Если корректно не отображается русский перекодируем из cp866 в utf8 ,кому нужно можно так же из cp1251 в utf8
for dirp in $(echo «${obr}»|iconv -f cp866 -t utf8)
do
# Ввиду сложности передачи слешей windows, преобразуем в пути \ в обратные слеши /
#put=$(echo «${puti}»|sed ‘s/\\/\//g’)
put=»${puti//\\//}»
# Объединим все в один путь, в одну выходную переменную
JSON=$JSON»$SEP\n{\»{#DIRSIZEWIN}\»:\»»${put}»/$dirp\»}»
SEP=», «
done
done
# Выводим результат в json data
JSON=$JSON»\n]}»
echo -e $JSON
fi

if [[ $3 = «discoverywincp» ]]
then
# Проверка нескольких директорий на 1 хосте, делим через ;
IFS=’;’ read -ra sumdir < <(echo $4)
# Печать разделенной строки
for puti in «${sumdir[@]}»
do
get=`zabbix_get -s $1 -p $2 -k system.run[«dir /A:D /B \»»${puti}»\»»]`
# Избавимся от CR Возврат каретки если нужно можно еще от LF Перевод строки \r \n ; главное убрать \r иначе ломает весь вывод
obr=$(echo «${get}»|tr -d ‘\r’)
# Запрашиваем папки циклом
#for dirp in «${obr}»
# Если корректно не отображается русский перекодируем из cp1251 в utf8
for dirp in $(echo «${obr}»|iconv -f cp1251 -t utf8)
do
# Ввиду сложности передачи слешей windows, преобразуем в пути \ в обратные слеши /
#put=$(echo «${puti}»|sed ‘s/\\/\//g’)
put=»${puti//\\//}»
# Объединим все в один путь, в одну выходную переменную
JSON=$JSON»$SEP\n{\»{#DIRSIZEWIN}\»:\»»${put}»/$dirp\»}»
SEP=», «
done
done
# Выводим результат в json data
JSON=$JSON»\n]}»
echo -e $JSON
fi

Группы элементов данных Size-Dir

Авто обнаружение

Авто обнаружение Discovery-size-dir.jpg

Прототип элемента аналогично для windows только другой макрос

Прототип Элемента Discovery-size-dir.jpg

Прототип триггера аналогично для windows только другой макрос

Прототип Триггера Discovery-size-dir.jpg
Пример Windows size-dir.jpg
Пример данные Windows size-dir.jpg

Алгоритм: после того как добавили шаблон к узлу в Макросах узла прописываем переменную
Например Макрос {$PATH.DIR} Значение /var/www/owncloud/data/ пишем путь без кавычек экранировать не нужно, завершающий слеш зависит от скрипта 2 версии!
по данному пути у нас хранятся папки пользователей будем проверять их размер

PATH.DIR-primer

#!/bin/bash
#2020/09/24 v1.0
# Автор Мамзиков Артём Андреевич Описание по скрипту
# Получение списка папок в определенной дириктории и мониторинг их размера

IFS=$’\n’
JSON=»{\»data\»:[«
SEP=»»

if [[ $2 = «discovery» ]]
then
get=`zabbix_get -s $1 -k system.run[«ls -F $3|grep -E \»*/\»»]`
# Запрашиваем папки циклом
for dirp in $get
do
JSON=$JSON»$SEP\n{\»{#DIRSIZELINUX}\»:\»$dirp\»}»
SEP=», «
done
# Выводим результат в json data
JSON=$JSON»\n]}»
echo -e $JSON
fi

if [[ $2 = «discoverywin» ]]
then
get=`zabbix_get -s $1 -k system.run[«dir /A:D /B \»$3\»»]`
# Избавимся от CR Возврат каретки если нужно можно еще от LF Перевод строки \r \n ; главное убрать \r иначе ломает весь вывод
obr=$(echo «${get}»|tr -d ‘\r’)
# Запрашиваем папки циклом
#for dirp in «${obr}»
# Если корректно не отображается русский перекодируем из cp866 в utf8 ,кому нужно можно так же из cp1251 в utf8
for dirp in $(echo «${obr}»|iconv -f cp866 -t utf8)
do
JSON=$JSON»$SEP\n{\»{#DIRSIZEWIN}\»:\»$dirp\»}»
SEP=», «
done
# Выводим результат в json data
JSON=$JSON»\n]}»
echo -e $JSON
fi

if [[ $2 = «discoverywincp» ]]
then
get=`zabbix_get -s $1 -k system.run[«dir /A:D /B \»$3\»»]`
# Избавимся от CR Возврат каретки если нужно можно еще от LF Перевод строки \r \n ; главное убрать \r иначе ломает весь вывод
obr=$(echo «${get}»|tr -d ‘\r’)
# Запрашиваем папки циклом
#for dirp in «${obr}»
# Если корректно не отображается русский перекодируем из cp1251 в utf8
for dirp in $(echo «${obr}»|iconv -f cp1251 -t utf8)
do
JSON=$JSON»$SEP\n{\»{#DIRSIZEWINCP}\»:\»$dirp\»}»
SEP=», «
done
# Выводим результат в json data
JSON=$JSON»\n]}»
echo -e $JSON
fi

Шаблон Discovery-size-dir Обнаружение папок и запрос их размера

Discovery-size-dir
Discovery-size-dir2
Discovery-size-dir3
Discovery-size-dir4
Discovery-size-dir5
Discovery-size-dir6
Discovery-size-dir7

Группа элементов данных Size-Dir
Правило
Имя Linux Обнаружение папок в определенной директории
Тип Внешняя проверка
Ключ size-dir.sh[{HOST.CONN},discovery,{$PATH.DIR}]
Интервал обновления 24h
Период сохранения потерянных ресурсов 30d
Описание Директория где искать задается в Макросе узла
Активировано V

Прототип элемента
Имя Size-Dir-{#DIRSIZELINUX}
Тип Zabbix agent
Ключ vfs.dir.size[{$PATH.DIR}{#DIRSIZELINUX}]
Тип информации Числовой с плавающей точкой
Единица измерения B
Интервал обновления 24h
Группы элементов данных Size-Dir
Описание
Запрос 1 раза в сутки, получаем размер директории в байтах

vfs.dir.size[директория,<regex_вкл>,<regex_искл>,<режим>,<макс_глубина>]

режим — возможные значения:
apparent (по умолчанию) — получение реальных размеров файлов вместо использования диска (работает как du -sb директория),
disk — получение использования диска (работает как du -s -B1 директория). В отличии от du команды, элемент данных vfs.dir.size принимает во внимание скрытые файлы при вычислении размера директории (работает как du -sb .[^.]* * в пределах директории).

макс_глубина — максимальная глубина сканируемых поддиректорий. -1 (по умолчанию) — без ограничения,
0 — без проверки нижестоящих поддиректорий.

пример проверки скрипта

Для Widows
Проверить на самом хосте команду cmd dir /A:D /B «C:\Users»
С Заббикс сервера отправить запрос например C:\Users\
zabbix_get -s IP-проверяемого хоста -k system.run[«dir /A:D /B \»C:\Users\»»]
Хотя в самом скрипте есть » » видимо при передаче в скрипт, теряется слеш \ Либо экранируем или пишем по 2шт если сеть то 3 \\\
./size-dir.sh 192.168.ХХХ.ХХХ discoverywin ‘C:\Users’
./size-dir.sh 192.168.ХХХ.ХХХ discoverywin «C:\Users»
./size-dir.sh 192.168.ХХХ.ХХХ discoverywin C:\\Users

Если ключ не подхватит такой путь делаем 2 макрос для ключа уже без кавычек и двойных слешей

Должный выйти чистые имена папок без пробелов

Так же проверить команду запроса размера папки должен прилететь размер
zabbix_get -s 192.168.XXX.XXX -k ‘vfs.dir.size[C:\Users\Имя-Папки]’

Экранируем кавычки \» так же если нужен \ пишем их несколько \\\

Для Linux
zabbix_get -s IP -k system.run[«ls -F /var/www/owncloud/data/|grep -E \»*/\»»]
Windows
zabbix_get -s IP -k system.run[«dir /B C:\\Users»]

Скриптом
Linux
./size-dir.sh IP discovery /var/www/owncloud/data/
Windows
./size-dir.sh IP discoverywin C:\\

./Имя скрипта $1-первыйвходной параметр переменная $2-второй переменный входной параметр

Триггер
Имя {HOST.NAME}-DIR-{#DIRSIZELINUX}-SIZE-BOLEE>9GB
Важность Средняя
Выражение {Discovery-size-dir:vfs.dir.size[{$PATH.DIR}{#DIRSIZELINUX}].last()}>9663676416 or
{Discovery-size-dir:vfs.dir.size[{$PATH.DIR}{#DIRSIZELINUX}].nodata(25h)}=1

Описание
Объем папки {#DIRSIZELINUX} на {HOST.NAME} более ГБ
Последнее значение: {ITEM.VALUE} {ITEM.LASTVALUE} ({TIME})

Если данных нет 25 часов ошибка

Правило
Имя Windows Обнаружение папок в определенной дириктории
Тип Внешняя проверка
Ключ size-dir.sh[{HOST.CONN},discoverywin,{$PATH.DIR}]
Интервал обновления 24h
Период сохранения потерянных ресурсов 30d
Описание Директория где искать задается в Макросе узла
Активировано

Прототип элемента
Имя Size-Dir-{#DIRSIZEWIN}
Тип Zabbix agent
Ключ vfs.dir.size[{$PATH.DIR}{#DIRSIZEWIN}]
Тип информации Числовой с плавающей точкой
Единица измерения B
Интервал обновления 24h
Группы элементов данных Size-Dir
Описание
Запрос 1 раза в сутки, получаем размер директории в байтах

vfs.dir.size[директория,<regex_вкл>,<regex_искл>,<режим>,<макс_глубина>]

режим — возможные значения:
apparent (по умолчанию) — получение реальных размеров файлов вместо использования диска (работает как du -sb директория),
disk — получение использования диска (работает как du -s -B1 директория). В отличии от du команды, элемент данных vfs.dir.size принимает во внимание скрытые файлы при вычислении размера директории (работает как du -sb .[^.]* * в пределах директории).

макс_глубина — максимальная глубина сканируемых поддиректорий. -1 (по умолчанию) — без ограничения,
0 — без проверки нижестоящих поддиректорий.

Триггер
Имя {HOST.NAME}-DIR-{#DIRSIZEWIN}-SIZE-BOLEE>9GB
Важность Средняя
Выражение {Discovery-size-dir:vfs.dir.size[{$PATH.DIR}{#DIRSIZEWIN}].last()}>9663676416 or
{Discovery-size-dir:vfs.dir.size[{$PATH.DIR}{#DIRSIZEWIN}].nodata(25h)}=1

Описание
Объем папки {#DIRSIZEWIN} на {HOST.NAME} более ГБ
Последнее значение: {ITEM.VALUE} {ITEM.LASTVALUE} ({TIME})

Если нет данных 25 часов ошибка

По мимо декодирования Русского на Windows , выяснилось что формируется не правильный вывод переменной оказалось что это из-за CR Возврат каретки \r пришлось сделать еще одну обработку переменной для удаления возврата каретки.

CR Возврат каретки влияние на вывод в Linux

Преобразование слешей
home_mf=»${home//\\//}»
$ t=’\a\b\c’; echo «${t//\\//}»
/a/b/c

home_mf=»${home//’\’/»/»}»

home_mf=${home//\//\\}
home_mf=${home//\\//}

home_mf=$(printf «%s» «$home» | sed ‘s/\//\\/g’) # вперед к обратной косой черте
home_mf=$(printf «%s» «$home_mf» | sed ‘s/\\/\//g’) # в обратную косую черту

printf «%s\n» «$home_mf» instead of echo «$home_mf»
sed s command, e.g. s,/,\\,g and s,\\,/,g

Попытка сделать регулярку для возврата слешей windows
Замена в MAC адресе как пример но только для точного пути если они разные не подойдет
Найти (\w+)-(\w+)-(\w+)-(\w+)-(\w+)-(\w+) Заменить \1:\2:\3:\4:\5:\6
Найти (\w+):(\w+):(\w+):(\w+):(\w+):(\w+) Заменить \1-\2-\3-\4-\5-\6

Нужно сделать все в шаблоне регулярки в (всю команду тут) и вывести в \1 для всего пути

включает inline модификатор (?i) для поиска соответствия символов “error”:
(?i)error

включает несколько inline модификаторов для поиска соответствия символов после указанной строки
(?<=match (?i)everything(?-i) after this line\n)(?sx).*# мы добавили s модификатор, чтобы разрешить . соответствие символам перехода на новую строку

. Точка. Обозначает любой символ
\ Экранирующий символ. Символы которые экранируются: ^, [, ., $, {, *, (, ), \, +, |, ?, <, >
^ Крышка. Начало строки
$ Конец строки
\d Любая цифра
\D Не цифра
\s Пробел, табуляция, перенос строки
\S Не пробел
\w Любая буква латиницы, цифра, или знак подчёркивания
\W Не латиница, не цифра, не подчёркивание
| Или. Соединяет несколько вариантов
\b Граница слова. Применяется когда нужно выделить, что искомые символы являются словом, а не частью другого слова
\B Не граница слова
\< Начало слова
\> Конец слова
\A Начало текста
\Z Конец текста
* Повторитель. Означает что предшествующий символ может работать 0 и более раз
+ Количество предшествующего не менее 1-го.
? Ограничитель. Не более одного раза
[ ] В квадратных скобках задаются символы к поиску, например [a-яА-Я], или [0-9]
[^ ] Исключает из поиска символы указанные в квадратных скобках
() В круглые скобки заключаются все комбинации с «или» и поиск начала и конца строк
{ } В фигурных скобках указывается точное количество вхождений, например если надо две цифры, то \d{2}, если две или четыре, то \d{2,4}, если четыре и более, то {4,}
\n Новая строка

Заменить точку
Пример. Пример. Пример.
(?:.*?\K symblo ){N}
(?:.*?\K\.){1}
((?:.*?\.){0}.*?)\. замена $1 (на что заменить)
(?:.*?\.)

все комбинации с «или» и поиск начала и конца строк, Не более одного раза
((?:\G(?!\A)|copy\s+»(?=[^»]\.cpy»))[^\\»]*)\\

Если при проверке Элемент данных выдает нет доступа к директории permission denied или путь не найден NOT_FOUND

Тут несколько вариантов:
1. Проверить путь и наличие файла возможно экранирование пути и \

2. Не хватает прав на папки (путь) на сам файл.
Решение: Выдать необходимые права или Сменить пользователя от которого работает Заббикс Агент
Windows в Службе заббикс агента
в Linux пример Запуск Zabbix Agent от Root

3. В конфигурации Заббикс Агента начиная с Zabbix 5.0 system.run
Удаленные команды по-прежнему отключены по умолчанию, но в новых конфигурационных файлах, которые выражаются с помощью нового параметра DenyKey (DenyKey=system.run[*]) черный список, разрешить все AllowKey=system.run[*].

Удаленные команды можно включить, удалив (или закомментировав) ключ DenyKey=system.run[*]
Ранее этот параметр был EnableRemoteCommands = 1, иначе агент не сможет принимать команды.
Параметр EnableRemoteCommands теперь устарел.
Более подробно Поддержка черных и белых списков для метрик на стороне агента

Skip to content

Zabbix — Размер папки монитора в Windows

Zabbix — Размер папки монитора в Windows

Список оборудования:

В следующем разделе представлен список оборудования, использованного для создания этого учебника Zabbix.

Все вышеперечисленное оборудование можно найти на сайте Amazon.

Zabbix Playlist:

На этой странице мы предлагаем быстрый доступ к списку видео, связанных с установкой Zabbix.

Не забудьте подписаться на наш канал на YouTube FKIT.

Zabbix Связанное руководство:

На этой странице мы предлагаем быстрый доступ к списку учебных пособий, связанных с установкой Zabbix.

Учебник — Zabbix Monitor Размер папки Windows

Теперь нам нужно получить доступ к панели инструментов Zabbix-сервера и добавить компьютер с Windows в качестве хоста.

Откройте браузер и введите IP-адрес вашего веб-сервера плюс / zabbix.

В нашем примере в браузере был введен следующий URL:

• http://35.162.85.57/zabbix

На экране входа в систему используйте имя пользователя по умолчанию и пароль по умолчанию.

• Имя пользователя по умолчанию: Admin
• Пароль по умолчанию: zabbix

После успешного входа вы будете отправлены на Zabbix Dashboard.

zabbix dashboard

На экране панели инструментов откройте меню «Конфигурация» и выберите опцию «Хост».

zabbix add host

В правом верхнем углу экрана нажмите кнопку «Создать хост».

На экране конфигурации хоста вам нужно будет ввести следующую информацию:

• Имя хоста — введите имя хоста для мониторинга.
• Видимое имя хоста — повторите имя хоста.
• Новая группа — введите имя для идентификации группы похожих устройств.
• Интерфейс агента — введите IP-адрес имени хоста.

Вот оригинальное изображение, перед нашей конфигурацией.

zabbix Cisco - Antes

Вот новое изображение с нашей конфигурацией.

Zabbix Windows host

Нажмите кнопку Добавить, чтобы включить этот хост в базу данных Zabbix.

На экране панели инструментов откройте меню «Конфигурация» и выберите опцию «Хост».

zabbix add host

Найдите и нажмите на имя хоста, который вы создали ранее.

В нашем примере мы выбрали имя хоста: WINDOWS-SERVER-01

На экране свойств хоста перейдите на вкладку Приложения.

Zabbix Windows Service Application menu

В верхней правой части экрана нажмите кнопку «Создать приложение».

Zabbix Windows Service Application

На экране приложений хоста создайте новое приложение с именем: Размер каталога.

Zabbix monitor directory application

После завершения создания приложения перейдите на вкладку «Элементы».

Zabbix Item Tab

В верхней правой части экрана нажмите кнопку «Создать элемент».

На экране «Создание элемента» необходимо настроить следующие элементы:

• Имя: введите идентификатор в папку Windows.
• Тип: Zabbix Агент
• Ключ: vfs.dir.size [C: \ Windows \ System32 \ drivers \ etc ,,, disk,]

• Тип информации: числовой (с плавающей точкой)
• Интервал обновления: 300 секунд
• Единицы: б
• Показать значение: как есть
• Применение: Размер каталога

Zabbix monitor windows folder

Нажмите на кнопку Добавить, чтобы завершить создание элемента и подождите 5 минут.

Чтобы протестировать свою конфигурацию, войдите в меню «Мониторинг» и выберите опцию «Последние данные».

Zabbix Latest data

Используйте конфигурацию фильтра, чтобы выбрать желаемое имя хоста.

В нашем примере мы выбрали имя хоста WINDOWS-SERVER-01

Нажмите на кнопку Применить.

Zabbix Windows service Filter

Вы сможете увидеть результаты мониторинга папок Windows с помощью Zabbix.

Zabbix monitoring folder windows

В нашем примере Zabbix сервер обнаружил, что размер каталога ETC составляет: 36,86 КБ.

Поздравляем! Вы настроили функцию мониторинга размера папки Zabbix в Windows.

VirtualCoin CISSP, PMP, CCNP, MCSE, LPIC22019-10-01T14:48:53-03:00

Related Posts

Leave A Comment

You must be logged in to post a comment.

Page load link

This website uses cookies and third party services.

Ok

Содержание

  1. Мониторинг размера бэкапа в Zabbix
  2. Введение
  3. Скрипты по сбору информации о размере бэкапов
  4. Настраиваем zabbix агент
  5. Добавляем новый итем на сервер мониторинга zabbix
  6. Заключение
  7. Мониторинг дискового пространства активным Zabbix-агентом
  8. Решение.
  9. Создаём шаблон.
  10. Назначаем шаблон компьютеру
  11. Аренда серверов.
  12. 1С:Предприятие “в облаке”.
  13. IP-телефония в офис.
  14. Zabbix: обнаружение дисков без буквы(win)

Мониторинг размера бэкапа в Zabbix

Ранее я уже рассказывал, как мониторить бэкапы с помощью zabbix. Захотелось собирать информацию о размере бэкапа, чтобы смотреть тренды по его увеличению или уменьшению. Немного пораскинул мозгами и придумал решение задачи по мониторингу размера бэкапов с помощью уже привычного инструмента UserParameter.

Введение

Я уже много раз использовал внешние скрипты и UserParameter для мониторинга в zabbix. Не буду подробно на этом останавливаться. Приведу список своих материалов по этой теме:

Использовать будем такой же подход. У нас будет 2 скрипта. Первый будет собирать информацию о размерах папок с файлами, второй будет передавать сформированные данные в заббикс. Делать все будем раз в сутки, чаще нет смысла, так как у меня бэкапы выполняются с суточным интервалом. Сами бэкапы представляют из себя не отдельные файлы-архивы, а папки. Настроено все примерно так же, как в статье про настройку backup с помощью rsync.

Если у вас еще нет своего сервера для мониторинга, то рекомендую материалы на эту тему. Для тех, кто предпочитает систему CentOS:

То же самое на Debian 10, если предпочитаете его:

Скрипты по сбору информации о размере бэкапов

Первый скрипт будет проверять размер каталогов и записывать результат в текстовый файл. Сначала я собирал размер в байтах, потом решил скриптом преобразовывать в гигабайты, но через некоторое время нашел способ в заббиксе преобразовывать размер из байтов в гигабайты и снова стал в заббикс передавать только байты. Так оказалось удобнее всего. Создаем папку для скриптов и кладем туда сам скрипт:

Если у вас несколько папок с бэкапами, добавляете их все в скрипт. Можно автоматизировать этот процесс, задать переменные с названиями папок с бэкапами и в цикле их перебирать, но у меня это не получилось, так как пути сильно разные. Пришлось все в ручную добавлять. Я привожу пример с одной папкой. Остальные по аналогии добавляете, не забывая изменять имена переменных, в которые передается размер директории.

Результатом работы скрипта будет файл следующего содержания:

имя бэкапа
размер бэкапа в байтах

Необходимо добавить этот скрипт в крон и выполнять раз в сутки. Находите конфиг крона в вашей системе и добавляете туда:

Время выбираете на свое усмотрение. В данном случае у меня отдельный сервер для бэкапов, его можно днем напрячь, когда он простаивает.

Дальше рисуем скрипт, который будет передавать данные в заббикс:

Проверяем его работу следующим образом:

На выходе просто цифра с размером, которая уходит на сервер заббикса. То, что нужно. Важно не забыть один момент, иначе ничего не зааработает. Скрипту нужно назначить владельца zabbix, чтобы агент мог его запускать:

Если этого не сделать, получите ошибку в логе агента:

Настраиваем zabbix агент

Делаем все как обычно. Идем в папку /etc/zabbix/zabbix_agentd.conf.d и создаем файл с пользовательскими параметрами:

Сохраняем файл. Перезапускаем агента и проверяем в консоли, что улетит на сервер:

Все в порядке, агент настроили. Осталось добавить новый итем на сервер.

Добавляем новый итем на сервер мониторинга zabbix

Кратко расскажу, что делать на сервере. Раньше я уже неоднократно рассматривал этот момент, поэтому не буду на нем подробно останавливаться. Больше информации можете получить в предыдущих статьях, которые я привел в самом начале. Идем в веб интерфейс. Выбираем хост, на котором мы только что настраивали агент, заходим в список итемов и добавляем новый:

Name Произвольное имя итема.
Key Название ключа, должно быть точно таким же, как в UserParameter в агенте.
Update interval Время обновления, в данном случае раз в минуту для отладки, потом рекомендую ставить раз в сутки.
Units Единица измерения, в данном случае байты.
Use custom multiplier Пользовательский множитель для корректного перевода в гигабайты

Сохраняем новый итем и ждем поступления данных. В случае указания большого интервала обновления, к примеру, раз в сутки, я не знаю, когда заббикс первый раз проведет опрос. Будет здорово, если кто-нибудь подскажет. Меня всегда интересовал этот момент. Во время отладки я ставлю маленький интервал обновления, например минуту или две. После того, как убеждаюсь, что все работает корректно, изменяют интервал на необходимый.

Смотреть результат следует, как обычно, в Latest data. Там же можно и график посмотреть, когда накопятся данные для него. Для более наглядных и красивых графиков, необходимо будет их вручную создать в конструкторе графиков конкретного хоста. Лично мне достатчно информации из последних данных.

Заключение

С помощью внешних скриптов настроили еще один тип мониторинга для бэкапов. Если у кого-то есть мысли на тему того, что нужно мониторить у резервных копий, высказывайте пожелания, попробую реализовать. Я очень внимательно отношусь к бэкапам и помимо автоматических проверок стараюсь время от времени заходить и глазами проверять все ли в порядке, на месте ли данные и можно ли их восстановить.

На своем опыте убедился в необходимости таких проверок. Приходилось сталкиваться с отказами различных систем, в том числе и коммерческих. Сервис может тупо зависнуть или выключиться, а ты надеешься на оповещения об ошибках, а раз не получаешь их, думаешь, что все в порядке, а на самом деле у тебя нет резервных копий. Еще вариант, с которым приходилось сталкиваться, это когда вроде все в порядке, никаких ошибок нет, а во время восстановления получаешь ошибку чтения данных.

Было бы неплохо автоматизировать восстановление данных и сравнение их с оригиналом для стопроцентной уверенности в том, что у тебя живые копии. Но для этого нужны дополнительные ресурсы.

Мониторинг дискового пространства активным Zabbix-агентом

Для того, чтобы при помощи активного агента Zabbix следить за дисковым пространством компьютера, как оказалось, не нужно писать скриптов. Совсем. 🙂 Все уже умеет делать активный Zabbix-агент “из коробки”. Достаточно создать шаблон и назначить его компьютеру. Всё.

А теперь по порядку.

Сферический компьютер в вакууме. Нужно следить за заполненностью системного диска Windows. Предположим, что у нас всё стандартно, поэтому в качестве буквы системного диска используется “C:”.

Решение.

При помощи активного агента Zabbix будем собирать 4 параметра диска “C:”:

  • общий размер диска
  • размер занятого места
  • размер свободного места
  • процент свободного места.

На основании этих параметров создадим 4 триггера:

  • Предупреждение. Свободно менее 20%
  • Средняя важность. Свободно менее 10%
  • Высокая важность. Свободно менее 1 Гб.
  • Чрезвычайная важность. Свободно менее 100 Мб.

И создадим 2 графика:

  • Размер свободного места
  • Размер свободного места в процентах.

Создаём шаблон.

Имя шаблона: Active Computer – SystemDrive
Группа данных: Filesystems
Элементы данных:

  • SystemDriveSizeFree – vfs.fs.size[“c:”,free]
  • SystemDriveSizePFree – vfs.fs.size[“c:”,pfree]
  • SystemDriveSizeTotal – vfs.fs.size[“c:”,total]
  • SystemDriveSizeUsed – vfs.fs.size[“c:”,used]

Триггеры:

    Предупреждение. Меньше 20% свободно на системном диске компьютера

Назначаем шаблон компьютеру

И начинаем получать данные… 🙂

Аренда серверов.

Надёжные сервера с Pro-бегом
У ВАС В ОФИСЕ
!

1С:Предприятие “в облаке”.

Безопасный доступ к своей 1С из офиса, командировки и т.п.!

IP-телефония в офис.

IP-телефония давно перестала быть роскошью в офисах.
Хотите себе в офис цифровую АТС — обращайтесь.
!

Zabbix: обнаружение дисков без буквы(win)

Все новые темы

Автор
medlov
Новичок

Зарегистрирован: 20.03.2014
Пользователь #: 150,977
Сообщения: 8

Добавлено: Ср 15 Окт, 2014 17:55 Заголовок сообщения: Zabbix: обнаружение дисков без буквы(win)
Вернуться к началу
Зарегистрируйтесь и реклама исчезнет!

manich
Новичок

Зарегистрирован: 02.07.2012
Пользователь #: 140,466
Сообщения: 21

Добавлено: Чт 16 Окт, 2014 9:24 Заголовок сообщения:
Вернуться к началу
medlov
Новичок

Зарегистрирован: 20.03.2014
Пользователь #: 150,977
Сообщения: 8

Добавлено: Чт 16 Окт, 2014 11:26 Заголовок сообщения:
Вернуться к началу
Dirty_Rain
Новичок

Зарегистрирован: 16.10.2014
Пользователь #: 153,834
Сообщения: 9

Голоса: 1

Добавлено: Чт 16 Окт, 2014 11:44 Заголовок сообщения:
Вернуться к началу
medlov
Новичок

Зарегистрирован: 20.03.2014
Пользователь #: 150,977
Сообщения: 8

Читайте также:  Не могу открыть центр уведомлений windows 10

Как узнать размер директории Zabbix в Windows

Если вы занимаетесь мониторингом и администрированием сети Windows, то, скорее всего, слышали о программе Zabbix. Zabbix — это мощная система мониторинга с открытым исходным кодом, которая позволяет контролировать различные аспекты работы вашей сети, включая использование ресурсов диска.

Одним из способов, которыми Zabbix может помочь вам контролировать использование дискового пространства, является использование vfs.dir.size.windows. Это модуль, который позволяет собирать информацию о размере директории в Windows и передавать ее в Zabbix для дальнейшего анализа.

vfs.dir.size.windows позволяет вам контролировать размер любой директории в вашей системе Windows, включая удаленные серверы. Вы можете установить пороговое значение для размера директории и настроить систему Zabbix, чтобы отправлять вам предупреждения, когда размер превышает этот порог.

Такой подход очень полезен, когда вам нужно контролировать директории, которые могут быстро заполниться большим количеством данных, такие как логи и временные файлы. Обнаружив потенциальные проблемы с использованием диска заранее, вы можете принять меры для предотвращения проблем и избежать отказа системы из-за нехватки дискового пространства.

vfs.dir.size.windows также предоставляет информацию о размере поддиректорий, что позволяет вам анализировать, в какой момент времени происходит наибольшее использование дискового пространства и принимать меры для его оптимизации.

В целом, использование модуля vfs.dir.size.windows в системе мониторинга Zabbix дает вам возможность эффективно контролировать использование дискового пространства в вашей сети Windows, предотвратить проблемы и обеспечить безопасность вашей системы.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Сохранить список пользователей windows
  • Создание службы для windows
  • Вырезать сочетание клавиш windows
  • Как вернуть все настройки windows 10 по умолчанию без переустановки windows
  • Скопировать файл консоль windows