Ротация логов WWW домена

Данный модуль предназначен для настройки периодичности архивирования лог-файлов web-сервера и сбора статистики по посещениям WWW домена. Логи хранятся в директории logs домашней директории пользователя, которому принадлежит WWW домен, и имеют вид:

доменное_имя.access.log - в файле хранится информация о запросах из сети и ответах web-сервера, которые относятся к WWW домену.
доменное_имя.error.log - в файле хранится информация об ошибках web-сервера, которые относятся к WWW домену.

В качестве значения "доменное_имя" используется имя WWW домена.

Для настройки ротации выберите нужный WWW домен с списке и нажмите кнопку "Ротация логов WWW домена" в панели инструментов. При этом появится форма следующего вида:

Рассмотрим поля данной формы, их значение и требования к заполнению:

Период ротации - выберите, с каким периодом следует производить архивирование логов.
Хранить архивов - укажите количество последних архивов лог-файлов web-сервера. Дисковое пространство, занимаемое архивами, входит в квоту пользователя, которому принадлежит WWW домен.
Лог ошибок - укажите, хотите ли вы вести лог ошибок web-сервера для данного WWW домена, и, если да, то нужно ли производить его ротацию.
Анализатор логов - выберите программу, с помощью которой вы хотите обрабатывать статистическую информацию, исходя из лог-файлов web-сервера. На текущий момент поддерживаются Webalizer и AWStats. Если они отсутствуют в списке, убедитесь, что они установлены в системе.
Период анализа лога - выберите, с какой периодичностью следует производить сбор статистики посещений WWW домена.

По окончании внесения изменений для сохранения данных нажмите кнопку "Ок", для отмены изменений используйте кнопку "Отмена".

Технические подробности

Ротация логов web-сервера производится с помощью утилиты rotate, которая входит в поставку ISPmanager. Один раз в час данная утилита запускается из cron и анализирует содержимое файла конфигурации /usr/local/ispmgr/etc/rotate.conf, состоящих из записей следующего вида:

имя_лога:архивов:период1:период2:команда
	
имя_лога - полный путь к файлу access.log или error.log
архивов - количество хранимых архивов лога
период1 - период ротации лога. Возможные значения:
hour - выполняется при каждом запуске утилиты rotate. Если вы будете запускать rotate чаще чем раз в час, будет выполняться чаще
day - выполняется при запуске rotate каждую ночь в первом часу.
week - выполнятся в первом часу в ночь с субботы на воскресенье
month - выполняется в первом часу ночи первого числа каждого месяца.
период2 - период анализирования лога (hour, day, week, month)
команда - команда для анализирования содержимого лога. Вместо пути к файлу лога указывается __LOG__

Например,

/home/user/data/logs/example.com.access.log:10:day:day:/usr/local/bin/webalizer -c /home/user/data/etc/example.com.webalizer.conf __LOG__
	

В зависимости от настроек для того или иного лога производятся соответствующие действия.

В программе есть защита от повторного запуска. Также, если rotate обрабатывал файлы более часа, то по завершении работы он запустит процесс обработки заново, а в /var/log/messages появится запись следующего вида:

warning: "Roatation took too long time"
	

Если по какой-то причине у вас останется файл "имя_лога.0", ротация осуществляться не будет до тех пор, пока этот файл не будет удален. В /var/log/messages появится запись вида

error: "Temp file имя_лога.0 found. Please remove it"
	

Для того, чтобы ISPmanager позволял собирать статистику по посещениям вашего WWW домена с помощью программы Webalizer, необходимо удостовериться, что она установлена на сервере, а также в файле конфигурации панели управления прописан путь к ней, например,

path webalizer /usr/local/bin/webalizer

Для того, чтобы ISPmanager позволял собирать статистику по посещениям вашего WWW домена с помощью программы AWstats, необходимо удостовериться, что она установлена на сервере, а также в файле конфигурации панели управления прописан путь к её файлу конфигурации, например,

path awstats-configs /usr/local/ispmgr/etc/extconf/awstats.conf