Мониторинг размера директории Linux в Zabbix

Однажды мне понадобилось мониторить размер директории в Zabbix и сделать триггер, чтобы Zabbix оповещал когда размер директории будет увеличен.

Естественно триггер на малый размер свободного пространства дисковой системы уже присутствует в стандартных шаблонах Template OS Linux(Mounted filesystem discovery), но не хватало еще чтобы например файл не ротируемых логов занял почти всю дисковую систему, в моем случае например у разработчиков ABillS модуль sms при отсутствии связи с sms сервером мог за час записывать гигабайт логов, я сделал скрипты ротации некоторых логов, но неизвестно какие еще файлы появятся в новых версиях ABillS, по этому мониторить размер директории не помешает.

Простая команда проверки размера директории:

du -h -s /usr/abills/

У меня отобразилось:

2.7G /usr/abills/

Получается необходимо урезать 12 последних символов, пробел и букву G, то есть 14 символов, я это сделал так:

du -h -s /usr/abills/ | sed -r 's/(.+).{14}/\1/'

В результате получилось число которое можно передавать в Zabbix:

2.7

Далее я открыл файл /etc/zabbix/zabbix_agentd.conf и добавил в конце:

UserParameter=dir_size_usr_abills,du -h -s /usr/abills/ | sed -r 's/(.+).{14}/\1/'

Перезагрузил zabbix-agent чтобы применить конфигурацию:

service zabbix-agent restart

Теперь можно в свой шаблон добавить элемент данных с ключом «dir_size_usr_abills» и типом Zabbix агент, по нему сделать график и например триггер с выражением:

last(/ixnfo.com_template/dir_size_usr_abills)>3.5

Вливайтесь в общение

1 комментарий

Добавить комментарий

  1. Можна трохи оптимізувати регулярку

    [\d\.\d]+

    будемо отримувати цілі числа, та числа з десятковим знаком (приклад regex101.com/r/6930FT/1)