Настройка ротации логов Squid в Linux.
Развернутый мною Squid по данной статье, успешно работает. Но столкнулся с такой ситуацией что сразу не понял почему логи Squid хранятся крайне мало и для детального анализа трафика проходящего в компании не достаточно.
По умолчанию ротация логов в Squid выставлена всего на три дня, поэтому яразобрался как увеличить срок жизни логов и выставить ротацию логов в период одного месяца. В моем случае этого достаточно.
Осуществлять ротацию логов мы будем с помощью системной службы logrotate
.
Основные настройки logrotate
хранятся в /etc/logrotate.conf
, настройки отдельных сервисов (в нашем случае Squid) хранятся в /etc/logrotate.d/squid
, и эти настройки имеют приоритет над logrotate.conf
. Сама служба вызывается раз в сутки через планировщик cron.
Нас интересует ротация логов только двух файлов access.log
и cache.log
.
Для файла access.log
мы будем раз в месяц выполнять ротацию, а для файла cache.log
раз в неделю. Приведем файл конфигурации /etc/logrotate.d/squid
, к виду:
/var/log/squid/access.log {
monthly
compress
delaycompress
rotate 2
missingok
nocreate
sharedscripts
postrotate
/etc/init.d/squid reload
endscript
}
/var/log/squid/cache.log {
daily
compress
delaycompress
rotate 4
missingok
nocreate
sharedscripts
postrotate
/etc/init.d/squid reload
endscript
}
Разберем структуру написанного выше подробнее. Первая строка указывает путь к обрабатываемым файлам логов. В данном случае обрабатываются файлы access.log
и cache.log
в соответствии с указанными ниже опциями:
daily
— задает ежедневную ротациюweekly
— задает еженедельную ротациюmonthly
— задает ежемесячную ротациюcompress
— указывает сжимать архивные логи, обратная опция nocompress.delaycompress
— не сжимать текущий лог до следующей ротации, обычно используется в тех случаях, когда в лог происходит непрерывная запись.rotate 2
— количество ротаций до удаления файла, в данном случае будут храниться два архива.missingok
— при отсутствии файла журнала указывает продолжить работу без вывода сообщения об ошибке.nocreate
— не создавать новый файл лога.sharedscripts
— используется для секций prerotate и postrotate, данная опция указывает исполнять скрипты из этих секций один раз перед и после ротации всех логов, в противном случае скрипты будут исполнены перед и после ротации каждого лога.postrotate
— проверяет, запущен ли squid и запускает ротацию логов самим прокси сервером.
prerotate
, она добавляется автоматически при установке анализатора логов SARG и в случае если файл /usr/sbin/sarg-reports
существует и является исполняемым, запускает его. В моем случае формирование отчетов в Sarg запускается по cron, поэтому я исключил его из конфигурации.Так как ротацию будем осуществлять исключительно службой logrotate
, то файле конфигурации /etc/squid/squid.conf
, указываем:
logfile_rotate 0
Перезапускаем прокси-сервер Squid для применения изменений:
/etc/init.d/squid reload
ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ
Обсуждение
Нет комментариев.