подсчёт трафика пользователй

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
moadip
мл. сержант
Сообщения: 114
Зарегистрирован: 2007-01-17 14:32:23

подсчёт трафика пользователй

Непрочитанное сообщение moadip » 2009-01-11 12:18:45

Привет
Вообщем нужно считать трафик пользователей в интернете,
вести статистику по сайтам и соответственно определённым извращенцам закрывать доступ к некоторым сайта.
Какой программой это можно реализовать ?
squid не предлагать(врёт)
нужно точно знать кто сколько насидел, включая pop3 smtp
Я бы изменил мир, но Бог не дает исходники...

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: подсчёт трафика пользователй

Непрочитанное сообщение hizel » 2009-01-11 14:35:29

по сайтам все будут врать :)
обычно одно другое дополняет, настроить, что то типа trafd или связки netflow и считать
дополняя данные по сайтам, если очень надо, статистикой со сквида
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
moadip
мл. сержант
Сообщения: 114
Зарегистрирован: 2007-01-17 14:32:23

Re: подсчёт трафика пользователй

Непрочитанное сообщение moadip » 2009-01-11 22:28:54

а чемто одним это нельзя сделать? Щас trafd считает нормально, по каждому пользователю кто сколько насидел. Если прикрутить squid не начнёт ли он дурит ? Ведь поидее если пользователи пойдут через squid, trafd наверно будет считать что весь трафик идет через 1 ип, (сервера)
Я бы изменил мир, но Бог не дает исходники...

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: подсчёт трафика пользователй

Непрочитанное сообщение hizel » 2009-01-11 22:38:38

хм будет, не вижу универсального решения, squid та еще кака, а уж парсилки его логов притча во языцех
есть милый хак, trafd считает обычный трафик и внедряет его в лог squid-а кроме 80 порта и подобных, squid работает как обычно
парсилка логов типа lightsquid выплёвывает полную статистику, насколько это вменяемо работает не в курсе :)
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: подсчёт трафика пользователй

Непрочитанное сообщение paradox » 2009-01-11 22:45:43

нужно точно знать кто сколько насидел, включая pop3 smtp
а зачем такие подробности?
у вас корпоративка?

Аватара пользователя
moadip
мл. сержант
Сообщения: 114
Зарегистрирован: 2007-01-17 14:32:23

Re: подсчёт трафика пользователй

Непрочитанное сообщение moadip » 2009-01-12 1:21:55

конторка небольшая интернета покупают 6 gb, на месяц нехватает, руководство хочет знать куда делся каждый mb, и соответсвенно если ктото сидел на порно сайтах, проводить профилактическую беседу, и лочить доступ.
P.s. А нат неумеет собирать статистику посещяемых ресурсов?
Я бы изменил мир, но Бог не дает исходники...

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: подсчёт трафика пользователй

Непрочитанное сообщение hizel » 2009-01-12 1:29:54

логика, NAT работает максимум на layer 4, сайты внутри layer 7 HTTP и подобного
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.


Аватара пользователя
schizoid
подполковник
Сообщения: 3228
Зарегистрирован: 2007-03-03 17:32:31
Откуда: Украина, Чернигов
Контактная информация:

Re: подсчёт трафика пользователй

Непрочитанное сообщение schizoid » 2009-01-14 12:23:46

переведите на ВПН - и считайте на интерфейсе
ядерный взрыв...смертельно красиво...жаль, что не вечно...

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: подсчёт трафика пользователй

Непрочитанное сообщение hizel » 2009-01-14 12:42:49

это как то поможет статистике по сайтам? :)
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: подсчёт трафика пользователй

Непрочитанное сообщение zg » 2009-01-14 12:44:41

moadip писал(а): покупают 6 gb, на месяц нехватает
жрут больше всего вирусяги и обновления винды и софта. Сквид тут не помошник, нужно по серьёзней, я бы советовал ставить ipacctd

ЗЫ но и от статы сквида не отказываться

Аватара пользователя
moadip
мл. сержант
Сообщения: 114
Зарегистрирован: 2007-01-17 14:32:23

Re: подсчёт трафика пользователй

Непрочитанное сообщение moadip » 2009-01-14 15:45:17

zg писал(а):
moadip писал(а):я бы советовал ставить ipacctd
щас стоит trafd,
чем ipacctd будет лучше ?
Я бы изменил мир, но Бог не дает исходники...

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: подсчёт трафика пользователй

Непрочитанное сообщение zg » 2009-01-14 15:57:33

