|
www.lissyara.su
—> статьи
—> FreeBSD
—> программы
—> Lightsquid
Lightsquid - анализатор(парсер) логов Squid, OOPS на FreeBSD 7.1 + lighttpd, apache13
Автор: gx_ua.
небольшое обновление статьи http://www.lissyara.su/?id=1592 by Morty
сорри за грамматику
1. Установка
2. Конфигурационные файлы и ip2name
3. Алиасы для lighttpd, apache13
4. Запуск
WWW: http://lightsquid.sourceforge.net/
Пару слов :
Дома стоит squid с sams для раздачи интернет. Частично lightsquid может заменить sams : быстрая и простая инсталляция, быстрый парсер ,cgi скрипт для динамической генерации отчета, нет привязки к БД, различные графические отчеты, мультиязычный интерфейс.Другие альтернативы - SARG, Calamaris
1. Установка
Обновите порты
# cd /usr/ports/www/lightsquid/
# make install clean
| Выбираем предлагаемый единственный пункт
Для графических отчетов нужна эта библиотека:
http://www.boutell.com/gd/
http://search.cpan.org/~lds/GD/
[X] GDSUPPORT
****************************************************************************
Read /usr/local/share/doc/lightsquid/readme.txt.
Edit /usr/local/etc/lightsquid/lightsquid.cfg to suit your needs.
****************************************************************************
| Многое установилось в /usr/local/www/lightsquid - web часть
.htaccess, graph.cgi, tpl , bigfiles.cgi, group_detail.cgi, user_detail.cgi, check-setup.pl, index.cgi, user_month.cgi, common.pl, user_time.cgi, day_detail.cgi, month_detail.cgi, whousesite.cgi, fixreport.pl, report, get.cgi, topsites.cgi
lightparser.pl - парсер логов
Языки file:///usr/local/share/lightsquid/lang
Локальная документация file:///usr/local/share/doc/lightsquid/
И конфигурационные файлы в /usr/local/etc/lightsquid/
group.cfg lightsquid.cfg realname.cfg skipuser.cfg
group.cfg.dist lightsquid.cfg.dist realname.cfg.dist skipuser.cfg.dist
# 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";
| Обьединить пользователей в группы и смотреть отчёты по группе
# ee /usr/local/etc/lightsquid/group.cfg
192.168.0.63 01 gx-grp
192.168.0.197 02 nata-grp
192.168.0.195 01 gx-grp
| после изменений перепарсите :
# /usr/local/www/lightsquid/lightparser.pl
# cd /usr/local/www/lightsquid/ && ./check-setup.pl
| ---
Далее ip2name - преобразование ip в имена
правим lightsquid.cfg :
$ip2name = "list";
$showgrouplink = 1;
$userealname = 1;
| В /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 сопоставить эти имена с реальными людьми:
# cat /usr/local/etc/lightsquid/group.cfg
gxpda 01 gx-grp
nata 02 nata-grp
gxlaptop 01 gx-grp
|
# cat /usr/local/etc/lightsquid/realname.cfg
gxpda gx1-pda user name
nata nata user
gxlaptop gx2 -laptop user name
| после изменений перепарсите :
# /usr/local/www/lightsquid/lightparser.pl
# cd /usr/local/www/lightsquid/ && ./check-setup.pl
| Скрины:
Lightsquid:
ip2name
Пример графического отчета:
А это sams:
3. Алиасы для lighttpd, apache13
Добавте нужные алиасы в нужные секции для вашего апача или лайти:
Apache13
Alias /lightsquid "/usr/local/www/lightsquid"
<Directory "/usr/local/www/lightsquid">
AddHandler cgi-script .cgi
AllowOverride All
</Directory>
|
Для 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
| Вручную парсим логи:
# /usr/local/www/lightsquid/lightparser.pl
| Crontab(каждые 30 мин) :
*/30 * * * * /usr/local/www/lightsquid/lightparser.pl
|
размещено: 2009-03-24,
последнее обновление: 2009-05-26,
автор: gx_ua
|
|
Комментарии пользователей [17 шт.]