Установка и настройка Webalizer в Ubuntu

imagesCA2D0XWE[1] - приложение для анализа логов web серверов. Написан на языке C, и как следствие, очень быстр. Webalizer генерирует хорошо детализированную статистику (год, месяц, день), которая легко настраивается и выводится в формате HTML. Поддерживает обработку следующих типов лог файлов: HTTP Common Logfile Format (CLF), FTP, Squid. Кроме того, способен обрабатывать заархивированные лог файлы (gzip, bzip2).

Обзор Webalizer

Основные возможности Webalizer:

  • Написан на С. Очень быстр
  • Поддерживает стандартный Common Logfile Format (CLF), некоторые вариации NCSA Combined Logfile Format, wu-ftpd/proftpd xferlog (FTP) форматы лог файлов
  • Может работать с архивированными лог файлами (gzip, bzip2)
  • Настройка генерируемой статистики может выполняться как для конкретного запуска из коммандной строки, там и для всех запусков из единого файла конфигурации
  • Поддерживается множество языков интерфейса
  • Поддерживается работа с лог файлами неограниченного размера и логами, разбитыми на части
  • Поддерживается произвольная частота ротации лог файлов
  • Полная подержка адресов IPv4, IPv6
  • Включена поддержка distributed DNS lookup и определение местоположения по IP

Установка Webalizer

Установка достаточно типична для Debian / Ubuntu:

<code>$ sudo aptitude install webalizer
</code>

По умолчанию, создается ежедневное задание (cron) для обработки лог файлов. Запускается после того, как выполнится ротация лог файлов . Именно поэтому в файле конфигурации прописан путь/var/log/apache2/access.log.1, а не /var/log/apache2/access.log.

Настройка Webalizer

Настройка Webalizer выполняется через редактирование файла /etc/webalizer.conf:

<code>$ sudo vim /etc/webalizer.conf
</code>

Первичная настройка Webalizer

В первую очередь необходимо убедитсья в корректности следующих параметров:

<code># LogFile определяет лог-файл, который будет анализироваться. Если он не задан тут,
# или в командной строке, то вводом будет считаться STDIN. Если имя лог-файла
# заканчиватся на '.gz', то он будет распакован на лету архиватором gzip, по мере чтения.
LogFile         /var/log/apache/access.log.1
# OutputDir - определеяет, куда будут складываться файлы статистики. Должен быть абсолютным,
# но относительные пути так же могут работать. Если этот пункт не задан, то
# логи будут сохранены в текущей директории.
OutputDir       /var/www/webalizer
</code>

Остальные параметры настраиваются по усмотрению администратора. Каждый параметр снабжен подробным описанием.

Настройка Webalizer для нескольких сайтов

Выше указанная конфигурация будет работать только для одного сайта. Но если есть несколько файлов, то возможно настроить Webalizer на обработку лог файлов от нескольких сайтов. Для этого необходимо сделать несколько изменений.

Допустим, имеется следующая структа файловой системы, в которой располагается два и более сайтов:

<code>$ tree -L 2 /var/www/
/var/www/
|-- www.site1.com
|   |-- htdocs
|   |   `-- stats
|   `-- logs
`-- www.site2.com
    |-- htdocs
    |   `-- stats
    `-- logs
</code>

В каждом из сайтов есть директория, где хранятся лог файлы веб сервера — logs. Для начала необходимо скопировать файл конфигурации в каждую директорию:

<code>$ cp /etc/webalizer.conf /var/www/www.site1.com/logs
$ cp /etc/webalizer.conf /var/www/www.site2.com/logs
</code>

Далее, в каждый из файлов webalizer.conf помещаем следующие строки:

<code>Logfile   access.log
OutputDir ../htdocs/stats/
</code>

И наконец, можно выполнить анализ лог файлов:

<code>$ cd /var/www/www.site1.com/logs
$ webalizer -q
$ cd /var/www/www.site2.com/logs
$ webalizer -q
</code>

Флаг -q заставляет приложение отработать без лишнего вывода.

Далее остается лишь обернуть последние команды в один shell скрипт и заменить дефолтный скрипт расписания для Webalizer на созданный.

<code># Скрипт обновления статистики
$ echo `cd /var/www/www.site1.com/logs` &gt; /var/www/statistics_update.sh
$ echo `webalizer -q` &gt;&gt; /var/www/statistics_update.sh
$ echo `cd /var/www/www.site2.com/logs` &gt;&gt; /var/www/statistics_update.sh
$ echo `webalizer -q` &gt;&gt; /var/www/statistics_update.sh

# Удаление дефолтного расписания
$ sudo rm /etc/cron.daily/webalizer
# Настройка расписания
$ sudo crontab -e
$ 0 * * * * /var/www/statistics_update.sh</code>

Запись навигация

Top