Free-SA, Squid и FreeBSD. Считаем Internet-траффик

Июнь, 22nd 2009
Рубрика: *NIX
Подписаться на комментарии по RSS

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

Существует сножество анализаторов журналов прокси-серверов как под Windows, так под *NIX. Squid, на сегодняшний день наиболее гибок из свободных прокси-серверов в настройке и богат по возможностям, хотя и у него есть недостатки. Имея большой опыт организации корпоративного доступа в Интернет, и опробовав разные анализаторы, для себя остановился на двух готовых решениях Free-SA и SARG + одном самописном. Используются для различных решений.

В основном ставлю заказчикам Free-SA. Какие же у него преимущества?

  • более внятная архитектура и код (C/HTML/CSS);
  • скорость формирования отчетов в 7-20 раз выше по сравнению с SARG (7х — для файла access.log объемом в 50 Мб, 20x — для 1 Гб);
  • поддержка различных форматов файлов журналов (Squid, CLF, Postfix, QMail, CommuniGate Pro);
  • дополнительные отчеты (в т.ч. для оценки эффективности сервера);
  • изменяемые «на-лету» темы оформления. возможность делать свои, при наличии даже начальных знаний CSS

Сначала обновим порты, далее идем в директорию с портами и устанавливаем

программу. Опции конфигурирования при сборке во FreeBSD отсутствуют.

cd /usr/ports/www/free-sa/ && make install clean

Настройка программы:

vi /usr/local/etc/free-sa/free-sa.conf

[code lang=bash]

# Sample configuration file for free-sa(1)

# copy to /usr/local/etc/free-sa/free-sa.conf

#########

# FILES #

#########

#полный путь к анализируемому журналу сервера

log="/var/squid/logs/access.log"

#полный путь к файлу преобразования имен

#(заменяет логин или IP пользователя на его имя)

usertab="/usr/local/etc/squid/users"

#Полный путь к файлу, содержащему расширения для отчета "Закачки".

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

#с расширениями аудио, видео, исполняемых файлов.

#downloads="/usr/local/etc/free-sa/downloads.sample"

#local_filter=""

#global_filter=""

###############

# DIRECTORIES #

###############

#корневая директория для размещения отчетов

targetdir="/var/squid/reports"

#Полный путь к директории, где Free-SA хранит рабочие файлы

#во время генерации отчета. При старте Free-SA очищает

#полностью данный каталог

tmpdir="/var/cache/free-sa"

#####################

# REPORTS SELECTION #

#####################

ts="true" #Формировать отчет Top Sites.

#Формировать отчет "Ошибки аутентификации на прокси" (код 407).

paf="false"

#Формировать отчет "Ошибки аутентификации на сайтах" (код 401).

saf="false"

#Формировать отчет "Запрет на прокси" (код 403). Попадают только

#URL блокированные, при помощи списков контроля доступа (ACL).

pdn="true"

#Формировать отчет "Запрет на сайтах" (код 403).

sdn="false"

#Формировать отчет "Метод прямого соединения CONNECT".

cct="true"

#Формировать отчет "Метод отправки данных PUT/POST".

pst="false"

#Формировать отчет "Закачки". Закачки определяются согласно файла

#расширений, указываемого через опцию downloads.

dld="false"

#Создавать отчет на каждого пользователя, в котором будут

#полные URL посещенных пользователем ссылок. Общее время

#генерации отчета за период увеличивается.

fullurl="true"

#Создавать отчет на каждого пользователя, в котором будут

#отображаться только URL посещенных пользователем сайтов.

users="true"

#Отправить текстовый отчет "Пользователи" на e-mail.

#Если в качестве e-mail '-', отчет выводится на stdout.

#email=""

##################

# REPORTS LIMITS #

##################

#Количество отображаемых URL на одного пользователя в отчетах.

#0 - отсутствие лимита. По умолчанию: 50.

#paf_limit="50"

#saf_limit="50"

#pdn_limit="50"

#sdn_limit="50"

#cct_limit="50"

#pst_limit="50"

#dld_limit="50"

#lcf_limit="50"

#Ограничить количество символов видимой части URL в отчете.

#0 - отсутствие лимита. По умолчанию: 50.

#url_limit="50"

#ограничение кол-ва сайтов в отчете top sites.

#0 - отсутствие лимита (по умолчанию).

ts_limit=100

#Интервал обновления страницы для отчета реального времени

#(free-sa.cgi),указывается в миллисекундах.

#по умолчанию: 5000 (5 секунд)

#rtr_timeout="5000"

####################

# OTHER PARAMETERS #

####################

#Имя отчета за период. Отображается в списке всех отчетов

#за период. (по умолчанию: полный путь к файлу конфигурации)

#name="free-sa.conf"

#Пропускать ошибочные записи в журнале. По умолчанию Free-SA

#останавливает анализ журнала и начнет генерировать отчеты.

#skip_errors="false"

#autorecords="5"

#Формат журнала. 0 - формат журнала Squid.

logformat="0"

#Создать отчет с полной информацией. В отчет включаются попадания

#в кэш, локальный трафик и реальный трафик.

#fulltraffic="false"

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

