Может не совсем в тему, но относится к ограничению трафика. Обнаружил баг в сквиде,
1. добавляю себя в ведро класа 2 -1/-1 2000/16000
2. ставлю на закачку большой файл и вижу что скорость 2к
3. squid -k reconfigure
4. мой файл пролетает со скоростью 10М
5. все новые соединения работают на 2к
Кто ковырял исходники сквида подскажите, что сделать чтобы старые ведра не удалялись, либо анализировались текущие соединения?
Обсуждение статьи Дмитрия Кругликова (Squid+SARG+Rejik)
Re: Обсуждение статьи Дмитрия Кругликова (Squid+SARG+Rejik)
Слушай а ты настроил австатс на логи режика?Junior писал(а): Как альтернативу SARG-у, запустил с ним параллельно
awstats. Очень занимательная штука, парсит кучу разных логов,
форматы логов можно указывать вручную, ибо не все логи выводят результаты в одинаковом виду и формате. Поддерживает логи прокси, вэб-сервреа, почтовые и проч. http://awstats.sourceforge.net/
я написал отакое %time2 %other %host %url %other
2005-04-07 10:39:07 BANNER: 10.44.54.13 - http://bbn.img.com.ua/n/24499.gif (urls rule: bbn.img.com.ua)
лог выглядит вот так. но что-то не работает.
wbr, Me. [url=http://livejournal.com/users/deadj][img]http://www.livejournal.com/img/userinfo.gif[/img][/url] Dead J. Dona
[url=http://business.ua]Бизнес.UA[/url]
[url=http://distributed.ru]Распределённые.Ру[/url]
[url=http://business.ua]Бизнес.UA[/url]
[url=http://distributed.ru]Распределённые.Ру[/url]
-
- Сообщения: 1
- Зарегистрирован: Пт май 06, 2005 17:44
индивидуальный лимит и хитрое обрезание
Задача: обрезать траффик тем кто превысил лимит, у каждого свой лимит, не считать рабочие сайты, при отключении пользователя давать возможность ходить на некоторые сайты.
Решение: Если sarg'у положить больше n сайтов в exclude_hosts он начинает жутко тормозить. Поэтому мы перед тем как sarg'у файл скормить делаем следующее
cat $SQUID_LOG | grep -v -f $WORK_URLS > $NEW_LOG
где $WORK_URLS - файл с рабочими сайтами, к которым всегда должен быть доступ, независимо превысил ли юзер лимит
Эта строчка на bash'е работает менее 1 сек. ,а на сарге порядка 10 минут.
далее
$SARG -f $SARG_CONF/sarg.conf.150 -u username1
$SARG -f $SARG_CONF/sarg.conf.150 -u username2
где sarg.conf.150 - конфиг сарга в котором указал лимит, конфигов нужно столько сколько групп юзеров.
при таком подходе получаем, что у юзера лимит только не для рабочих сайтов, и все быстро работает
Решение: Если sarg'у положить больше n сайтов в exclude_hosts он начинает жутко тормозить. Поэтому мы перед тем как sarg'у файл скормить делаем следующее
cat $SQUID_LOG | grep -v -f $WORK_URLS > $NEW_LOG
где $WORK_URLS - файл с рабочими сайтами, к которым всегда должен быть доступ, независимо превысил ли юзер лимит
Эта строчка на bash'е работает менее 1 сек. ,а на сарге порядка 10 минут.
далее
$SARG -f $SARG_CONF/sarg.conf.150 -u username1
$SARG -f $SARG_CONF/sarg.conf.150 -u username2
где sarg.conf.150 - конфиг сарга в котором указал лимит, конфигов нужно столько сколько групп юзеров.
при таком подходе получаем, что у юзера лимит только не для рабочих сайтов, и все быстро работает
-
- Сообщения: 11
- Зарегистрирован: Сб ноя 19, 2005 22:29
- Откуда: Ekaterinburg
- Контактная информация:
konop писал(а):Перед мною эта задача стояла года два назад
пользователей около 100
ходили они в инет через SQUID
я написал на perl-ле 3 скрипта
А давай это дело опубликуем. например, можно создать проект на http://sf.net
там уже есть sdquota (см следующий пост)
-
- Сообщения: 11
- Зарегистрирован: Сб ноя 19, 2005 22:29
- Откуда: Ekaterinburg
- Контактная информация:
Ограничивать трафик с помощью SARG неверно в корне:
1. SARG работает слишком уж периодично
2. Поскольку обрабатываестя всегда весь лог - это долго и грузит систему.
3. Нет возможности выставления индивидуальных квот.
Я использую sdquota, (http://sf.net/projects/sdquota и http://sourceforge.net/tracker/?atid=60 ... unc=browse), он работает "в онлайне" (срабатывает сразу как появляется запись в логе), но автор тулзы "пропал".
В качестве триггера доступа использую аутентификатор - всё равно нужно учитывать трафик по юзерам, в не по компьютерам. Но можно и Режик для этого использовать. Более того, режик уже имеет готовую возможность сделать часть сайтов доступными всегда (например, при бесплатном внутригороде как у нас в ебурге).
1. SARG работает слишком уж периодично
2. Поскольку обрабатываестя всегда весь лог - это долго и грузит систему.
3. Нет возможности выставления индивидуальных квот.
Я использую sdquota, (http://sf.net/projects/sdquota и http://sourceforge.net/tracker/?atid=60 ... unc=browse), он работает "в онлайне" (срабатывает сразу как появляется запись в логе), но автор тулзы "пропал".
В качестве триггера доступа использую аутентификатор - всё равно нужно учитывать трафик по юзерам, в не по компьютерам. Но можно и Режик для этого использовать. Более того, режик уже имеет готовую возможность сделать часть сайтов доступными всегда (например, при бесплатном внутригороде как у нас в ебурге).
-
- Сообщения: 11
- Зарегистрирован: Сб ноя 19, 2005 22:29
- Откуда: Ekaterinburg
- Контактная информация:
Re: Обсуждение статьи Дмитрия Кругликова (Squid+SARG+Rejik)
1. позицию запомнить можно. перемещаться по файлу тоже можно. man perlfuncSerg писал(а):Проблема в другом у меня более 300 пользователей а трафик за сутки порядка 1,5-2Гб. Соответственно access.log за месяц накапливается около 1,5Гб и концу месяца скрипт требует больше и больше времени т.к. лог просматриваетя с начала при этом тормозит и Squid.
Разбивать лог меньше чем месяц не могу. Нужна суммарная статистика за месяц.
По хорошему надо запоминать позицию в файле access.log, накопленные данные о лимитах и в следующий раз продожать с запомненой позиции. Но не знаю как это сделать в перле и можно ли вообще.
Может кто подскажет?
2. учитывай, что файл может ротироваться.