Есть ли готовое решение для пассивного мониторинга HTTP трафика под Unix-like систему?
Здравствуйте!
Подскажите пожалуйста средство для пассивного мониторинга HTTP-запросов.
Есть слабый компьютер на Unix, который подключается в порт свича, на который выполняется зеркалирование трафика в сети. Задача в том, чтобы в promiscuous-режиме собирать трафик и иметь возможность генерировать статистику: на какие сайты какие пользователи ходили и объем трафика, как общий, так и по пользователям.
Компьютер слабый, да и специфика задачи не предполагает его работу в качестве прокси, что отсекает многие варианты. Готового решения данной задачи не нашел, так как снифферы собирают слишком много лишего, желательно мониторинг на прикладном уровне, а не возня с миллионами пакетов.
Уже пару дней решаю данную проблему, и сконяюсь к тому, что придется собирать трафик/логи и писать простенький парсер, если у кого-нибудь есть дельный совет, буду очень благодарен!
p.s. Также рассматривал вариант на Windows, пробовал Traffic Inspector, но правильно работать заставить его не удалось, хотя делалось все по видео на канале разработчиков. Если есть подходящие программы на Windows, буду рад.
UPD: Спасибо за ответы!
Все предложенные решения так или иначе основываются на завороте трафика.
В этом-то вся и проблема! Необходимо решить задачу без заворачивания трафика, этот компьютер не должен быть значимым узлом сети, необходимо просто как бы "стоять в сторонке" и анализировать тррафик.
Так что, даже прозрачный прокси не вариант.
Вообще говоря, вариант со Squid и прочим - это моя первая мысль, что естественно, так как это самый распространенный и эффективный вариант решения подобных проблем с кучей полезных надстроек.
Но, к сожалению, пока рассматривается только вариант со сбором трафика "в сторонке" в неразборчивом режиме.
Возможно, я не в курсе каких-то фишек и технологий, так как особо не решал подобных задач, надеюсь на помощь :)
Может squid со всякими там отчетами в lightsquid, sarg и им подобными?
Можно покурить немного IPTABLES, промаркировать пакеты, и, используя сенсор fprobe в купе с netflow, замутить свое, как например этот парень habrahabr.ru/post/232719
Здесь подробнее http://help.ubuntu.ru/wiki/мониторинг_трафика
Еще посмотрите на что-нибудь из этого:
iftop, iptraf, ntop, vnStat, Bandwidthd, darkstats
Спасибо, но я читал эти статьи, они немного не подходят в связи со спецификой задачи. Iptables вообще бесполезен в неразборчивом режиме.
Отписал в обновлении вопроса.
Почему бы не завернуть все на squid, работающий в прозрачном режиме? Потому как выгребать TCP из зеркалированного трафика (ага, сегмент потерялся и все, нам его никто пересылать не будет, поезд ушел!) потруднее будет, чем просто проксировать.
на какие сайты какие пользователи ходили и объем трафика, как общий, так и по пользователям.
Если достаточно IP-адресов сайтов и IP-адресов клиентов, то можно подумать об использовании netflow, если ваше оборудование (маршрутизатор) его поддерживает.