The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Тематический каталог: Подсчет трафика проходящего через Squi..."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Разговоры, обсуждение новостей (Public)
Изначальное сообщение [ Отслеживать ]

"Тематический каталог: Подсчет трафика проходящего через Squi..."  
Сообщение от auto_topic on 20-Янв-04, 04:04 
Обсуждение статьи тематического каталога: Подсчет трафика проходящего через Squid используя MySQL (squid traffic mysql isp nilling linux)

Ссылка на текст статьи: https://www.opennet.ru/base/net/squid_trafic.txt.html

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по ответам | RSS]

1. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  
Сообщение от karl email on 20-Янв-04, 04:04 
Идея чудесная -- только лог лучше парсить по мере поступления. Доходим до EOF, ждём несколько секуд, сбрасываем состояние ошибки и читаем снова.
Можно проверить иноду файла (вдруг он ротировался). Вот исходник:

int log_getc(void)
{
    int c, counter=0;
    
    for(;;) {
        c = fgetc(log);
        if(c == EOF) {
            if(counter > 60) {
                struct stat b;
                if(stat(log_file,&b) != 0) {
                    char errmsg[1024];
                    sprintf(errmsg, "stat %s: %s", log_file, strerror(errno));
                    fatal_error(errmsg);
                }
                else {
                    if(log_inode != b.st_ino)
                        fatal_error("Log rotated");
                }
                counter = 0;
            }
            else {
                sleep(30);
                counter++;
                clearerr(log);
            }
        }
        else return c;
    }
}

