PigMail/PigProxy version 1.29
Добрый день !
Решено сделать квоты различным группам пользователей.
Разобрался как создавать и назначать индивидуальные квоты, конкретным пользователям. А вот с группами не получается.
Понятно описано в http://forum.etype.net/viewtopic.php?t=4746&highlight=trafc , но там 4 пункт если без PigProxy как понимаю.
И как теперь выполнить 4 пункт, создать связи — не знаю.
NamedListпосле запроса авторизации — пишете в подходящее место последовательности строки, где задаются:Как должна выглядеть запись для квоты Quota_Test к примеру ? Пытаюсь записать в таком виде QuotaTest::{LUserEmail}_quota — выдаёт ошибку.
Удалил все свои настройки по TrafC, и создал новые, установил 5-ый уровень логов — перезагрузил сервис.
Появился файл 20070214HTTPPTrafC:
Ошибки в EProxy.log:
Ошибки в 20070214HTTPPErr:
Создал нужный файл reset-quotas-list.flag со списком. Но ничего не происходит.
В описании TrafC есть пункт:
Где в PigProxy включается этот plugin ?
Вроде всё работает, квоты сбрасываются.
Теперь возник вопрос просмотра статистики. Пользуюсь страницей —
http://proxy-server:3140/trafc/stat_quotas.html.
Что неудобно:
Пришлите мне HTML-код этой каши и исходные данные — списки каналов, включая UserCanalsList, статистику TrafC и файлы из {Dirs[TrafC]}\canals\save\quotas\ (оттуда берутся имена Quota-каналов для статистики). Посмотрю у себя.
Хорошо, я об этом подумаю. Всё равно там надо доделывать. Посмотрю, откуда что брать.
Я не знаю таких.
Собственно, у меня повторён "родной" отчёт, только косметика наведена.
Это сделано, измененые файлы см. в http://www.eserv.ru/ru/rss/50.xml , в записях от сегодняшнего числа. Обновление после 3.29 временно выложил архивом TrafC-update-after-329.rar, распаковать в каталог Eproxy/conf/plugins/TrafC.
У пользователя закончилась квота, выдалась страничка-оповещение. Пользователь нажал на ссылке для просмотра статистики использования квоты, ввёл имя и пароль (а как сделать чтобы пользователю не надо было вводить ничего, для доступа к Интернету используется IP-авторизация), выбрал день и ... видит таблицу статистику по всем пользователям — а не только свою статистику.
Буду смотреть, что там поменялось.
Использовать IP-авторизацию для acWEB.
Он должен видеть только те каналы, к которым у него есть доступ — это настраивается в UserCanalsList.
Предполагается, что доработки Рувима из ftp://ftp.eserv.ru/pub/TrafC-update-after-329.rar вы себе уже поставили.
Кособокость таблицы пока осталась, там нужны очень серьёзные переделки.
Только можно сделать выравнивание двух колонок с байтами по правому краю ? Чтобы байты шли под байтами, килобайты под килобайтами, и т.д.
http://proxy_server:8085/my/trafc мог просмотреть свой трафик.
Выскакивал запрос на имя+пароль. Т.к. у меня везде идёт IP+MAC авторизация, то выставил в INI файле для HTTP использовать IP-авторизацию (кстати, не смог найти эту опцию в Web-интерфейсе).
Пользователь заходит, показывается страничка — но на ней нет самих данных. В списке журнала присутствуют файлы за все дни.
Под администратором — всё прекрасно видно по всем.
Как добиться теперь отображения трафика под пользователем ?
А дальше — на странице выбора список каналов пустой? Надо посмотреть, кем получается авторизация по IP и какие каналы этому пользователю сопоставлены в UserCanalsList.
У меня все каналы динамические и список UserCanalsList я не заполнял.
Для теста в UserCanalsList я занёс только себя. Зашёл по ссылке http://proxy_server:8085/my/trafc. Авторизировалось правильно, смотрел по логу 20070316HTTP.log. И всё-равно пусто, хотя в UserCanalsList запись про меня есть.
У меня ведь включено "Автозаполнение" — а это его задача вести список каналов пользователя для просмотра статистики ?
А без IP-авторизации, когда логин и пароль спрашивался — список доступных каналов отображался?
Сейчас всё перешлю.
Автозаполение включено, но где найти сам список ?
В остальных местах сравнение регистронезависимое. Ладно, буду думать дальше.
Так UserCanalsList и должен заполняться-изменяться.
Почему не формируется список автоматически ?
Теперь понятно, куда копать. При запуске Eproxy флаг автозаполнения стоял? Это не динамически отключаемая/подключаемая опция. Если стоял — посмотрите, там где-нибудь в другом месте ещё один UserCanalsList не завёлся?
Какая шапка и на какой странице? Где собственно просмотр статистики?
Никак. А надо?
А это где такое? В квотах вроде бы никакого количества обращений нет, там килобайты и проценты.
Поломалось? Или с самого начала не работало? Видимо, я что-то пропустил у себя, надо посмотреть внимательнее...
Логично. Посмотрю на этот скин свежими глазами.
3140 там как раз специально, потому что он есть всегда. А "публичного" порта может и не быть, если acWEB только для администрирования. У меня даже опция web-интерфейса есть — разрешить на публичном порту раздел /my/ или только на закрытом оставить. Можно для TrafC настройку добавить, на какой именно порт пользователей отправлять.
Набежавшее за день? Да, невредно.
С самого начала не работало.
ясно
Понял, где наврал. Теперь надо думать, как обойти.
Добавьте в конце такую строчку:
Вылезли другие ошибки в EProxy.log. Файл лога отсылаю по почте. И ошибки уже были сегодня до последней правки, просто не смотрел за этим логом.
Информация из cache считается в квотах и в ELog ?
Откуда там IvSERVER_IP вылезает, понять сложно. Тем более без всякого указания на ошибку. 20070316HTTPPErr.log не образовался?
20070316HTTPPErr.log — образовался.
Вот сейчас EProxy.log пополнился новыми ошибками.
Выслал все 3 файла по почте.
CPU Time — 00:27:00
Mem usage — 6900K
VM Size — 8792K
Handles — 333
Threads — 31
Попробую выключить, но попозже.
Что считается в квотах, я точно не знаю. Подозреваю, что трафик по внешнему интерфейсу. ELog по умолчанию тоже показывает трафик, который относит к внешнему. Но у вас ведь что-то исключено, какие-то хосты, доступные через прокси, но считающиеся локальными. ELog этот трафик относит в графы передано/принято локально и по умолчанию вообще не суммирует, если не велено считать внутренний трафик.
Выключал, при начале рабочего дня в логе EProxy.log опять:
Включил автозаполнение обратно.
Из письма:
Отключил в myconf\OnStartupPlugins.rules.txt FlagMon -> стал ругаться на правила
NamedListиWhiteListУбрал в правилах (
NamedListиWhiteList) ссылки на квотыСейчас отключены TrafC и FlagMon, вычищены правила — ошибок нет.
Интересно на ругань посмотреть.
Ну да ладно, подключил опять FlagMon.
EProxy.log
20070319EProxyErr.log:
Ошибка в правилах была про LUserEmail
BandsList.txt
"NAME";"CPS";"DIRECTION";"ISCLASS"
"Admins";"5000";"IN"
QuotasList.txt
"NAME";"VOLUME";"PERIOD";"DIRECTION";"ISCLASS"
"AdminsQuota";"500 Kb";"1 Days";"IN"
RulesList.txt
"Antecedent";"Consequent";"ISEOF"
IsGroupMember: Admins; Admins AdminsQuota 1 Priority!;
PS. RulesList.txt создавал в Wizard, не вручную,плагины http-proxy\plugins\TrafC и plugins\TrafC включены.
2007-05-25 13:32:03;192.168.131.115;HTTP-PROXY;mashkovia;nfsol.ru;1;nfsol.ru(md5)
2007-05-25 13:32:03;192.168.131.115;HTTP-PROXY;mashkovia;nfsol.ru;1;nfsol.ru(md5)
2007-05-25 13:32:03;192.168.131.115;HTTP-PROXY;mashkovia;nfsol.ru;1;nfsol.ru(md5)
mashkovia это пользователь,которому надо квоту поставить,nfsol.ru наш домен
а такого файла {YYYYMM}acl.txt че то не ту в этой папке ,есть там еще {YYYYMM}stat.txt, вот че в нем:
2007-05-25 13:47:37;192.168.131.115;HTTP-PROXY;702;931;270;685;265;mashkovia;nfsol.ru;3128;00-50-DA-D6-C1-1D
2007-05-25 13:47:37;192.168.131.115;HTTP-PROXY;708;494;270;691;296;mashkovia;nfsol.ru;3128;00-50-DA-D6-C1-1D
2007-05-25 13:47:37;192.168.131.115;HTTP-PROXY;682;409;270;665;281;mashkovia;nfsol.ru;3128;00-50-DA-D6-C1-1D
2007-05-25 13:47:37;192.168.131.115;HTTP-PROXY;700;409;270;683;297;mashkovia;nfsol.ru;3128;00-50-DA-D6-C1-1D
но это наверно для статистики...
"SOURCE_NAME";"AUTH_TYPE";"AUTH_PAR";"AUTH_OPT"
"nfsol.ru(md5)";"auth_md5";"{Auth[UserList]}";"{Auth[GroupList]}"
"nfsol.com(md5)";"auth_md5";"{Auth[UserList]}";"{Auth[GroupList]}"
"clientbank(md5)";"auth_md5";"{Auth[UserList]}";"{Auth[GroupList]}"
соответственно GroupsList.txt:
"USER";"IN_GROUP"
"MashkovIA";"Admins"
Кстати, имеет тут значение регистр,потому что тут "MashkovIA", а не "mashkovia"? Хотя по-существу наверное не должно это влиять.
В поле Antecedent:
Или:
Настроил правила
"IsGroupMember: min_inet";"Q-min_inet::{LUser}_quota";
"IsGroupMember: Admin";"Q-admin::{LUser}_quota";
"User =~";"Q-no_inet";
"IP= 10.74.22.*";"Q-no_inet";
"IsGroupMember: normal_inet";"Q-normal::{LUser}_quota";
"IsGroupMember: no_inet";"Q-no_inet::{LUser}_quota";
настроил квоты
"Q-normal";"500 Mb";"720 Hours";"IN";"1"
"Q-admin";"1500 Mb";"720 Hours";"IN";"1"
"Q-min_inet";"200 Mb";"720 Hours";"IN";"1"
"Q-No_inet";"1 Mb";"720 Days";"IN";
Запустил плагины plugins\TrafC и http-proxy\plugins\TrafC, перезапустил проксю, вроде поначалу все заработало, автоматом создались квоты на пользователей и стало считать кто сколько съел...
ОДНАКО заметно реальное замедление открытия страниц — страница с отключенными картинками (чистый текст) грузится по 4-5-7 минут... при отключении TrafC проблема уходит...
В чем могут быть грабли
При отключении TrafC все появляется на место...
При чем сам файл RulesList.txt остается цел, но появляется файл RulesList.txt.new нулевой длинны...
"IsGroupMember: min_inet";"Q-min_inet::{LUser}_quota";
"IsGroupMember: admin";"Q-admin::{LUser}_quota";
"User =~";"Q-no_inet";
"IP= 10.74.22.*";"Q-no_inet";
"IsGroupMember: normal_inet";"Q-normal::{LUser}_quota";
"IsGroupMember: no_inet";"Q-no_inet::{LUser}_quota";
на
"IsGroupMember: {LGroup}";"{LGroup}::{LUser}_quota";
"User =~";"Q-no_inet";
при условии что квоты будут называтсья как же как и группы пользователей:
"normal_inet";"500 Mb";"720 Hours";"IN";"1"
"admin";"1500 Mb";"720 Hours";"IN";"1"
"min_inet";"200 Mb";"720 Hours";"IN";"1"
"no_inet";"1 Mb";"720 Days";"IN";
P.S. 10.74.21.* = моя подсеть, а 10.74.22.* = подсеть другой организации в общей физической сети.
Может быть и неудачная попытка авторизации — User останется непустым.
Лучше вообще так:
Я правильно понял, что неавторизованным надо вообще доступ запретить?
А вот это совсем неверно:
Во-первых, IP= — это проверка собственного IP, интерфейса, который принял подключение. Во-вторых, тут должно быть конкретное значение, маски не поддерживаются. Правильные варианты:
А вы на web-интерфейс случайно не через прокси ходите? Есть такое подозрение, что файл просто занят, редактор не может получить к нему монопольный доступ.
Про замедление ничего не могу сказать. Вроде как никто до сих пор не жаловался.
"IsGroupMember: {LGroup}";"{LGroup}::{LUser}_quota";
"UID @ 0=";Disabled;
но у меня теперь не считается статистика по каналам пробовал и так: "IsGroupMember: {Group}";"{Group}::{LUser}_quota";
Для локализации проблемы отключите все правила назначения каналов, и проводите проверки, последовательно подключая каждое следующиее правило (при этом перезапускать прокси не надо, достаточно F5 в браузере). После какого правила начинаются тормоза?
Дело в том, что из имени пользователя нельзя получить имя единственной группы, т.к. пользователь может входить в несколько групп. Поэтому, проверки на принадлежность каждой группе все-равно нужны. Как вариант, можно написать собственную функцию (например, MainGroupOfCurrentUser), и тогда задать назначение каналов одной строкой: "TRUE";"{MainGroupOfCurrentUser}::{LUser}_quota"
А если так:
"IsGroupMember: TRUE";"{Group}::{LUser}_quota";
при условии что имя группы совпадает с именем класса квот... т.е. мне важно что бы он вообще принадлежал какой нибудь группе, и потом по имени группы определить ему канал через класс каналов...
"UID @ 0=";Disabled;
почему то позволяет зайти юзеру с левого IP. т.е. пользователь на компе 10.74.22.190 меняет себе айпишник на 10.74.21.190 и несмотря на то что ни не прописан ни в IP-MAC авторизации, ни в группах он тем не менее проходит через прокси... что для меня неприемлимо.
Грубо говоря есть список ИП\МАКов которым можно ходить в инет. Каждый из них соответствует конкретному юзеру. Этот юзер имеет 4 варианта доступа в инет определяемого принадлежностью к группе: no_inet min_inet normal_inet admin каждой группе соответствует класс квот
И НИКТО БОЛЬШЕ ЧЕРЕЗ HTTP проксер проходить не должен.
"UID @ 0=";Disabled; заработала... нихрена не понимаю, единственное логическое объяснение что если есть ошибка в предидущем правиле, то правила не выполняются совсем... так ли это ?
Выполняются до ошибки.
Буду иметь в виду на будущее...
Нагрузка — средненькая — активных стединений не больше 60... Юзеров обычно не больше 10 одновременно... всего юзеров около 50...