Предоставим статистику использования 2 прокси-серверов в автоматическом режиме с помощью lightsquid.
В описываемой ситуации под FreeBSD запущено 2 копии squid (одна копия - это прозрачный прокси-сервер, вторая - с авторизацией через Active Directory), которые через syslog записывают статистику в один файл, который необходимо разбирать и предоставлять посредством веб-сайта подробную статистику использования прокси-сервера. В качестве движка для сайта выбрал lightsquid.
В конфиге squid настроим работу через syslog:access_log syslog:local7.* squidнастроим syslog:
local7.* /var/log/squid/access.logТеперь попросим lightsquid обновлять статику по времени:
*/10 * * * * /usr/local/www/lightsquid/lightparser.plТак как я использую syslog, lightsquid.pl требует небольшой доработки. Найдите и замените в файле lightparser.pl первую строку на вторую:
($Ltimestamp,$Lelapsed,$Lhost,$Ltype,$Lsize,$Lmethod,$Lurl,$Luser,$Lhierarchy,$Lconttype,@Lrest)=split; ($_1,$_2,$_3,$_4,$_5,$Ltimestamp,$Lelapsed,$Lhost,$Ltype,$Lsize,$Lmethod,$Lurl,$Luser,$Lhierarchy,$Lconttype,@Lrest)=split;Если у вас отличается количество полей в логе, то измените из количество. Несложно догадаться где и как это можно сделать :)
Теперь остаётся настроить вебсервер и показать сайт со статистикой. Будем использовать nginx с fcgiwrap.
Конфигурация nginx:server { listen 80; server_name _; satisfy any; allow 192.168.88.0/23; deny all; access_log /var/log/nginx-access.log main; error_log /var/log/nginx-error.log info; location / { root /usr/local/www/lightsquid/; index index.cgi; } location ~ (\.cgi|\.pl) { gzip off; fastcgi_pass unix:/var/run/fcgiwrap/fcgiwrap.lightsquid.socket; fastcgi_index index.cgi; include "fastcgi_params"; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_script_name; expires 1m; root /usr/local/www/lightsquid/; } }Настроим rc.conf:
nginx_enable="YES" fcgiwrap_enable="YES" fcgiwrap_profiles="lightsquid" fcgiwrap_lightsquid_socket="unix:/var/run/fcgiwrap/fcgiwrap.lightsquid.socket" fcgiwrap_lightsquid_user="www"Для linux настройка fcgiwrap немного отличается. Необходимо в файле конфига fcgiwrap написать примерно следующее:
FCGI_SOCKET=/var/run/fcgiwrap.lightsquid.socket FCGI_ADDRESS= FCGI_PORT= FCGI_PROGRAM=/var/www/lightsquid/index.cgi FCGI_CHILDREN=1 FCGI_CHROOT= FCGI_CHDIR= FCGI_USER=munin FCGI_GROUP=munin FCGI_EXTRA_OPTIONS="-U nginx" ALLOWED_ENV="PATH"На этом всё. Вопросы, как обычно, в личку или комментарии.
Комментарии (0)