Полный текст утилитки (только для postgres'а) дарю попросившему почтой ;)

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

2. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  
Сообщение от Vaker email on 20-Янв-04, 08:58 
Интересно!
Пришли утилитку почтой.
А то давно пытался под postgres трафик перевести
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  
Сообщение от AndSerg email on 20-Янв-04, 09:02 
Только после того как отработает скрипт, мы начнем терять данные. В файле access.log будет тишина. IMXO надо так:
#!/bin/bash
squid -k rotate
sleep "несколько секунд"
cp /www/logs/squid/access.log.0 /tmp/squidforparse.log
awk '{print "INSERT INTO squid (ip,bytes,link,trans,time) VALUES(\""$3"\","$5",\""$7"\",\""$9"\",from_unixtime("$1"));"};' < /tmp/squidforparse.log | mysql -D traffics -u root --password=my_sql_passwd
rm -f /tmp/squidforparse.log
rm -f /tmp/access.log.0
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

4. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  
Сообщение от wapr email on 20-Янв-04, 10:48 
Замечательно. Я не настолько богат, что бы иметь суперкомпьютер, лопатящий базу, содержащую ВЕСЬ ЛОГ. Более 7 дней (60000000 записей. И > 2Гб) - слишком много, что бы любой отчет с помощью cgi построить, ибо занимает > 30 сек. Так что без промежуточных таблиц не обойтись. И товарищи правы - так с логом работать нельзя.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

5. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  
Сообщение от Осипов Станислав on 20-Янв-04, 18:26 
почему терять данные?
идея с rotate достаточно хорошая, но меня не устраивает ситуация, когда я запрашиваю страничку с отчетом и мне надо сидеть эти самые sleep "несколько секунд"
фишка моей статьи в том, что я сделал обновление статистики по запросу страниц не считая регулярного cron'a
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

6. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  
Сообщение от Осипов Станислав on 20-Янв-04, 18:35 
>Замечательно. Я не настолько богат, что бы иметь суперкомпьютер, лопатящий базу, содержащую ВЕСЬ ЛОГ. Более 7 дней (60000000 записей. И > 2Гб) - слишком много, что бы любой отчет с помощью cgi построить, ибо занимает > 30 сек. Так что без промежуточных таблиц не обойтись. И товарищи правы - так с логом работать нельзя.

Согласен, но если у вас в организации такое потребление трафика, то наверно, неспроста, и контора не бедная, чтоб купить себе для этих целей емкую дисковую систему на сервер. Соответственно, будьте добры не плевать в практически единственный материал по данной тематике. Я выложил _ПРОСТЕЙШИЙ_ пример как можно делать, ибо остальное, если вы не дураки, вы додумаете сами. Еще добавлю, что имея такие обьемы логов, можно одну таблицу держать для подробной статистики по паре последних месяцев, а другую пополнять по истечении каждого месяца на базе информации в первой таблице, попутно освобождая первую таблицу за устаревший месяц.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

7. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  
Сообщение от Осипов Станислав on 20-Янв-04, 18:43 
>Идея чудесная -- только лог лучше парсить по мере поступления. Доходим до
>EOF, ждём несколько секуд, сбрасываем состояние ошибки и читаем снова.
>Можно проверить иноду файла (вдруг он ротировался). Вот исходник:

прощу прощения, я не программирую на C/C++. ваша утилитка для моего случая - рабочая? и как ей пользоваться?

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

8. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  
Сообщение от Осипов Станислав on 20-Янв-04, 21:12 
да, и еще... БД на то и БД, чтоб не лопатить ВЕСЬ ЛОГ, а только запрошенную вами часть. За сим се ля ви. Не к месту высказались вы.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

9. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  
Сообщение от yarmol email on 21-Янв-04, 00:29 
А я для этих целей крутить на С не стал, и сделал
tail -n 1 -f /var/log/squid/access.log | gawk ........
а в gawk добавляю данные в mysql по мере поступления.

PS Кстати, кроме поля с url, я добавляю поле с именем сервера (выдергиваю из url). Сделал только недавно, еще не оценил насколько оно надо, но кажется что группировка по имени сервера дает красивые (наглядные) резуьтатаы.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

10. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  
Сообщение от oleg on 21-Янв-04, 15:32 
люди, зачем все это?
веть есть же squid2mysql (http://evc.fromru.com/squid2mysql/index.html) и custom_log patch from squid-cache.org CVS.
зачем изобретать велосипед с квадратными колесами ? :-)
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

11. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  
Сообщение от yarmol email on 21-Янв-04, 17:51 
>зачем изобретать велосипед с квадратными колесами ? :-)
Ну так это все вещи достаточно несложные, что-бы время потраченное на установку и изучение готового софта, было сравнимо с временем потраченным на написание своего. Тот случай когда дешевле изобрести и собрать велосипед, чем заработать на него денег и купить.
Я поставил себе squid2mysql, увидел что у него квадратные колеса :-), например он подменяет собой /etc/init.d/squid, а это как-то некрасиво, да и создать базу мне пришлось руками, его скрипт на разных этапах отваливался. Вот из-за квадратных колес прибил его, и _за_такое-же_время_ нарисовал свои скрипты, которые (я писал чуть выше, снимают tail`ом) абсолютно не трогают никаких системных компонентов (включая файлы логов).


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

12. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  
Сообщение от juDge on 22-Янв-04, 09:29 
кто нить получил утилику которую обещал выслать Карл?)
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

13. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  
Сообщение от Skif email on 05-Мрт-04, 18:20 
У меня нечто подобное работает у самого(мене функционально в том плане, что не показывает сколько из кеша было вытянуто, а скока нет) месяцев пять - просто использование сарга запарило, да и надо что-то а-ля риал-тайм для юзверов, но я бы не сказл, что совсем не затрагивает файлов - полностью не читал статью - она мне не столь интересна, раз моя софтина работает - но ты же тоже должен очищать /_чего_то_там_/squid/logs/access.log после того как кинул очередную порцию в топку ;))) базы
Кстати, мой совет(впрочем может ты уже сам так же реализовал) - наваять клиенты на сях/делфе, который бы коннектился к базе  раз 20-30 минут и получал данные по статистике пользоваеля, что бы он знал когда пробьет его час и пора готовиться к отключению трафика ;)))
Оч полезная штука. ;)))
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

14. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  
Сообщение от jack (??) on 01-Июн-04, 15:21 
Самая простая и прекрасная программа для подсчета и ограничения лимита трафика у пользователя squserlim
И ничего изобретать не надо. Пишите сами
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

15. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  
Сообщение от raen on 06-Июл-04, 12:37 
От себя добавлю, что не помешало бы заменить в insert'е в поле link символы " на \" ;)
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

18. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  
Сообщение от Dmitry email(??) on 14-Июл-04, 11:34 
А как на счет function `from_unixtime' not defined? Стоит FreBSD 4.10-STABLE.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

19. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  
Сообщение от Butsyk A. email on 20-Окт-04, 17:23 
Написал программку, которая складывает логи сквида в базу PostgreSQL. Буду рад, если кому поможет. http://gkm.sumy.ua/~butsyk/s2pg.tar.bz2
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

20. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  
Сообщение от Vladimir Dyakov email on 05-Ноя-04, 15:43 
http://linux.alhimia.ru/projects/misc/squid-traffic/
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

21. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  
Сообщение от ilya (??) on 10-Ноя-04, 15:15 
Мой вопрос немного оффтоп для данной ветки, но тема, безусловно, смежная.
Во многих предложенных системах анализа трафика Squid используется basic аутентификация для ведения статистики по пользователям. По сути имена и пароли передаются в открытом виде. В случае, если еще вводятся лимиты для пользователей, то этот становится опасно - передавать в открыто виде.
Есть идеи создания безопасной аутентификации на прокси?
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

22. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  
Сообщение от Butsyk A. email on 18-Ноя-04, 10:16 
прорамма складывает логи сквида в базу MySQL, PostgreSQL, используя родные API этих баз, очень маленькая и шустренькая. Есть также скрипты на перле для анализа логов. Буду рад, если кому поможет.
http://abutsyk.sumy.ua/src/s2pg.tar.bz2

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

23. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  
Сообщение от Butsyk A. email on 24-Ноя-04, 17:02 
Проект перемещен. http://squid2db.sourceforge.net/
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

24. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  
Сообщение от cathul email(??) on 25-Ноя-04, 17:10 
При запуске скрипта squid-to-mysql выдает следующее, как это победить, подскажите плиззз, горю.............!!!!!!!!!

awk: cmd. line:1: {print "INSERT INTO squid (ip,bytes,link,trans,time) VALUES(\""$3"\","$5",\""$7"\",\""$9"\",from_unixtime("$1"));};
awk: cmd. line:1:                                                                                                              ^ unterminated string

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

25. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  
Сообщение от cathul email(??) on 25-Ноя-04, 17:32 
А сейчас так :(
proxy:/srv/www/htdocs/reports # ./squid-to-mysql
ERROR at line 1: Unknown command '\%'.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

26. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  
Сообщение от Megavolt email on 01-Дек-04, 09:01 
Я вообще для этой цели патч на сквид писал ... конечно не очень хороший, но считает ... кому надо могу кинуть

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

27. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  
Сообщение от cathul email(??) on 07-Дек-04, 17:12 
>Я вообще для этой цели патч на сквид писал ... конечно не
>очень хороший, но считает ... кому надо могу кинуть

Скинь плиззз.......
cathul@ukr.net


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

28. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  
Сообщение от Осипов Станислав on 09-Дек-04, 16:26 
>А как на счет function `from_unixtime' not defined? Стоит FreBSD 4.10-STABLE.

это ж, батенька, функция mysql v4.xx
попробуйте написать ее ПРОПИСНЫМИ БУКВАМИ

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

29. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  
Сообщение от sergey email(??) on 16-Янв-05, 00:12 
Привет. Нужна помощь, при попытке доступа к странице статистики выдается:

Fatal error: Call to undefined function: mysql_connect() in /var/www/html/reports/index.php on line 4

скрипт автора взят из статьи и не подвергался изменениям, единственное разница в том, что у меня пути разные к корню Апача, то есть  /var/www/html, ну да это мелочь.....

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

30. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  
Сообщение от Костя (??) on 22-Янв-05, 23:31 
>Только после того как отработает скрипт, мы начнем терять данные. В файле
>access.log будет тишина. IMXO надо так:
>#!/bin/bash
>squid -k rotate
>sleep "несколько секунд"
>cp /www/logs/squid/access.log.0 /tmp/squidforparse.log
>awk '{print "INSERT INTO squid (ip,bytes,link,trans,time) VALUES(\""$3"\","$5",\""$7"\",\""$9"\",from_unixtime("$1"));"};' < /tmp/squidforparse.log | mysql -D
>traffics -u root --password=my_sql_passwd
>rm -f /tmp/squidforparse.log
>rm -f /tmp/access.log.0

А зачем нужно cp /www/logs/squid/access.log.0 /tmp/squidforparse.log ?
Ведь после squid -k rotate - access.log.0 - не гзипованый, станд. лог, с ним можно работать. И что мы удаляем rm -f /tmp/access.log.0? Ведь файла там нет. И зачем нужно sleep "несколько секунд"? :)
И по-моему этот вариант кривоват, если данные нужно получать по запросу, а не в кроне.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

31. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  
Сообщение от vlad11 email(ok) on 23-Янв-05, 20:18 
проверь пароль на коннект к базе
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

32. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  
Сообщение от Serjio22 (??) on 28-Янв-05, 01:35 
Скорее всего у тебя не установлен phpmysql
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

33. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  
Сообщение от Dimmus email on 12-Окт-05, 09:03 
Скрипт не очень актуален, ибо БД забивается ненужным хламом, допустим один и тот же IP дублируется, меняя разве что размер байтов. Можно ли как-нибудь суммировать эти значения? Иначе с такими темпами за неделю пару Гб будет весить.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

34. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  
Сообщение от Dimmus email on 12-Окт-05, 10:26 
Лично я сделал так:
--------------------------------------------------
write:
--------------------------------------------------
#! /bin/sh

#
#write log
#

#copy squid log

cp /var/log/squid/access.log /tmp/squid.log
>/var/log/squid/access.log

#count ip,bytes
cat /tmp/squid.log | awk '{print $3}'| sort -u > /tmp/ips
for i in `cat /tmp/ips` ; do
echo -n "$i "
grep -w $i /tmp/squid.log > /tmp/t1
cat /tmp/t1 | awk 'BEGIN {a=0} {a=a+$2} END{print a}'
done

#clear
>/tmp/squid.log
rm -f /tmp/ips
rm -f /tmp/t1
--------------------------------------------------
run
--------------------------------------------------
#! /bin/sh

#
#run log > mysql
#

#run write
/root/.sh/sq-my/write > /tmp/run.log
#insert time
awk '{print $1,$2,strftime("%s")}' /tmp/run.log > /tmp/squid.log
rm -f /tmp/run.log
#into mysql
awk '{print "INSERT INTO squid (ip,bytes,time) VALUES(\""$1"\","$2",from_unixtime("$3"));"};' < /tmp/squid.log |  mysql -h host -D squid -u squid --password=pass >/dev/null 2>&1
rm -f /tmp/squid.log

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

35. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  
Сообщение от yarmol (ok) on 12-Окт-05, 12:10 
>Иначе с такими темпами за неделю пару
>Гб будет весить.
Так и есть :), и даже не пару гиг, а много больше.
Но я считаю трафик совсем по другому, а результаты этого скрипта использую для решения "спорных" вопросов "да я вощще в интернете не был!", а в таких случаях, очень полезны полные урлы с размером файлов.
Данные больше месяца не хранятся, прибиваются. Спорные вопросы длинной в месяц бывают ОЧЕНЬ редко.

Кстати, то что ты сделал в своем скрипте, ИМХО, значительно проще, быстрее, и правильней сделать в том же mysqlе. Из подробной базы, в твою, агрегированную, потом из подробной удалить.


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

36. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  
Сообщение от Dimmus email on 16-Окт-05, 20:39 
были и такие идеи, но быстрее было накатать скриптик, чем еще с крондом возиться :)
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

37. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  
Сообщение от dualp2 email on 24-Апр-06, 14:43 
Ссылка дохлая! Ищите тут! http://ftp.citkit.ru/pub/sourceforge/s/sq/
Была взята squid2db-1.1
Демон регулярно падал из за неэкранированных апострофов и неправильной размерности переменной blob.
Устранено...Пока стоит...Могу выслать, кому надо...
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

38. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  
Сообщение от Иван (??) on 10-Май-06, 11:12 
а MYSAR уже не рулит?
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

39. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  
Сообщение от rook email(??) on 27-Окт-06, 15:00 
Я может что-то не догоняю, но как вы считаете траффик фтп,... Я в логах сквида этого не нашел
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

40. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  
Сообщение от yarmol (??) on 28-Окт-06, 11:58 
>Я может что-то не догоняю, но как вы считаете траффик фтп,... Я
>в логах сквида этого не нашел

Никак :)
Точнее, не "никак", а весь трафик, я например, считаю совсем другими способами, а логи сквида занесенные в мускул очень помогают при общении с клиентами.
Ну или, если понадобился какой-то анализ http трафика - сколько туда, да сколько сюда...

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

41. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  
Сообщение от Александр (??) on 29-Дек-06, 12:27 
А SAMS использовать совместно с контролером домена нельзя ? 8) отличный тарификатор  + ACL + правила для юзеров
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

43. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  
Сообщение от DoBeRmAn8482 on 10-Янв-08, 17:05 
Почитал статью, понравилось, притом что от меня как раз попросили такую вещь, только у меня возникла одна загвоздка у меня отдельно действующий сервер Mysql, как ему передать данный из сквидовского access.log'a???


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

44. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  
Сообщение от Dimarik on 28-Мрт-08, 06:37 
A как из url еще и имя сервера вырвать?
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

45. "Подсчет трафика проходящего через Squid используя MySQL (squ..."  
Сообщение от Eternal email on 23-Май-08, 07:34 
MySAR + + подробная статистика за месяц
http://kb.etarea.com/2008/05/21/mysar-подробная-статистика-за-месяц/
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




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

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