ipacctd работает на дивертах, trafd в рамках trafshow

ipacctd не теряет пакеты и прост у становке и управлении

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: подсчёт трафика пользователй

Непрочитанное сообщение hizel » 2009-01-14 16:12:18

ng_netflow - самое православное :good:
ipacctd - получается завязанным на ipfw 8)
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: подсчёт трафика пользователй

Непрочитанное сообщение zg » 2009-01-14 22:41:17

hizel писал(а):ng_netflow - самое православное :good:
кому как -)))
hizel писал(а):ipacctd - получается завязанным на ipfw 8)
а чем плох ipfw? да и потом

Код: Выделить всё

DESCRIPTION
     Divert sockets are similar to raw IP sockets, except that they can be
     bound to a specific divert port via the bind(2) system call.  The IP
     address in the bind is ignored; only the port number is significant.  A
     divert socket bound to a divert port will receive all packets diverted to
     that port by some (here unspecified) kernel mechanism(s).  Packets may
     also be written to a divert port, in which case they re-enter kernel IP
     packet processing.
не вижу ни одной строчки про ipfw :smile:

Аватара пользователя
moadip
мл. сержант
Сообщения: 114
Зарегистрирован: 2007-01-17 14:32:23

Re: подсчёт трафика пользователй

Непрочитанное сообщение moadip » 2009-01-17 1:23:11

решил попробовать ng_ipacct, вроде считает
mysql к нему кто нибудь прикручивал ?
Я бы изменил мир, но Бог не дает исходники...

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: подсчёт трафика пользователй

Непрочитанное сообщение zg » 2009-01-17 9:34:43

moadip писал(а):mysql к нему кто нибудь прикручивал ?
поищи по форуму, чё-то было

Аватара пользователя
moadip
мл. сержант
Сообщения: 114
Зарегистрирован: 2007-01-17 14:32:23

Re: подсчёт трафика пользователй

Непрочитанное сообщение moadip » 2009-01-19 11:22:13

вообщем есть такой скрипт, для записили данныйх в БД

Код: Выделить всё

#!/usr/bin/perl

use DBI;
use DBD::mysql;
use Time::localtime;
$tm = localtime;
($DAY, $MONTH, $YEAR) = ($tm->mday, $tm->mon, $tm->year);

$IPACCTCTL="/usr/local/sbin/ipacctctl";
$IFACE = @ARGV[0];
$PARAMS = "$IFACE\_ip_acct:$IFACE";

$dbhost = "localhost";
$dbbd   = "stat";
$dbuser = "*****";
$dbpass = "*****";
$dbtable= "stat";

`$IPACCTCTL $PARAMS checkpoint`;
@stat = `$IPACCTCTL $PARAMS  show`;
`$IPACCTCTL $PARAMS clear`;

my $db = DBI->connect("DBI:mysql:$dbbd:$dbhost", $dbuser, $dbpass);

foreach (@stat){
    my($ip_from, $s_port, $ip_to, $d_port, $proto, $packets, $bytes) = split(/[\s\t]+/,$_);
    $db->do("INSERT INTO stat (r_date,ip_from,s_port,ip_to,d_port,proto,packets,bytes,iface) VALUES ('$DAY$MONTH$YEAR','$ip_from','$s_port','$ip_to','$d_port','$proto','$packets','$bytes','$IFACE')");
}

$result = $db->disconnect;
сообсно таблица БД

Код: Выделить всё

DROP TABLE IF EXISTS `stat`;
CREATE TABLE `stat` (
  `r_date` int(4) unsigned,
  `ip_from` int(4) unsigned,
  `s_port` int(2) unsigned,
  `ip_to` int(4) unsigned,
  `d_port` int(2) unsigned,
  `proto` int(2) unsigned,
  `packets` int(4) unsigned,
  `bytes` int(8) unsigned,
  `iface` varchar(12)
) TYPE=MyISAM;
Данные в бд заносятся некоректно, а именно столбцы; ip_from и ip_to, заносится только часть ip адреса "192168"

Код: Выделить всё

 |r_date    |    ip_from | s_port   |    ip_to  |  d_port    |proto    |packets |  bytes    |   iface | 
 |190109    |    192168 |	80      | 192168     |  58817    |	6      |    13	|   11875   |   rl1    |
 |190109    |    192168 |	61830   | 192168	 |  53	     |	17     |   1	|    57	    |   rl1    |
Пмомогите разобраться в чём проблема ?
Я бы изменил мир, но Бог не дает исходники...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35420
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: подсчёт трафика пользователй

