Fork me on GitHub

Настройка lightsquid

FreeBSD

На FreeBSD ставлю apache 2.4

1
pkg install apache24

В основном конфиге, если не активно - то активирую модуль cgi

1
2
3
<IfModule mpm_prefork_module>
        LoadModule cgi_module libexec/apache24/mod_cgi.so
</IfModule>

Делаю вхосты как в линухах (удобно запускать просто делая симлинки)

1
2
3
# Virtual hosts
#Include etc/apache24/extra/httpd-vhosts.conf
Include etc/apache24/sites-enabled/*

Создаю вхост lightsquid.conf

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<VirtualHost *:80>
    ServerAdmin dtulyakov@example.org
    DocumentRoot "/usr/local/www/lightsquid"
    ServerName lightsquid.example.org
    <Directory "/usr/local/www/lightsquid"> 
        AddHandler cgi-script .cgi 
        Options FollowSymLinks ExecCGI 
        AllowOverride All 
        Require all granted 
    </Directory> 
    DirectoryIndex index.cgi 
    ErrorLog "/var/log/httpd-ls-error_log" 
    CustomLog "/var/log/httpd-ls-access_log" common 
</VirtualHost>

Ставлю пакет lightsquid

1
pkg install lightsquid

Правлю конфиг lightsquid.cfg

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#!/usr/local/bin/perl
# -------------------- Глобальные переменные ---------------------------

#путь к `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             ="/var/log/squid";
#путь к `ip2name` папке - преобразование ip в имена
$ip2namepath         ="/usr/local/libexec/lightsquid";

#путь к `lockfile` ;-)
$lockpath            =$reportpath;

# если lockfile старше  $maxlocktime секунд, удалить старый lock file.
$maxlocktime         = 30*60;

#if 1 - lightparser generate some statistic
$debug               = 0;  
#if 1 - lightparser generate skip details, 2 ..., 3 ..., ....
$debug2              = 0;

# -------------------- LightParser переменные  ---------------------------
#lightsquid поддерживает 2 типа логов : родной и httpd
#если родной squid-кий формат - должно быть 0
#если EmulateHttpdLog ON - выставте 1
#digit - for speed optimization
#try it set to 1 if parser generate warning
#
#see also month2dec below !!!!
#
$squidlogtype        = 0;

#если вы хотите не учитывать статистику с некоторых сайтов  - измените переменную
#Предупреждение !!!, не оставляйте эту переменную пустой !!!
#example, if you want skip LOCAL site, put it here
#use '' instead of "" !!!!!!!!!!!
#$skipurl             = 'zdd\.com|192\.168\.1\.|cnn\.com';
$skipurl             = 'localhost|ls\.robo\.ru';

#Использование ip2name - для преобразования ip в имена
#if you want skip some ip from log - return "SKIP THIS IP" ;-)
#detail see in ip2name folder, 

$ip2name="dns";
#$ip2name="ip";

#используется если нада конвертить 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);

# -------------------- Общие (Парсер & Веб) переменные  ----------------------
#create & use time report statistic (logsize = logsize*2) ;-))
$timereport          = 1;

# -------------------- Веб переменные ----------------------------------------

# язык (lдоступные: bg,eng,fr,hu,it,pt_br,ru,sp)
$lang                ="ru-utf8";

#имя html шаблонов
#смотри `tpl/$templatename/`
$templatename        ="base";
#$templatename        ="ric";
#$templatename        ="text";

#определенные типы вывода чисел
#fine  123456789 -> 123,456,789
#class 123456789 ->       117.7 G
$DecOutType="class";

# define delimiter for thousands (in `fine` mode)
# = " " -> 12 345 678 
# = "," -> 12,345,678
# = ""  ->   12345678
$decdelimiter        = " ";

#если надо Group режим установите =1
$showgrouplink       = 0;

#если не 0 - выглядит так "01. Group1", если 0 - "Group1"
$showgroupid         = 1;

#if you dont need oversize report , do =0
$showoversizelink    = 1;

#show how many data user send to internet
$showputpost         = 0;
#if putpost higer this variable (in percent), highlight it
$putpostwarninglevel =15;

#использование .realname файлов. См Дальше
#.realname contain pair userid -> Full User Name
$userealname         = 1;

#большие файлы  - с 300Мб
$bigfilelimit        = 300*1024*1024; 

#лимит для пользователей - 1000Мб
$perusertrafficlimit = 1000*1024*1024;

# недельный режим отображения
# both - select sunday & monday
# monday - only monday 
$weekendmode="both";

#как много сайтов показывать TopSites отчете
$topsiteslimit       = 500;

#как много сайтов показывать в user time отчете
$usertimelimit       = 200;


#если вам надо графический отчет установите =  1
#WARNING !!!, нужна, GD.PM , ту которую мы отметили перед сборкой!!!
#запустите check-setup.pl для определения библиотеки !!!!
$graphreport         = 1;

#максимальное значение на графике
# для пользователя за месяц (0.05*(...) = 50mb)
$graphmaxuser=0.05*(1024*1024*1024);
# для всех пользователей за месяц (1.05*(...) = 1 Gb)
$graphmaxall =1.05*(1024*1024*1024);

# темы для графиков, доступные :"orange","blue","green","yellow","brown","red"
$barcolor="orange";

Выкачиваю свой перевод для utf-8

1
/usr/local/bin/wget https://raw.githubusercontent.com/dtulyakov/lightsquid-1.8/master/lang/ru-utf8.lng -O /usr/local/share/lightsquid/lang/ru-utf8.lng

Ну и настраиваю cron

1
*/30    *   *   *   *   /usr/local/www/lightsquid/lightparser.pl > /dev/null 2>&1

Linux

Ставлю авкеты если небыло

1
sudo apt install apache2 libapache2-mod-fcgid

Включаю модуль

1
sudo a2enmod cgi

Настраиваю вхост

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
<VirtualHost *:80> 
    ServerAdmin dtulyakov@example.org
    DocumentRoot "/var/www/lightsquid"
    ServerName lightsquid.example.org
    <Directory "/var/www/lightsquid">
        AddHandler cgi-script .cgi
        AllowOverride All
        Require all granted
    </Directory>
    DirectoryIndex index.cgi
</VirtualHost>

С самим пакетом lightsquid немного по другому - тут два пути

  1. Или ставить из пакета (но в отличии от FreeBSD в каждом линухе свой подход)
  2. Вытянуть свой вариант с гита

Вытягиваю свой вариант

1
git clone --recursive https://github.com/dtulyakov/lightsquid-1.8.git /var/www/lightsquid

Ну и cron

1
*/30    *   *   *   *   /var/www/lightsquid/lightparser.pl > /dev/null 2>&1
Ссылки
  • GitHub

Comments