#имена пользователей и IP адреса.

#inameuser="true"

#Отображать справа индикаторы соответствующие присутствие ссылок в

#paf/saf/и.т.п. отчетах к пользователям, URL сайтов и полным URL.

#indicators="true"

#Удалять старые файлы при создании нового файла отчетов.

#1 - означает удалять все старые отчеты, диапазон дат которых

#соответствует диапазону нового отчета с точностью в 1 день.

#2 - означает удалять все старые отчеты, диапазон дат которых лежит

#внутри диапазона нового отчета с точностью в 1 секунду.

#Удаление происходит после создания нового отчета или при запуске

#Free-SA с опцией -F.

overwrite="1"

#Преобразовывать IP адрес в имя. Опция замедляет создание отчета.

#resolveip="false"

#Отображение информации о Free-SA внизу страницы каждого отчета

#showinfo="true"

#Префикс для адреса сайта.

#site=""

#Картинка или логотип, отображаемая наверху страницы каждого отчета

#logo=""

#Переключает локаль при разборе опций командной строки

locale="ru_RU.KOI8-R"

#Удалять отчеты, старше указанного времени в секундах. Можно

#использовать ключевые слова: year, quarter, month, week, day.

#Удаление происходит после создания нового отчета или при запуске

#Free-SA с опцией -F.

rotate="quarter"

#Единицы измерения, используемые в файле отчета (байты, килобайты,

#магабайты и т. д.).

#"v" - адаптивный механизм: 1 байт отобразится как 1, а 1024 - 1к.

#(по-умолчанию: байты)

divisor="M"

[/code]

Пример файла преобразования имен /usr/local/etc/squid/users.

admin Администратор
ivanov_i Иванов Иван
172.16.140.11 Трофимова Людмила Николаевна

Для ежедневного формирования отчетов добавим в cron такую строку:

55 23 * * *     /usr/local/etc/squid/stat.sh > /dev/null 2>&1

Вот содержимое самого файла stat.sh. Он занимается формированием отчета и чистит лишние запси за текущий месяц. Сам Free-SA бывает не работает в этом плане.

#!/usr/local/bin/bash
curr_month=`date +%m.%Y`
for i in $(ls /var/squid/reports/ | grep $curr_month ); do rm -r /var/squid/reports/$i; done
mv /var/squid/reports/index.html" /var/squid/reports/index" &&
cat /var/squid/reports/index | grep -v $curr_month > /var/squid/reports/index.html &&
rm /var/squid/reports/index
/usr/local/bin/free-sa

Если вы считаете статью полезной,
не ленитесь ставить лайки и делиться с друзьями.

Комментариев: 13

  1. 2009-10-12 в 12:29:52 | Толик

    Замечательно! Спасибо!

  2. 2009-10-13 в 17:29:55 | Елена

    Весь день в поиске.. Но лучше поздно, чем никогда! Спс.

  3. 2009-10-23 в 09:54:53 | Владимир Малкин

    Сенкс за пост, а ведь это тема :) В мемориз однозначно, пригодится! :)

  4. 2009-11-08 в 05:56:58 | Смирнов

    Кажется, это подойдет.

  5. 2010-07-23 в 11:31:14 | Anton

    Добрый день

    Скажите пожалуйста, а написаный вами скрипт рабочий на 100%

  6. 2010-07-23 в 11:48:27 | dre@mer

    Вполне. Работает уже третий год :) проверяйте только пути для bash

  7. 2010-10-04 в 16:57:04 | Winston Wolf

    как free-sa добавить в репозиторий убунты?

  8. 2012-03-25 в 16:36:23 | amrullo]]>avatar]]>

    Для его работа нужен ли server apache ??? Как его запустит ???

  9. 2012-03-25 в 22:26:23 | dre@mer]]>avatar]]>

    Для работы необходим web-сервер, не обязательно Apache, хотя лично у меня работает именно он.

    Не понятен вопрос о том кого запустить... ФОБОС-ГРУНТ вот не получилось :)

  10. 2012-03-25 в 23:02:46 | amrullo]]>avatar]]>

    Какой веб-сервер у тебя ?? Я установил Free-sa но не знаю как проверит. OS у меня Freebsd

  11. 2014-01-14 в 18:10:52 | Евгений

    Что может быть? не работает free-sa, просто в браузере появляется спискок файлов из папки /var/www/free-sa

  12. 2014-01-14 в 22:17:10 | dre@mer]]>avatar]]>

    Просто у вас не правильно настроен apache. Вообще не плохо бы увидеть конфиг апача, если он у вас в качестве web-сервера используется.

  13. 2014-01-15 в 16:21:03 | Аноним

    Все, заработало.Теперь другая проблема,

    Ввожу команду

    free-sa -d 15.01.2014-15.01.2014

    и ошибка

    SAERROR: [LoadUsertab] Incorrect file format

    Файл Usertab существует в этой же папке, там одна запись через один пробел.

comments powered by HyperComments
Без регистрации
ваш комментарий будет опубликован после проверки
Регистрация на сайте

На указанный адрес будет отправлено письмо с кодом активации. Вы можете настроить собственный профиль и стать активным участником или автором.