The OpenNET Project / Index page

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

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

"скрипт анализатор сквид"  
Сообщение от Happy_demon email(ok) on 09-Ноя-07, 15:22 
Доброе время!
надо по простому отключать пользователей от инет при превышении лимита. СОВСЕМ по простому. посмотрел на сквид-кэш, посмотрел на фрешмит. решил что надо ещё проще. идея такая. каждые 15 мин. запускается скрипт, подсчитывает траффик по каждому айпи сравнивается сумма с лимитом. если сумма превышена (не надо говорить, что сквид пишет после закачки файла в лог, мне это не принципиально)- заносит айпи пользователя в файл spec_client, передёргивает сквид. в сквиде есть acl который гласит что пользователи из файла spec_client никуда не могут ходить, только на несколько необходимых служебных сайтов. при заходе на другие сайты им будет выдана страничка - ВСЁ ИНЕТ КОНЧИЛСЯ, НЕ БОРЗЕЕМ!
это преамбула. теперь собственно вопрос. посмотрел лог сквида, понял что первый столбец -время, второй - траф, третий -айпи. чудно. вот собственно как мне сложить сумму во втором столбце, но разумеется по каждому айпи? дальше я думаю уже сам. перл, авк, шелл - всё равно. желательно чтобы это всё работало побыстрее (машинка слабенькая).
ну если кто подобным заморачивался - будет интересно услышать мнение по поводу данной схемы, а уж если готовое решение - честь и хвала.
Заранее спасибо.
Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

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


1. "скрипт анализатор сквид"  
Сообщение от angra (ok) on 10-Ноя-07, 13:47 
пример лога дайте, разумеется небольшой, несколько строчек иллюстрирующих все варианты того, что там может оказаться.


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

2. "скрипт анализатор сквид"  
Сообщение от Happy_demon email(ok) on 12-Ноя-07, 09:05 
>пример лога дайте, разумеется небольшой, несколько строчек иллюстрирующих все варианты того, что
>там может оказаться.

