It-e.RU
Цифровой двигатель вашего бизнеса.

Статистика нескольких squid с помощью syslog, lightsquid и nginx

Статистика нескольких squid с помощью syslog, lightsquid и nginx

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







Разрешённые теги: <b><i><br>Добавить новый комментарий: