Proxy сервер SQUID умеет отдавать статистику запросов. Вообще считаю, что логировать надо как можно больше событий. Никогда не знаешь когда пригодится какая либо информация, поэтому ставлю парсер логов squid.
Мой выбор пал на lightsquid — простой, без базы данных, написан на perl, поэтому встанет на любой сервер.
Nginx
Для этого сначала мне надо установить http сервер. Я буду ставить ставить NGINX, а в принципе подойдет любой.
Приступаю:
# cd /usr/ports && make search name=nginx
Port: nginx-1.0.8,1
Path: /usr/ports/www/nginx
Info: Robust and small WWW server
Maint:
B-deps: pcre-8.13_1
R-deps: pcre-8.13_1
WWW: http://sysoev.ru/nginx/
# cd /usr/ports/www/nginx && make install clean
Затем ставлю fcgiwrap — server для обработки cgi запросов:
# cd /usr/ports && make search name=fcgiwrap
Port: fcgiwrap-1.0.3_3
Path: /usr/ports/www/fcgiwrap
Info: Simple FastCGI wrapper for CGI scripts
Maint:
B-deps: autoconf-2.68 autoconf-wrapper-20101119 fcgi-devkit-2.4.0 m4-1.4.16,1 perl-5.12.4_2
R-deps: fcgi-devkit-2.4.0
WWW: http://nginx.localdomain.pl/wiki/FcgiWrap
# cd /usr/ports/www/fcgiwrap && make install clean
Привожу конфигурационный файл nginx к следующему виду:
user www www; worker_processes 1; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; charset koi8-r; access_log /www/_logs/localhost/access.log; error_log /www/_logs/localhost/error.log; location / { root /www/localhost; index index.cgi index.html index.htm; } location ~ ^/lightsquid/(.*).cgi$ { fastcgi_pass unix:/var/run/fcgiwrap/fcgiwrap.sock; fastcgi_index index.cgi; fastcgi_param SCRIPT_FILENAME /www/localhost$fastcgi_script_name; include fastcgi_params; } } }
Далее создаю необходимые директории и даю пользователю www на них права. Так же создаю /www/localhost/index.html.
Прописываю nginx в rc.conf:
# echo nginx_enable="YES" >> /etc/rc.conf
# /usr/local/etc/rc.d/nginx start
Теперь можно проверить работу, обратившись в браузере к серверу.
Lightsquid
Ставлю lightsquid:
# cd /usr/ports/www/lightsquid && make install clean
Приступаю к настройке lightsquid — правлю /usr/local/etc/lightsquid/lightsquid.conf
Оставил его практически без изменений. А что касается изменений, то:
#path to additional `cfg` files $cfgpath ="/usr/local/etc/lightsquid"; #path to `tpl` folder $tplpath ="/www/localhost/lightsquid/tpl"; #path to `lang` folder $langpath ="/usr/local/share/lightsquid/lang"; #path to `report` folder $reportpath ="/www/localhost/lightsquid/report"; #path to access.log $logpath ="/var/log/squid";
Переношу скрипты lightsquid в свою рабочую www директорию.
# mv /usr/local/www/lightsquid /www/localhost
Теперь ставлю сбор статистики в cron раз в час, так как мне чаще и не надо.
# crontab -e
# 00 * * * 1-5 /www/localhost/lightsquid/lightparser.pl
После этого пойду спокойно домой и завтра посмотрю что накопилось в логах за день. Или буду разбирать ошибки. По идее все должно работать.
Останется, как обычно, доработка напильником.