Ротация логов сервера с помощью AWstats в Debian / Ubuntu

Добавить в google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru memori.ru moemesto.ru


Не важно, какое средство используется для анализа лог файлов веб сервера (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

Далее, уже можно делать с этими файлами все, что душе угодно: архивировать, анализировать другими средствами и т.д.

Вопросы по теме ...

    Вопросов пока не возникало ;)

Есть еще вопрос?