Правило обнаружения считывает перечень заданных на клиенте папок (/etc/zabbix/dirsize-list).
Элемент данных (get) толкает процесс расчета и отправки значений на траппер.
Шаблон: template_linux_dirsize
Период обнаружения списка папок: 1 час.
Период опроса значений: 20 минут.
Добавить в конфиг агента
# нужно разрешить выполнение команд EnableRemoteCommands=1 # нужен Active Server ServerActive=zabbix.domain.my # UserParameter=dirsize.getlist,/etc/zabbix/scripts/dirsize-getlist.sh
/etc/zabbix/dirsize-list
(с обязательным переносом строки в конце)
/var/www/domain.com/compile /var/www/domain.com/packages
/etc/zabbix/scripts/dirsize-getlist.sh
#!/bin/bash echo '{ "data":[ ' echo '{"HEADER":"DOLL" }' while read LINE do echo ',{"{#DIRPATH}":"'$LINE'"}' done < /etc/zabbix/dirsize-list echo '] }'
Добавить в /etc/sudoers:
# CentOS 6.8 zabbix<>ALL=(ALL) NOPASSWD: /usr/bin/du # Debian 8 (jessie) zabbix ALL=(ALL:ALL) /usr/bin/du
/etc/zabbix/scripts/dirsize-get.sh
#!/bin/bash DIRLIST='/etc/zabbix/dirsize-list' send2zabbix() { KEY=$1 VALUE=$2 /usr/bin/zabbix_sender -c /etc/zabbix/zabbix_agentd.conf -k $KEY -o $VALUE >/dev/null 2>&1 } while read DIR do if [ -d $DIR ] then send2zabbix dirsize.get[$DIR] `sudo du -B1 --max-depth 0 $DIR | awk '{print $1}'` & fi done < $DIRLIST wait