Zabbix DirSize мониторинг размера папок
LEGACY CONTENT! See actual Ansible repository!
Правило обнаружения считывает перечень заданных на клиенте папок (/etc/zabbix/dirsize-list).
Элемент данных (get) толкает процесс расчета и отправки значений на траппер.
Шаблон: [template_linux_dirsize] FIXFILE template_linux_dirsize.zip
Период обнаружения списка папок: 1 час.
Период опроса значений: 20 минут.
Добавить в конфиг агента
# нужно разрешить выполнение команд
EnableRemoteCommands=1
# нужен Active Server
ServerActive=zabbix.domain.my
#
UserParameter=dirsize.getlist,/etc/zabbix/scripts/dirsize-getlist.sh
/etc/zabbix/dirsize-list
(с обязательным переносом строки в конце)
/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