UMGUM.COM (лучше) 

SARG installation ( Установка и настройка SARG на Debian GNU/Linux Squeeze. )

1 декабря 2011  (обновлено 31 января 2015)

OS: Debian GNU/Linux Squeeze.

Задача состоит в регулярной обработке журналов доступа прокси-сервера Squid3, выборке данных по ряду критериев и подготовке её к публикации. Способов много, но я остановился на одном, который полностью удовлетворяет поставленной задаче. Это - SARG (Squid Analysis Report Generator - Генератор Аналитических Отчётов Squid).

Рекомендую посетить сайт разработчиков, посмотреть на простенький до убогости дизайн сайта, убедится в том, что проект практически остановился в развитии и осознать, что ждать чего-то более, чем просто парсера журналов и генератора отчётов не стоит - собственно, нам ничего белее и не нужно:


В дистрибутиве Squeeze готового пакета Sarg нет, потому будем собирать его сами, из исходных кодов, предоставленных разработчиками.


Устанавливаем утилиту, что соберет нам после компиляции из исходных кодов пакет, готовый для установки в систему:

# aptitude install checkinstall

Скачиваем пакет исходных кодов:

# cd /usr/src
# wget http://space.dl.sourceforge.net/project/sarg/sarg/sarg-2.3.1/sarg-2.3.1.tar.gz

Развёртываем его из архива:

# tar xvf ./sarg-2.3.1.tar.gz
# cd ./sarg-2.3.1

Смотрим, не придумали ли разработчики чего нового, нет ли несовместимых с прежней конфигурацией ключей:

# ./configure --help

Формируем строку для компилятора, тестируем на совместимость и наличие всего, что нужно:

# ./configure --no-create --prefix=/usr --sysconfdir=/etc/sarg --mandir=/usr/share/doc/sarg --disable-sargphp --disable-fontdir --disable-imagedir

Конфигурируем:

# ./configure --prefix=/usr --sysconfdir=/etc/sarg --mandir=/usr/share/doc/sarg --disable-sargphp --disable-fontdir --disable-imagedir

Вывод конфигуратора "говорящий" и явно даёт понят, успешно ли прошла процедура.

Компилируем продукт:

# checkinstall -D --install=no --pkggroup=Sarg --pkgname=sarg-custom --pkgversion=2.3.1 --pkgrelease=1 --pkgsource=sarg.sourceforge.net --maintainer=name@example.net make install

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

Done. The new package has been saved to

/usr/src/sarg-2.3.1/sarg-custom_2.3.1-1_amd64.deb
You can install it in your system anytime using:

  dpkg -i sarg-custom_2.3.1-1_amd64.deb

Устанавливаем полученный пакет:

# dpkg -i ./sarg-custom_2.3.1-1_amd64.deb

Создадим конфигурационный файл, которым будет руководствоваться Sarg при работе:

# touch /etc/sarg/sarg.conf

# Отключаем подсистему генерирования графиков
#
graphs no

# Задаём заголовок для страницы индекса отчётов
#
title "Proxy User Access Reports"

# Явно указываем адрес директории хранения временных файлов
#
temporary_dir /tmp

# Указываем директорию, в которой будут размещены отчёты для последующего отображения
#
output_dir /var/www/stat.proxy.local

# Отключаем "обратный резольвинг" IP в символические имена
#
resolve_ip no

# Разрешаем использовать в отчёте IP адреса вместо идентификаторов пользователей, если таковые не обнаружены
#
user_ip yes

# Задаём принцип сортировки отчёта наиболее активных пользователей
# Allowed fields: USER CONNECT BYTES TIME
#
topuser_sort_field BYTES reverse

# Задаём принцип сортировки отчёта активности пользователей
# Allowed fields: SITE CONNECT BYTES TIME
#
user_sort_field BYTES reverse

# Укажем путь к файлу, содержащему имена пользователей, которых не нужно включать в отчёт
#
exclude_users /etc/sarg/exclude_users

# Укажем путь к файлу, содержащему адреса хостов и сетей, которые не нужно включать в отчёт
#
exclude_hosts /etc/sarg/exclude_hosts

# Выбираем формат даты отображаемой в отчётах
# e (European=dd/mm/yy), u (American=mm/dd/yy), w (Weekly=yy.ww)
#
date_format e

# Никак не ограничиваем Sarg в количестве отчётов (управлять ими будем с помощью внешнего скрипта)
# 0 - no limit.
#
lastlog 0

# Даём указание очищать временную директорию от рабочих файлов после завершения генерации
#
remove_temp_files yes

# Указываем создавать индексную страницу после завершения генерации отчётов
#
index yes

# Определяем тип генерируемого индекса
#
index_tree file

# Указываем перезаписывать отчёты, входящие в диапазон дат заданный для текущего, иначе говоря, следует перезаписывать отчёт, если таковой за указанный диапазон дат уже существует
#
overwrite_report yes

# Указываем подставлять вместо отсутствующего userdi IP пользователя
#
records_without_userid ip

# Указываем использовать запятую вместо десятичной точки
#
use_comma yes

# Выбираем тип сортировки для индекса отчётов: в обратном порядке
#
index_sort_order D

# Укажем путь к файлу, содержащему HTTP-коды; Sarg будет игнорировать в отчёте записи с этими кодами
#
exclude_codes /etc/sarg/exclude_codes

# Из всего богатства отчётов Sarg я выбираю только два: список пользователей и список ресурсов, ими посещённых
#
report_type topusers users_sites

