gentoo linux
k s i m u t e
з а м е т к и   о   с и с т е м н о м   а д м и н и с т р и р о в а н и и    
версия v1.3.0
main menu main
Rambler's Top100
  »  WIKI
  »  Заметки (микро-блог)
  »  Smart HDD мониторинг
  »  Linux Software Raid
  »  Windows + Xserver
  »  Pptpd kill
  »  Stress Test pptpd
  »  Консоль на com порту
  »  Cisco 827 h323
  »  Squid + sarg Логи
  »  Squid и 2 канала
  »  arpd
  »  OpenVpn
  »  Perl HTML Parsing
  »  Мониторинг очереди Postfix
  »  Main


Rambler's Top100

squid + sarg или "A у нас все ходы записаны! PROXY

Коробанов Сергей
Сентябрь 8, 2006

Исходная задача

Cделать обработчик логов прокси сервера сквида c web интерфейсом, поставить под крон и забыть о нем на пару лет :).

Обработчик - sarg

Хранить логи лучше всего на проксе, чтобы небыло проблем с переносом на удаленные файловые системы. Можно хранить где угодно smb,nfs,на ftp выкладывать, rsync через ssh тонель гонять, вариантов масса. Но чем сложнее решение, тем больше вероятность сбоя.
Лучше поднять web сервер на проксе без всяких mod-ов (т.к. логи хранятся в plain html), прикрыть фаерволом, access листами, и обновлять по мере обнаружения уязвимостей.

Итак, что мы хотим иметь:
  1. Главная страница:

    Squid User Access Report
    ПериодДата созданияПользователей БайтСредняя
    2006Aug01-2006Aug31Wed Aug 16 01:20:12 MSD 2006 28523.19G81.38M
    2006Jul01-2006Jul31Mon Jul 31 01:25:02 MSD 2006 36534.06G93.31M
    2006Jun01-2006Jun31Fri Jun 30 01:25:42 MSD 2006 37442.21G112.87M
    2006May01-2006May31Wed May 31 01:25:00 MSD 2006 35542.80G120.57M
    2006Apr01-2006Apr31Sun Apr 30 01:27:11 MSD 2006 49643.09G86.88M
    2006Mar01-2006Mar31Fri Mar 31 01:26:27 MSD 2006 71142.33G59.54M
    2005Dec14-2005Dec31Sat Dec 31 01:18:58 MSK 2005 44525.90G58.22M
    2006Feb01-2006Feb31Tue Feb 7 01:13:17 MSK 2006 3198.06G25.27M
    2006Jan01-2006Jan31Tue Jan 31 01:23:21 MSK 2006 69537.37G53.77M


    Сгенерирован sarg-2.0.8 May-29-2005 На Aug/16/2006 01:24

  2. Отчет по пользователям:

    Squid User Access Report
    Период: 2006Aug01-2006Aug31
    Отсортировано: BYTES, reverse
    Topuser Отчет

    NoПользовательПодключенийБайт%БайтIN-CACHE-OUTОбщее времяМиллисек.%Время
    204  10.18.131.x517.40K0.00%0.00%100.00%00:00:011.10K0.00%
    205  195.x.x.x614.14K0.00%30.32%69.68%00:00:022.34K0.00%
    206  87.x.x.x913.33K0.00%100.00%0.00%00:00:0040.00%
    207  10.168.x.x112.00K0.00%100.00%0.00%00:00:00840.00%
    208  62.118.x.x811.56K0.00%100.00%0.00%00:00:002460.00%
    209  213.234.x.x329.96K0.00%0.00%100.00%00:00:1010.66K0.00%
    Всего2.28M 23.19G9.26%9.26%2569:54:429.25G
    Средняя8.01K 81.38M09:01:0232.46M


    Сгенерирован sarg-2.0.8 May-29-2005 на Aug/16/2006 01:24

Формат странички логов:
Подключенийкол-во обращений к сквиду с этого ip
Байткол-во переданных байт с прокси.
% Байтпроцент от общего трафика сквида в байтах, приходящихся на этого абонента.
IN-CACHE-OUTIN- процент байт, которые клиент получил из кэша 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



Конфиг sarg можно посмотреть здесь
Важные таги в конфигурационном файле:
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. Десятки раз логи трафика помогали в разрешении "патовых" ситуаций с абонентами.
назад
на главную
наверх
наверх
далее
другие статьи
на главную | contact | © « 2006, Korobanov Sergey»