Непрочитанное сообщение Alex Keda » 2009-01-19 12:02:56

заменить на варчар 16
Убей их всех! Бог потом рассортирует...

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: подсчёт трафика пользователй

Непрочитанное сообщение hizel » 2009-01-19 12:11:14

INET_ATON и INET_NTOA в лапы

Код: Выделить всё

- $db->do("INSERT INTO stat (r_date,ip_from,s_port,ip_to,d_port,proto,packets,bytes,iface) VALUES ('$DAY$MONTH$YEAR','$ip_from','$s_port','$ip_to','$d_port','$proto','$packets','$bytes','$IFACE')");
+ $db->do("INSERT INTO stat (r_date,ip_from,s_port,ip_to,d_port,proto,packets,bytes,iface) VALUES ('$DAY$MONTH$YEAR',INET_ATON('$ip_from'),'$s_port',INET_ATON('$ip_to'),'$d_port','$proto','$packets','$bytes','$IFACE')");
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
moadip
мл. сержант
Сообщения: 114
Зарегистрирован: 2007-01-17 14:32:23

Re: подсчёт трафика пользователй

Непрочитанное сообщение moadip » 2009-01-19 12:33:38

если делаю

Код: Выделить всё

+ $db->do("INSERT INTO stat (r_date,ip_from,s_port,ip_to,d_port,proto,packets,bytes,iface) VALUES ('$DAY$MONTH$YEAR',INET_ATON('$ip_from'),'$s_port',INET_ATON('$ip_to'),'$d_port','$proto','$packets','$bytes','$IFACE')");
получаю

Код: Выделить всё

r_date | ip_from      |s_port       |ip_to          |	      
190109|	3232235799  |	80       |  3232235797  |
т.е. в бд попадают абсолютно непонятные цифры.

если делаю

Код: Выделить всё

$db->do("INSERT INTO stat (r_date,ip_from,s_port,ip_to,d_port,proto,packets,bytes,iface) VALUES ('$DAY$MONTH$YEAR',INET_NTOA('$ip_from'),'$s_port',INET_NTOA('$ip_to'),'$d_port','$proto','$packets','$bytes','$IFACE')");
получаю

Код: Выделить всё

r_date | ip_from      |s_port       |ip_to |	      
190109|	0           |	80       |  0  |
подправил, результат тотже..

Код: Выделить всё

ip_from	int(16) 		UNSIGNED	Да	NULL
ip_to	int(16) 		UNSIGNED	Да	NULL
Я бы изменил мир, но Бог не дает исходники...

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: подсчёт трафика пользователй

Непрочитанное сообщение hizel » 2009-01-19 12:49:41

IPv4 адрес суть четыре байта , в mysql это тип int unsigned

Код: Выделить всё

mysql> select inet_aton('192.168.0.1');
+--------------------------+
| inet_aton('192.168.0.1') |
+--------------------------+
|               3232235521 |
+--------------------------+
1 row in set (0.02 sec)

mysql> select inet_ntoa(3232235521);
+-----------------------+
| inet_ntoa(3232235521) |
+-----------------------+
| 192.168.0.1           |
+-----------------------+
1 row in set (0.30 sec)
или храните в char(15)
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
moadip
мл. сержант
Сообщения: 114
Зарегистрирован: 2007-01-17 14:32:23

Re: подсчёт трафика пользователй

Непрочитанное сообщение moadip » 2009-01-19 13:31:39

спасибо,
а как просто в виде ip адреса записывать в бд ?

Код: Выделить всё

SQL-запрос: 

ALTER TABLE `stat` CHANGE `ip_from` `ip_from` CHAR( 16 ) UNSIGNED NULL DEFAULT NULL 

Ответ MySQL:  
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNSIGNED NULL DEFAULT NULL' at line 1
Я бы изменил мир, но Бог не дает исходники...

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: подсчёт трафика пользователй

Непрочитанное сообщение hizel » 2009-01-19 14:12:37

Код: Выделить всё

ALTER TABLE `stat` MODIFY `ip_from` CHAR( 16 );
не?

замечу, что unsigned int меньше занимает и быстрее обрабатывается ;)
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
moadip
мл. сержант
Сообщения: 114
Зарегистрирован: 2007-01-17 14:32:23

Re: подсчёт трафика пользователй

Непрочитанное сообщение moadip » 2009-01-19 14:28:27

ок,
спасибо
Я бы изменил мир, но Бог не дает исходники...