# Отказываемся от вывода детального адреса посещаемых ресурсов, остановившись на обобщённой статистике по домену
#
long_url no

# При формировании и сортировке отчётов ориентируемся на полученные байты, а не на затраченное время
#
date_time_by bytes

# Указываем кодировку генерируемых отчётов
#
charset UTF-8

# Никак не ограничиваем доступ к результирующим отчётам
#
privacy no

# Показывать сообщение "Successful report generated on dir" по завершению генерации отчётов
#
show_successful_message yes

# Показывать детальную статистику по завершению генерации отчёта
#
show_read_statistics yes

# Определяемся со списком параметров, выводимых в отчёте сравнительной активности пользователей
#
topuser_fields NUM DATE_TIME USERID CONNECT BYTES %BYTES IN-CACHE-OUT USED_TIME %TIME TOTAL

# Определяемся со списком параметров, выводимых в отчёте индивидуальной активности
#
user_report_fields CONNECT BYTES %BYTES IN-CACHE-OUT USED_TIME %TIME TOTAL

# Не ограничиваем Sarg в количестве пользователей в отчёте сравнительной активности
#
topuser_num 0

# Не ограничиваем Sarg в днях недели, во время которых нужно генерировать отчёты
#
weekdays 0-6

# Не ограничиваем Sarg во времени суток, для которого нужно генерировать отчёты
#
hours 0-23

# Указываем не выводить ссылку на сайт автора в каждом отчёте
#
show_sarg_info no

# Указываем не выводить эмблему Sarg в каждом отчёте
#
show_sarg_logo no

# Указываем выводить отображаемые данные в округлённом и человеко-понятном виде
#
displayed_values abbreviation

# Указываем путь к подключаемому CSS-файлу, правила которого будут применены при отображении отчётов
#
external_css_file /default.css

# Указываем максимальное число открываемых Sarg файлов
#
ulimit 60000

# Отключаем совместимость с журналами доступа старой версии Squid
#
squid24 off

Создаём директорию, в которой будут размещаться публикуемые отчёты:

# mkdir -p /var/www/stat.proxy.local/

Создаём служебные файлы:

# touch /etc/sarg/exclude_users
# touch /etc/sarg/exclude_hosts
# touch /etc/sarg/exclude_codes

Вносим в файл "exclude_codes" соответствующие коды, строки с которыми Sarg не будет отрабатывать:

TCP_REFRESH_FAIL/200
NONE/400
NONE/411
NONE/417
TCP_MISS/000
TCP_HIT/000
TCP_CLIENT_REFRESH_MISS/000
TCP_DENIED/403
TCP_MISS/503
TCP_MISS/504

Копируем CSS-файл из дистрибутивного набора в директорию публикации:

# cp /etc/sarg/css.tpl /var/www/stat.proxy.local/default.css

Удаляем лишние скрипты и конфигурационные файлы:

# mv -f /etc/sarg/user_limit_block

Создаём директорию для журналов Sarg:

# mkdir -p /var/log/sarg

Теперь можно попробовать сгенерировать первый отчёт:

# sarg -f /etc/sarg/sarg.conf -l /var/log/squid3/access-ordinary.log -x

SARG: Init
SARG: Loading configuration from /etc/sarg/sarg.conf
SARG: Parameters:
SARG:           Hostname or IP address (-a) =
SARG:                    Useragent log (-b) =
SARG:                     Exclude file (-c) =
SARG:                  Date from-until (-d) =
SARG:    Email address to send reports (-e) =
SARG:                      Config file (-f) = /etc/sarg/sarg.conf
SARG:                      Date format (-g) = Europe (dd/mm/yyyy)
SARG:                        IP report (-i) = No
SARG:                        Input log (-l) = /var/log/squid3/access-ordinary.log
SARG:               Resolve IP Address (-n) = No
SARG:                       Output dir (-o) = /var/www/stat.proxy.local/
SARG: Use Ip Address instead of userid (-p) = Yes
SARG:                    Accessed site (-s) =
SARG:                             Time (-t) =
SARG:                             User (-u) =
SARG:                    Temporary dir (-w) = /tmp/sarg
SARG:                   Debug messages (-x) = Yes
SARG:                 Process messages (-z) = No
SARG:
SARG: sarg version: 2.3.1 Sep-18-2010
SARG: Reading access log file: /var/log/squid3/access-ordinary.log
SARG: Records in file: 498146, reading: 100.00%
SARG:    Records read: 498187, written: 498101, excluded: 86
SARG: Squid log format
SARG: Period: ....
SARG: pre-sorting files
SARG: Making file: /tmp/sarg/192_168_....
....
SARG: Sorting file: /tmp/sarg/192_168_....
SARG: Making report: 192.168....
....
SARG: Making index.html
SARG: Successful report generated on /var/www/stat.proxy.local/....
SARG: Purging temporary file sarg-general
SARG: End

Как только настроим web-сервер, можно будет посмотреть на результат. Если применить такой CSS-файл, то можно получить отчёты следующего вида:

размер: 320 400 640 800 1024 1280
SARG: Proxy User Access Report.
SARG: Proxy User Access Report.

SARG: Proxy Top Users Access Report.
SARG: Proxy Top Users Access Report.


Заметки и комментарии к публикации:


Оставьте свой комментарий ( выразите мнение относительно публикации, поделитесь дополнительными сведениями или укажите на ошибку )