Мониторинг дискового пространства с помощью Zabbix при открытом дескрипторе / дескрипторе файла
Недавно я столкнулся с ситуацией, когда "стандартный" мониторинг дискового пространства не удался - Zabbix использует элемент vfs.fs.size для проверки использования диска, который задокументирован и предварительно сконфигурирован в связанных шаблонах.
Эта проблема:
Когда файлы удалены, но дескриптор / дескриптор файла все еще открыт - диск может быть заполнен, но Zabbix не сообщит об использовании в этом случае.
Как можно контролировать дисковое пространство в этом случае?
1 ответ
Вот тест, который я сделал:
df /
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 15350768 14367976 809124 95% /
Я создаю файл размером 600 МБ и открываю его с меньшими затратами:
dd if=/dev/zero of=test bs=1024k count=600 & less test
[1] 1952
"test" may be a binary file. See it anyway? 600+0 records in
600+0 records out
629145600 bytes (629 MB) copied, 11.895 s, 52.9 MB/s
[1]+ Done dd if=/dev/zero of=test bs=1024k count=600
Теперь df покажет, что используется больше места:
df /
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 15350768 14981664 195436 99% /
Теперь, если я удалю свой тестовый файл:
rm test
ДФ говорит:
df /
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 15350768 14981712 195388 99% /
так что пространство все еще используется, мы можем увидеть его с удаленным lsof |grep:
lsof |grep deleted|grep test
less 1953 mick 4r REG 8,1 629145600 5407 /tmp/test (deleted)
теперь если я остановлюсь меньше
pkill less
df показать, что использование диска бесплатное:
df /
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 15350768 14367584 809516 95% /
Я думаю, что ваша проблема больше связана с неправильной интерпретацией df из-за процентов, зарезервированных для root.
Начиная с последнего df, общий минус использованный минус доступный равен:
15350768-14367584-809516=173668
Поэтому, возможно, у вашего пользователя есть ошибка переполнения диска, но root все равно может записать на диск, и Zabbix не увидит заполненный диск из-за процентов, зарезервированных для root.
Вы можете проверить и изменить это с помощью tune2fs