Пару слов : Дома стоит squid с sams для раздачи интернет. Частично lightsquid может заменить sams : быстрая и простая инсталляция, быстрый парсер ,cgi скрипт для динамической генерации отчета, нет привязки к БД, различные графические отчеты, мультиязычный интерфейс.Другие альтернативы - SARG, Calamaris
# pkg_info -Ix lightsquid
lightsquid-1.7.1_1 A light and fast web based squid proxy traffic analyser
2. Конфигурационные файлы и ip2name
lightsquid.cfg :
# -------------------- Глобальные переменные --------------------------
#путь к `cfg` файлам
$cfgpath ="/usr/local/etc/lightsquid";
#путь `tpl` папке - шаблонам
$tplpath ="/usr/local/www/lightsquid/tpl";
#путь к `lang` папке - языки
$langpath ="/usr/local/share/lightsquid/lang";
#путь к `report` папке - отчеты
$reportpath ="/usr/local/www/lightsquid/report";
#путь к access.log - где логи squid, oops ...
$logpath ="/usr/local/squid/logs/";
#путь к `ip2name` папке - преобразование ip в имена
$ip2namepath ="/usr/local/libexec/lightsquid";
#путь к `lockfile` ;-)
$lockpath =$reportpath;
# если lockfile старше $maxlocktime секунд, удалить старый lock file.
$maxlocktime = 30*60;
# -------------------- LightParser переменные ------------------------
#lightsquid поддерживает 2 типа логов : родной и httpd
#если родной squid-кий формат - должно быть 0
#если EmulateHttpdLog ON - выставте 1
#
$squidlogtype = 0;
#если вы хотите не учитывать статистику с некоторых сайтов -
#измените переменную
#Предупреждение !!!, не оставляйте эту переменную пустой !!!
#example, if you want skip LOCAL site, put it here
#$skipurl = "zdd.com|192\.168\.1\.|cnn.com";
$skipurl = "zzz\.zzz";
#Использование ip2name - для преобразования ip в имена
$ip2name="simple";
#используется если нада конвертить text в число - при EmualteHttpdLog
%month2dec = ( Jan => 1, Feb => 2, Mar => 3, Apr => 4, May => 5,Jun => 6,
Jul => 7, Aug => 8, Sep => 9, Oct => 10, Nov => 11,Dec => 12);
# -------------------- Общие (Парсер & Веб) переменные ----------------
$timereport = 1;
# -------------------- Веб переменные-----------------------------------
# язык (lдоступные: bg,eng,fr,hu,it,pt_br,ru,sp)
$lang ="ru";
#имя html шаблонов
#смотри `tpl/$templatename/`
$templatename ="base";
#$templatename ="ric";
#$templatename ="base.css";
#определенные типы вывода чисел
#fine 123456789 -> 123,456,789
#class 123456789 -> 117.7 G
$DecOutType="class";
# = " " -> 12 345 678
# = "," -> 12,345,678
# = "" -> 12345678
$decdelimiter = " ";
#если надо Group режим установите =1
$showgrouplink = 1;
#если не 0 - выглядит так "01. Group1", если 0 - "Group1"
$showgroupid = 1;
$showoversizelink = 1;
#использование .realname файлов. См Дальше
$userealname = 1;
#большие файлы - с 500Мб
$bigfilelimit = 500*1024*1024;
#лимит для пользователей - 1000Мб
$perusertrafficlimit = 1000*1024*1024;
# недельный режим отображения
# both - select sunday & monday
# monday - only monday
$weekendmode="both";
#как много сайтов показывать TopSites отчете
$topsiteslimit = 500;
#как много сайтов показывать в user time отчете
$usertimelimit = 500;
#если вам надо графический отчет установите = 1
#WARNING !!!, нужна, GD.PM , ту которую мы отметили перед сборкой!!!
#запустите check-setup.pl для определения библиотеки !!!!
$graphreport = 1;
#максимальное значение на графике
# для пользователя за месяц (0.05*(...) = 50mb)
$graphmaxuser=2*(1024*1024*1024);
#для всех пользователей за месяц (1.05*(...) = 1 Gb)
$graphmaxall =2*(1024*1024*1024);
# темы для графиков, доступные :"orange","blue","green","yellow","brown","red"
$barcolor="blue";
Обьединить пользователей в группы и смотреть отчёты по группе
В /usr/local/libexec/lightsquid/ip2name.list изменяем :
my $ipfile = "/usr/local/www/lightsquid/users.txt";
#:>/usr/local/www/lightsquid/users.txt
#cat /usr/local/www/lightsquid/users.txt
192.168.0.63 gxpda
192.168.0.197 nata
192.168.0.195 gxlaptop
Теперь в group.cfg нужно заменить все IP адреса на соответственние им имена компьютеров, а в файле realname.cfg сопоставить эти имена с реальными людьми:
Добавте нужные алиасы в нужные секции для вашего апача или лайти:
Apache13
Alias /lightsquid "/usr/local/www/lightsquid"
<Directory "/usr/local/www/lightsquid">
AddHandler cgi-script .cgi
AllowOverride All
</Directory>
#apachectl restart
Для lighttpd-1.4.21_2
Исправьте такое в lighttpd.conf:
alias.url+=("/lightsquid/" => "/usr/local/www/lightsquid/")
index-file.names = ( "index.php", "index.html",
"index.htm", "default.htm", "index.cgi" )
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi", ".cgi" )
cgi.assign = (
".pl" => "/usr/bin/perl",
".cgi" => "/usr/bin/perl"
)
и "mod_cgi" в server.modules
Для PHP не забудьте установить cgi.fix_pathinfo = 1 в php.ini.
# /usr/local/etc/rc.d/lighttpd restart
4. Запуск
рестарт web-servera
проверяем конфиги:
# cd /usr/local/www/lightsquid/ && ./check-setup.pl
LightSquid Config Checker, (c) 2005 Sergey Erokhin GNU GPL
LogPath : /usr/local/squid/logs/
reportpath: /usr/local/www/lightsquid/report
Lang : /usr/local/share/lightsquid/lang/ru
Template : /usr/local/www/lightsquid/tpl/base
Ip2Name : /usr/local/libexec/lightsquid/ip2name.list
all check passed, now try access to cgi part in browser