The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Обработка логов squid при помощи sarg (squid statistic)


<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>
Ключевые слова: 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. Десятки раз логи трафика помогали в разрешении "патовых" ситуаций с абонентами.

<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>

Обсуждение [ RSS ]
  • 1, Игорь (??), 12:06, 17/03/2010 [ответить]  
  • +/
    Хорошая статья! Очень помогла разобраться с sarg.

    Особенно с названием колонок.

     
  • 2, Игорь (??), 11:07, 18/03/2010 [ответить]  
  • +/
    У меня скрипт sarg_gen.sh
    не исполняется. Пишет:

    function: not found
    typeset: not found
    y: not found
    m: not found
    31
    /usr/local/bin/sarg_gen.sh: 21: Syntax error: "}" unexpected

    У меня правда с #!/bin/bash
    его вообще не видит.
    а с #!/bin/sh выдает такие вот сообщения (см. выше)

     
     
  • 3, Rus (??), 05:21, 21/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    а ты запусти sh +x ./sarg_gen.sh
    и отладь.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру