Давно работает считалка трафика netacct-mysql доволен ей полностью
1) Считает трафик по все портам проходящим через сетевой интерфейс довольно точно
2) Разделяет по IP
Но, если стоит squid в частности у меня NCSA авторизация, то при скачивании чего либо через сквид логи что, когда, откуда и кто качал сохраняются в сквиде, а netacct-mysql молчит. Netacct-mysql cчитает только то что идет в обход сквида почта подобные порты. Как только я выключаю сквид netacct-mysql считает 80 порт и.т.д. т.е. ВСЕ ПОРТЫ.
Как заставить netacct-mysql при одновременной работе со сквидом складывать информацию о трафике прошедшем через сквид с свою базу ???
Кто сталкивался, поясните.
NETACCT-MYSQL (ИНТЕРЕСНЫЙ ПОДСЧЕТ ТРАФФИКА)
Модераторы: SLEDopit, Модераторы разделов
-
Alex2ndr
- Сообщения: 443
- ОС: Debian Lenny
Re: NETACCT-MYSQL
Трафик, проходящий через Squid для считалки выглядит локальным трафиком сервера. Вероятно он у вас не считается. Здесь есть такие варианты:
1. Считать в netacct трафик, приходящий к свиду и обратно в направлении пользователей (т е на интерфейсе смотрящем в локалку).
2. Вывести все на какой-нибудь виртуальный интерфейс (ifb, imq) и считать на нем. Но опять же - до сквида. Т к после вы уже не сможете сказать кому принадлежит трафик.
3. Написать свой скрипт, который будет парсить логи сквида и складывать инфу из них в базу netacct. Имхо самый сложный вариант, т к предстоит разбираться в том как все это работает.
Все эти варианта череваты неточностью подсчета, т к считать трафик через сквид - дело ненадежное. Хотите точности - используйте netacct и только.
Простого способа сделать как вы хотите я не знаю. Слишком разные системы. И работают на разных уровнях...
1. Считать в netacct трафик, приходящий к свиду и обратно в направлении пользователей (т е на интерфейсе смотрящем в локалку).
2. Вывести все на какой-нибудь виртуальный интерфейс (ifb, imq) и считать на нем. Но опять же - до сквида. Т к после вы уже не сможете сказать кому принадлежит трафик.
3. Написать свой скрипт, который будет парсить логи сквида и складывать инфу из них в базу netacct. Имхо самый сложный вариант, т к предстоит разбираться в том как все это работает.
Все эти варианта череваты неточностью подсчета, т к считать трафик через сквид - дело ненадежное. Хотите точности - используйте netacct и только.
Простого способа сделать как вы хотите я не знаю. Слишком разные системы. И работают на разных уровнях...
-
leksstav
- Сообщения: 331
Re: NETACCT-MYSQL
Alex2ndr писал(а): ↑02.07.2010 10:28Трафик, проходящий через Squid для считалки выглядит локальным трафиком сервера. Вероятно он у вас не считается. Здесь есть такие варианты:
1. Считать в netacct трафик, приходящий к свиду и обратно в направлении пользователей (т е на интерфейсе смотрящем в локалку).
2. Вывести все на какой-нибудь виртуальный интерфейс (ifb, imq) и считать на нем. Но опять же - до сквида. Т к после вы уже не сможете сказать кому принадлежит трафик.
3. Написать свой скрипт, который будет парсить логи сквида и складывать инфу из них в базу netacct. Имхо самый сложный вариант, т к предстоит разбираться в том как все это работает.
Все эти варианта череваты неточностью подсчета, т к считать трафик через сквид - дело ненадежное. Хотите точности - используйте netacct и только.
Простого способа сделать как вы хотите я не знаю. Слишком разные системы. И работают на разных уровнях...
Разработчики пишут что траф возможно считать когда прокси TRANSPARENT и трафик надо перенаправлять обязательно через iptables, но тут заморочка у меня авторизация NCSA а при этом типе авторизации, невозможно прозрачное проксирование.
Конфигурация при использовании прокси сервера.
ВАЖНО: программа будет правильно учитывать трафик ТОЛЬКО ТОГДА, когда прокси
настроен для работаты в качестве TRANSPARENT proxy. В противном случае, т.к.
весь трафик проходит через него /если пользователи настраивают браузер/ всегда
или source ip или destination ip является прокси сервар и нет возможности
разграничивать тип трафика. Трафик будет учтен правильно, но весь попадет или в
международный, или в пиринговый, или в прямой. Поэтому удачным решением является
условие, что пользователю не нужно делать никаких настроек, а трафик
переправлять с помощью iptables /i,f,pf/ на ip адрес и порт прокси сервера.
eth0- 62.73.87.1 netmask 255.255.255.252
eth1- 192.168.1.0 255.255.255.0
прокси сервер работает на на той же машине с портом 3128
#iptables - конфигурация
iptables -t nat -A PREEOUTING-s 192.168.1.0/24 -d 0/0 -p tcp -m multiport -dport 80,21,8080 -j REDIRECT --to-port 3128
#pf конфигурациях
rdr on fxp0 inet proto tcp to port 80 -> 10.10.10.10 port 8080
naccttab:
---[cut]---
compactnet 192.168.1.0.255.255.255.0
ournet 192.168.1.0 255.255.255.0
direct_peer 1.1.1.1 255.255.255.255
device eth1
ignorenet 127.0.0.0 255.0.0.0
----[cut]---
-
Alex2ndr
- Сообщения: 443
- ОС: Debian Lenny
Re: NETACCT-MYSQL
Они описывают мой вариант под номером 1.
Мне КАЖЕТСЯ, что все таки можно как-то считать на обычной проксе, но я могу и ошибаться. Им виднее. Тогда думайте о варианте 2.
Насчет того, что весь трафик будет учтен правильно имхо они лукавят. Невозможно сказать что сквид возьмет из своего кэша, а что получит из инета. В среднем статистика собранная таким способом будет на 5-10% превышать реальное потребление.
Мне КАЖЕТСЯ, что все таки можно как-то считать на обычной проксе, но я могу и ошибаться. Им виднее. Тогда думайте о варианте 2.
Насчет того, что весь трафик будет учтен правильно имхо они лукавят. Невозможно сказать что сквид возьмет из своего кэша, а что получит из инета. В среднем статистика собранная таким способом будет на 5-10% превышать реальное потребление.