Squid-reports и нехватка inodes

Имеется:

  • сетевой шлюз на debian 9
  • SARG (Squid Analysis Report Generator) – генератор отчетов по использованию сети (по сути, прокси-сервер, пропускающий интернет-трафик через себя и формирующий за счет этого логи в виде форматированных html-файлов)

Проблема:

Поломался интернет, и не запускается служба squid , пока физически не перезапустишь сервер.

Причина

Как оказалось, были заняты все inode на диске. Проверить:

inode (индексный дескриптор) – это структура данных, в которой хранится метаинформация о файле, каталоге или другом объекте файловой системы, кроме непосредственно данных и имени. Например, размер файла, владелец файла, режим доступа, дата последнего изменения файла и др.

В файловых системах со статическим количество inode (ext2-ext4), они могут «закончиться». В этом случае нельзя будет создать новый файл или каталог на устройстве, даже если там достаточно свободного места. При этом уже имеющиеся файлы можно полноценно изменять.


Решение

Найти где именно лежит куча файлов.

В каталоге /var/www/squid-reports создавались отчеты по использованию сети.

Структура хранения отчетов такова, что отдельный html-фал создается под каждое соединение. Т.е. для одного хоста за один день может создасться 1000 html-файлов.

Нужно заархивировать старые отчеты и удалить с сервера. Например, так (за июль 2018):

Или написать скрипт для ежемесячного создания архивов отчетов squid-reports:

Его выполнение поставить на cron в полночь 4-го числа каждого месяца (0 0 4 * *). Четвертого числа, а не первого, т.к. SARG первые несколько дней нового месяца (н-р, Sept) записывает отчеты в каталоги еще предыдущего месяца (н-р, Aug). И нужно дождаться, пока не сгенерируются ВСЕ каталоги с именем Aug, иначе они останутся необработанными.

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

Ваш адрес email не будет опубликован.