Имеется роутер на Linux (Celleron 600, RAM 256Mb, ядро 2.4.27 два сетевых интерфейса 100Mb.) и клиентская база на postgresql (на другой машине).
Встал вопрос, как собирать статистику клиентов. Тут два варианта:
1. Снимать данные со счётчиков iptables
плюсы:
1) Данные соответствуют действительности.
2) Обработка данных проводится быстро.
минусы:
1) Нет статистики - с какого хоста клиент сколько накачал.2. Использовать программы типа NeTraMet, ipcad, ulogd, etc.
плюсы:
1) Детальная статистика - с какого хоста клиент сколько накачал.
минусы:
1) Имеют место потери трафика (данные iptables > данных коллекторов)
2) Обработка данных весьма прилично загружает машину.
3) Довольно медленная обработка.В связи с этим вопросы:
1. На сколько критично для провайдера показывать клиенту IP-адреса хостов на которые клиент ходил?
2. Многие ли существующие провайдеры предоставляют такую статистику?
3. Какие коллекторы дают наименьшие потери трафика?
1. При спорных ситуациях весьма критично. А то накачают, а потом удивляются, почему нет денег на счету.
2. Все провайдеры эту информацию предоставляют (с которыми я работал). Исключение, разве что, национальные, типа рткома, экванта и т.д.
3. ipacctd не плохо себя зарекомендовал, да и ipcad хорошо работал. Но всё это касаемо freebsd. На линуксе ipcad очень точно показывал. А вообще снимаю статистику с cisco по netflow. Пока что не было проблем. В данном случае железо будет наиболее эффективно, потому что софт он на то и софт. При большой нагрузке у ipacctd например буффера частенько не хватает, а ipcad просто тормозить начинает дико. Вот так.
>При большой нагрузке у ipacctd например буффера частенько не хватает, а ipcad просто тормозить начинает дико.
>Вот так.А что скажете про netams + ip_queue? Как эта сладкая парочка себя показывает в планах тормознутости и потерь трафика?
В последнее время ipcad научился работать с ulog что очень радует и умеет к тому же генерить netflow так что проблема потери пакетов из-за испльзования libpcap отпала сама собой , надо просто правильно настроить правила iptables чтобы не весь пакет копировать в юзер спейс а только хедер + увелить для ulog сокета длину очереди пакетов в ядре. Был проведен експеримент: ipcad и счетчики iptables наблюдения в течении 2 месяцев расхождений не показали (забыл сказать канал 10 мегабит).
У меня вопрос: кто подкинет ссылку kernel варианта считалки (можно в зачаточном виде для дальнейшего развития), чтобы уменьшить количество копирований кернел to юзер спейс ?