Э-э-э дать лог свкида? Пожалуйста.
1194607567.897 180725 192.168.25.134 TCP_MISS/504 1312 POST http://u14.eset.com/query/chsquery.php - DIRECT/217.67.22.106 text/html
1194607569.400 180003 192.168.25.114 TCP_MISS/504 1312 POST http://u15.eset.com/query/chsquery.php - DIRECT/217.67.22.97 text/html
1194607570.235    835 192.168.25.114 TCP_MISS/503 1314 POST http://u11.eset.com/query/chsquery.php - DIRECT/82.165.177.173 text/html
1194607594.158 179383 192.168.25.189 TCP_MISS/504 1312 POST http://u14.eset.com/query/chsquery.php - DIRECT/217.67.22.106 text/html
1194607606.961      2 192.168.25.120 TCP_MEM_HIT/200 417 GET http://top3.list.ru/counter? - NONE/- image/gif
1194607606.977      2 192.168.25.120 TCP_IMS_HIT/304 206 GET http://counter.rambler.ru/top100.cnt? - NONE/- image/gif
1194607606.996      2 192.168.25.120 TCP_IMS_HIT/304 248 GET http://img.mail.ru/mail/ru/images/logon.gif - NONE/- image/gif
1194607612.407 179920 192.168.25.149 TCP_MISS/504 1312 POST http://u14.eset.com/query/chsquery.php - DIRECT/217.67.22.106 text/html
1194607619.023     42 192.168.25.120 TCP_MEM_HIT/200 417 GET http://top3.list.ru/counter? - NONE/- image/gif
1194607621.938      4 192.168.25.120 TCP_MEM_HIT/200 417 GET http://r.mail.ru/b2854606.swf - NONE/- image/gif
1194607630.278 179330 192.168.25.134 TCP_MISS/504 1312 POST http://u15.eset.com/query/chsquery.php - DIRECT/217.67.22.97 text/html
1194607642.908    441 192.168.25.129 TCP_MISS/200 36039 GET http://win.mail.ru/cgi-bin/start - DIRECT/194.67.57.200 text/html
1194607644.904      6 192.168.25.129 TCP_MEM_HIT/200 417 GET http://bs.yandex.ru/watch/21753? - NONE/- image/gif
1194607651.212    383 192.168.25.124 TCP_MISS/304 144 GET
1194607654.109 179329 192.168.25.189 TCP_MISS/504 1312 POST http://u15.eset.com/query/chsquery.php - DIRECT/217.67.22.97 text/html
1194607672.093 179592 192.168.25.149 TCP_MISS/504 1312 POST http://u13.eset.com/query/chsquery.php - DIRECT/217.67.22.110 text/html
1194607682.289    339 192.168.25.144 TCP_MISS/200 11510 GET http://adresa.yandex.ru/company.xml? - DIRECT/213.180.204.20 text/html
1194607683.722      3 192.168.25.120 TCP_MEM_HIT/200 417 GET http://top3.list.ru/counter? - NONE/- image/gif
1194607683.790    533 192.168.25.120 TCP_MISS/200 48814 GET http://win.mail.ru/cgi-bin/readmsg? - DIRECT/194.67.57.250 text/html
1194607684.422    423 192.168.25.144 TCP_MISS/301 684 GET http://www.bilsstar.ivco.ru/ - DIRECT/209.85.32.57 text/html
1194607684.636    427 192.168.25.120 TCP_MISS/200 180 POST http://s1.mail.ru/indexer.php - DIRECT/194.67.57.32 text/plain
1194607686.993    601 192.168.25.120 TCP_MISS/200 15222 GET http://horo.arhangel.ru/personal/done.html? - DIRECT/213.248.55.205 text/html
1194607689.091 179693 192.168.25.114 TCP_MISS/504 1312 POST http://u13.eset.com/query/chsquery.php - DIRECT/217.67.22.110 text/html
1194607694.693    182 192.168.25.193 TCP_MISS/200 2433 POST http://vkontakte.ru/mail.php - DIRECT/195.190.105.240 text/html
1194607694.772      1 192.168.25.193 TCP_MEM_HIT/200 417 GET http://counter.yadro.ru/hit? - NONE/- image/gif
1194607695.033    302 192.168.25.144 TCP_MISS/200 11529 GET http://adresa.yandex.ru/company.xml? - DIRECT/213.180.204.20 text/html
1194607697.506    210 192.168.25.193 TCP_MISS/200 5194 GET http://vkontakte.ru/mail.php - DIRECT/195.190.105.241 text/html
1194607697.533     26 192.168.25.193 TCP_MEM_HIT/200 417 GET http://counter.yadro.ru/hit? - NONE/- image/gif
1194607697.616     68 192.168.25.144 TCP_MISS/200 2229 GET http://www.casa-latina.ru/templates/main.css - DIRECT/217.174.104.180 text/css
1194607697.685      6 192.168.25.144 TCP_MEM_HIT/200 417 GET http://top.list.ru/counter? - NONE/- image/gif
1194607700.242    399 192.168.25.124 TCP_MISS/304 144 GET
1194607703.295    730 192.168.25.193 TCP_MISS/200 3402 GET http://vkontakte.ru/friend.php? - DIRECT/195.190.105.241 text/html
1194607703.415    119 192.168.25.193 TCP_MISS/304 262 GET http://vkontakte.ru/css/friend.css - DIRECT/195.190.105.241 -
1194607708.390    631 192.168.25.193 TCP_MISS/200 5192 GET http://vkontakte.ru/mail.php - DIRECT/195.190.105.241 text/html
1194607708.425     34 192.168.25.193 TCP_MEM_HIT/200 417 GET http://counter.yadro.ru/hit? - NONE/- image/gif
1194607710.322    242 192.168.25.193 TCP_MISS/200 2999 GET http://vkontakte.ru/mail.php? - DIRECT/195.190.105.241 text/html

соответственно мне нужна сумма по второму столбцу, но суммировать необходимо  с учётом третьего. если сумма для какого-либо из айпи превышает дневной лимит (50Мб) -> этот айпи эхом заносится в файл spec_client, а затем передёргивается сквид. если для каждого айпи сумма меньше - не делаем ничего. юзеры , перечисленные в файле spec_client могут ходить только на нсколько разрешённых сайтов, на всех остальных они увидят страничку что они превысили свой дневной лимит.
вот как-то вот так.

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

3. "скрипт анализатор сквид"  
Сообщение от angra (ok) on 13-Ноя-07, 17:15 
В файле data ваш пример лога. Если не будет имени файла, то будет ждать со стандартного ввода. Выдает только те IP где больше 1000 сумма. Поменяйте последнее число на нужный вам порог ну и укажите правильный путь к логу.

$perl -ane '$a{$F[2]}+=$F[1];END{for (keys %a){print "$_\n" if $a{$_}>1000}}' data
192.168.25.189
192.168.25.134
192.168.25.193
192.168.25.114
192.168.25.120
192.168.25.149
192.168.25.144

Если надо и кол-во выдавать то меняем print "$_\n" на print "$_ $a{$_}\n"

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

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

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




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

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