Ротация логов сервера с помощью AWstats в Debian / Ubuntu
Не важно, какое средство используется для анализа лог файлов веб сервера (AWStats, Webalizer и др.), рано или поздно встанет вопрос: Как выполнять ротацию логов, чтобы не навредить статистике посещений? Эта проблема имеет множество решений, включая запуск анализа логов на prerotate этапе стандартной ротации с использованием logrotate.
В случае использования AWstats можно не прибегать к использованию сторонних средств, а пользоваться возможностями самого AWstats. Одной из его возможностей является функция ротации анализируемых лог файлов.
Настройка AWstats для ротации логов
Все настройки AWstats хранятся в директории /etc/awstats/. Что и как с ними делать было рассказано ранее: Установка и настройка AWstats. Допустим, что используется та же установка. Следовательно вся дальнейшая работа будет вестись с файлом:
/etc/awstats/awstats.debianworld.ru.conf
Настройка AWstats для очистки логов
Для того, чтобы лог файл был очищен после того, как он был проанализирован, необходимо выставить опцию PurgeLogFile:
# ...
# 0 - лог файл не очищается.
# 1 - лог файл очищается после каждого обновления статистики.
# Изменение: Используется только при последующих обновлениях
# Допустимые значения: 0 или 1
# Значение по умолчанию: 0
#
PurgeLogFile=1
Очищенный лог файл будет переписан в: DirData/awstats_archive.configname.log. Надо иметь в виду, что со временем этот файл так же станет большим и потребует либо ротации, либо сжатия и пр.
Настройка AWstats для хранения ротированных лог файлов
AWstats способен выполнять ротацию лог файлов. По умолчанию, эта функция выключена (как и функция очистки лог файла). Чтобы ее включить, необходимо изменить параметр ArchiveLogRecords:
# Архивный лог (после очистки) сохраняется в директории, определяемой параметров "DirData"
# с именем awstats_archive.configname[.suffix].log (suffix - см. далее)
# Параметр не используется, если PurgeLogFile=0
# Изменение: Используется только при последующих обновлениях
# Допустимые значения: 0, 1, или метки (см. описание параметра LogFile) для suffix
# Пример: 1
# Пример: %YYYY%MM%DD
# Значение по умолчанию: 0
#
ArchiveLogRecords=1
Таким образом, если есть необходимость выполнять ротацию ежедневно, то необходимо выставить следующее значение:
ArchiveLogRecords=%YYYY%MM%DD
Если же достаточно ротации раз в месяц, то параметр должен иметь следующее значение:
ArchiveLogRecords=%YYYY%MM
Таким образом, для ротации раз в месяц будут созданы следующие файлы:
$ ls -l /var/www/debianworld.ru/awstats/
awstats_archive.configname.200903.log
awstats_archive.configname.200904.log
awstats_archive.configname.200905.log
Далее, уже можно делать с этими файлами все, что душе угодно: архивировать, анализировать другими средствами и т.д.