Описание
Представлены первые релизы нового проекта Free-SA, занимающегося разработкой программы, которая является хорошей заменой устаревшего SARG. Версия Free-SA, использованная для написания данной статьи: 1.4.1
Из особенностей Free-SA автор выделяет: 
более внятная архитектура и код (C/HTML/CSS); 
скорость формирования отчетов в 7-20 раз выше по сравнению с SARG (7х — для файла access.log объемом в 50 Мб, 20x — для 1 Гб); 
все отчеты успешно проходят проверку W3C HTML/CSS validator; 
потенциальная поддержка различных форматов файлов журналов (сейчас только Squid, CLF, Postfix, QMail, CommuniGate Pro); 
дополнительные отчеты (в т.ч. для оценки эффективности сервера); 
изменяемые «на-лету» темы оформления (сейчас 5). 
Цели Free-SA: 
контроль расхода трафика по пользователям; 
контроль выполнения политик безопасности (в части доступа к ресурсам сети Internet) и информационная поддержка при служебных расследованиях некоторых инцидентов; 
оценка эффективности работы серверов.
Сайт программы находится | тут 
Установка программы
Итак идем на | сайт программы, потом на download и выкачиваем последний релиз программы
Допустим, что это файл free-sa-1.4.1.tar.gz: 
# cp free-sa-1.4.1.tar.gz /usr/local/src
# cd /usr/local/src
# tar -zfx free-sa-1.4.1.tar.gz
# cd free-sa-1.4.1
Теперь редактируем файл global.mk. В нем нужно установить путь к директории free-sa для Web интерфейса, обычно: 
 WWWDIR = /var/www/html/$(PROGLNAME)
Находим и исправляем путь по команды sort. 
# Sort utility
SORT = /bin/sort
Далее компилируем и устанавливаем free-sa: 
# make
# make install
Настройка программы
Все файлы настройки лежат в директории /usr/local/etc/free-sa
1. Копируем файл free-sa.conf.sample в free-sa.conf и редактируем его.
2. Проверяем настройку следующих переменных: 
log - полный путь к анализируемому журналу сервера, в примере ниже к журналу squid-а: 
log="/var/log/squid/access.log"
usertab - полный путь к файлу преобразования имен, в примере ниже он размещен в директории с конфигурационными файлами free-sa: 
usertab="/usr/local/etc/free-sa/users"
targetdir - корневая директория для размещения отчетов (ранее, на этапе сборки программы, она была определена как WWWDIR), изменять стоит если вы ее хотите переопределить: 
targetdir="/var/www/html/free-sa"
3. Создаем и редактируем файл преобразования имен /usr/local/etc/free-sa/users. Пример такого файла: 
172.16.140.10 Копылова Елена Александровна
172.16.140.11 Трофимова Людмила Николаевна
IP адреса и имена должны разделяться пробелом. В случае использования аутентификации в squid можно использовать имена пользователей. 
4. Я установил дополнительно еще следующие параметры dld="true" 	Включить отчет о загрузках файлов 
dld_min=512000 	для исключения ссылок меньших по размеру, чем указанное в этой опции значение. Влияет на индикаторы (и 
соответственно на отчет "Закачки" (downloads)). В данном случае 512Кб 
ts_limit=30 	для ограничения количества сайтов в отчете "Популярные сайты" (top sites). 
overwrite="1" 	Для перезаписи отчетов совпадающие по своему периоду, например, с точностью в 1 день (У меня таким образом каждые пол часа считается статистика и при этом на 1 день всегда один отчет) 
rotate="month" 	Стирать всю статистику старше 1 месяца 
divisor="M" 	Отображать статистику в Мб 
Остальные параметры файла конфигурации можно посмотреть в man free-sa.conf 
Проверка работы
Из консоли запускаем 
free-sa -d 26.06.2007-27.06.2007
Где 26.06.2007-27.06.2007 - это диаппазон за который надо собрать статистику
Остальные параметры командной строки можно посмотреть в man free-sa
И если нет никаких ошибок, то в директории /var/www/html/free-sa должен появиться каталог 26.06.2007-27.06.2007, и значит программа работает нормально. 
Автоматический запуск из cron
Создаем файл /etc/scripts/free-sa_day.sh (Путь может быть любым, в некоторых системах достаточно будет поместить скрипт в директорию /etc/cron.daily (например!) без изменения crontab) 
#!/bin/bash
# Программа создания отчетов по журналам SQUID
#set -x
export LANG=ru_RU.UTF-8
export LC_ALL=
path1=/var/www/html/volmed/free-sa
free_sa=/usr/local/bin/free-sa
date1=`date +%x`
$free_sa -d $date1-
Где ru_RU.UTF-8 кодировка локали.
Данный скрипт обновляет статистику каждые полчаса и удаляет статистику месячной давности.
Добавляем строки в /etc/crontab 
# Статистика SQUID
29,59  *  *  *  *       root    /etc/scripts/free-sa_day.sh
Далее перезапускаем cron 
service crond restart
И наслаждаемся статистикой по адресу http://adress_server/free-sa 
Просмотр " Эффективность сервера"Тип трафика	Описание 
Обработанный	Это весь трафик. 
Запрет на прокси (ACL)	Это трафик заблокированный на прокси (его списками контроля доступа), чаще всего - вырезание баннеров или блокирование запрещенных сайтов или файлов. 
Закэшированный	То, что было отдано из кэша и не скачивалось извне (обычно из Internet) 
Другой локальный	Запросы аутентификации и запросы, которые прокси обработать не смог (некорректно сформированные, чаще всего червяками) 
Актуальный	Из обработанного вычесть все 3 предыдущие (закэшированный, другой локальный и актуальный). Т.е. это тот трафик, который пришел извне (обычно из Internet) 
Зависает на команде sort
Проблема После запуска скрипта он зависает, и если с другой консоли посмотреть командой top, то виснет на выполнении программы sort. 
Решение Можно решить двумя способами 
Проблема рассмотрена в форуме
1. Берем и качаем пакет slackware coreutils. Это почти обычный tar.gz, в mc он открывается, нужно взять из него только /bin/sort. Переписываем его в /usr/local/bin и переименовываем в sort.correct
Далее в файле global.mk исходника fre-sa меняем. 
SORT = /usr/local/bin/sort.correct
И пересобираем fre-sa 
# make clean
# make 
# make install
2. Пересобираем пакет coreutils от Mandriva без coreutils-6.9-new-i18n.patch. Для этого качаем и устанавливаем coreutils-6.9-5mdv2008.0.src.rpm
Идем в /usr/src/rpm/SPECS и правим файл coreutils.spec
Коментируем 36 строку 
#Patch800: coreutils-6.9-new-i18n.patch
118 строку 
#%patch800 -p1 -b .i18n
и 149 
#chmod a+x tests/sort/sort-mb-tests
И вводим команду для пересборки пакета 
rpm -bb coreutils.spec
Если попросит, доустанавливаем нужные пакеты, а потом снова пробуем.
После нормального завершения сборки идем в /usr/src/rpm/RPMS/i586. Там и будут лежать три файла. Открываем в mc файл coreutils-6.9-5mdv2008.0.i586.rpm. Идем в папку CONTENTS.cpio/bin и переписываем файл sort в /usr/local/bin/sort.correct.
Далее, как написано в первом пункте
			
			
									
						
							free-sa
Модератор: padonki
