Ключевые слова:squid, statistic, (найти похожие документы)
From: Коробанов Сергей <ksi_korobanov@mail.ru.>
Newsgroups: email
Date: Mon, 19 Nov 2006 18:21:07 +0000 (UTC)
Subject: Обработка логов squid при помощи sarg
squid + sarg или "у нас все ходы записаны!"
Оригинал статьи находится на http://ksimute.trancom.ru/squid-sarg.shtml
Исходная задача
Cделать обработчик логов сквида c web интерфейсом, поставить под крон и
забыть о нем на пару лет :).
Обработчик - sarg
Хранить логи лучше всего на прокси, чтобы небыло проблем с переносом на
удаленные файловые системы. Можно хранить где угодно smb,nfs,на ftp
выкладывать, rsync через ssh тонель гонять, вариантов масса. Но чем
сложнее решение, тем больше вероятность сбоя.
Лучше поднять web сервер на проксе без всяких mod-ов (т.к. логи хранятся
в plain html), прикрыть фаерволом, access листами, и обновлять по мере
обнаружения уязвимостей.
Формат странички логов:
Подключений - кол-во обращений к сквиду с этого ip
Байт - кол-во переданных байт с прокси.
% Байт - процент от общего трафика сквида в байтах, приходящихся на этого абонента.
IN-CACHE-OUT IN - процент байт, которые клиент получил из кэша OUT-процент байт,
которые были стянуты снаружи. только чего-то результирующий процент
не сходится :). Буду думать. в доке нет. Возможно они просто берут
среднее арифметическое, а не считают сложный процент.
(не знаю, как алгоритм реализован).
Общее время - сколько пользователь в онлайне прообитал
миллисек - Сколько всего миллисекунд потратил сквид на обработку его запросов.
Самое интересное поле это IN-CACHE-OUT поле IN это эффективность прокси.
Можно уменьшить его на пару процентов и получаем реальную эффективность.
P.S. Эффективность моей прокси выходит около 8%. По миру сейчас 4-10 %.
Задумайтесь, за сколько прокси себя окупит и есть ли смысл ее вообще
устанавливать для экономии трафика.
Разумеется, для контроля контента, резки банеров и блокировки
нежелательных сайтов прокси - идеальное решение.
Если Вы ISP, то прокси нужен только для экономии трафика (считаем
эффективность, считаем деньги, считаем окупаемость...).
Приступим:
логи сквида хранятся в /var/log/squid/
sarg парсит access.log.x
Скрипт:
proxy ~ # cat /usr/local/bin/sarg_gen.sh
#!/bin/bash
#generate current month report
PATH=$PATH:/usr/sbin
#squid logs
LOG_DIR=/var/log/squid
#current month(jun,feb.jul....... etc) need for grep
CUR_MONTH=`date +%b`
#-- last day of month i.e. 28 30 31
function end_month {
typeset ym=$1 y m ld
(( y = ym / 100 ))
(( m = ym % 100 ))
for ld in $(cal $m $y); do :; done
echo $ld
}
DOM=`end_month \`date +%Y%m\``
#------
FROM=`date +01/\%m/\%Y`
TO=`date +$DOM/\%m/\%Y`
#files to parse all log files changed in current month
FILES=`ls -l $LOG_DIR/access.log* | grep $CUR_MONTH | awk {'print $9'}`
#generate string 4 sarg aka -l/var/log/squid/access.log
#-l/var/log/squid/access.log.0 -l/var/log/squid/access.log.x
for str in $FILES
do
res=" -l $str"$res
done
sarg $res -d $FROM-$TO
Конфиг sarg можно посмотреть здесь http://ksimute.trancom.ru/squid/sarg.conf
Важные таги в конфигурационном файле:
output_dir /var/www/localhost/htdocs/squid-reports
Без комментариев.
overwrite_report yes
Перезаписывать отчет, если отчет с указанной датой уже существует.
show_successful_message no
Выводит "Successful report generated on dir" at end of process.
Алогоритм работы:
1. Узнаем текущую дату (месяц и год) 1-е число дописываем.
proxy ~ # date +01/\%m/\%Y
01/08/2006
2. Узнаем кол-во дней в месяце (последнее число)
3. Ищем лог файлы, которые были изменены в текущем месяце.
4. передаем sarg-у список файлов с указанием генерировать логи с 1 по последнее число
Ставим скрипт исполняться под cron:
proxy ~ #crontab -l
10 1 * * * /usr/local/bin/sarg_gen.sh
в 1 10 логи парсить самое время :) т.к. загрузка во время парсинга на
model name : Intel(R) Pentium(R) 4 CPU 2.80GHz
bogomips : 5521.40
составляет
proxy ~ # uptime
17:36:00 up 105 days, 19:58, 2 users, load average: 2.38, 1.37, 0.62
Время парсинга логов прокси обрабатывающей 50 Гб трафика в месяц около 20 минут.
Пусть скрипт ночью шуршит, пока пользователи спят :).
Размер результата (за месяц.) - 800 Mb html файлов!
Логи дороже места и если работаете в сфере ISP, их желательно хранить
года 2-3. Десятки раз логи трафика помогали в разрешении "патовых" ситуаций с абонентами.