Биллинговая система Nodeny

Главная категория => Nodeny 50 => Тема начата: blackjack от 01 Октября 2009, 13:53:22



Название: Netflow
Отправлено: blackjack от 01 Октября 2009, 13:53:22
Решил перейти с ipacct на netflow в связи с разделением сервера доступа и остальной части билинга. Раньше биллинг нормально снимал траф каждые 30секунд и писал в базу, теперь при использовании нетфлоу в базу траф пишется только когда поток трафика прекратился, тоесть юзер закачал файл. Вопрос: как быть с блокировкой юзеров и проблемой ухода в минус? Например когда у юзера из 2 предоплаченых гиг выкачано 1,9Гб и он поставил на закачку файл 500Мб, получается биллинг не владеет оперативными данными. Что делать с этим или может я накуролесил где-то?


Название: Re: Netflow
Отправлено: Elisium от 01 Октября 2009, 20:12:48
Скорее всего накуролесил ..
У меня нетфлов статистика пишется в биллинг несколько раз в минуту . По крайней мере скл- файл в папке ../нодени/скл/ создается довольно часто.
Возможно у тебя просто в общей статистике как то некорректно отображается, а реально биллинг считает трафик верно (вот у меня, например, так  :( )

п.с. Создай себе тестового пользователя с ограниченым трафиком и попробуй твою вышеописаную ситуацию ...


Название: Re: Netflow
Отправлено: blackjack от 02 Октября 2009, 10:45:54
ну вот скрин по статистике
и проводил я тест, как видно из картинки, предоплачено 2000Мб, скчано уже 1900Мб и в данный момент скачано файла уже 200Мб тоесть превышение ботлше 100метров а доступ остается разрешенным.


Название: Re: Netflow
Отправлено: blackjack от 02 Октября 2009, 10:47:43
где же грабли?


Название: Re: Netflow
Отправлено: blackjack от 02 Октября 2009, 11:07:11
а вот когда биллинг раздуплился на счету было уже -11 гривен, ткните в какую сторону копать


Название: Re: Netflow
Отправлено: Elisium от 02 Октября 2009, 20:27:56
Операции - настройки - ядро -
Период обновления ядром данных клиентов из БД.
С каким периодом (в секундах) снимать показания потребленного трафика клиентами.


Ничего в этих полях не менялось ?


Название: Re: Netflow
Отправлено: Efendy от 03 Октября 2009, 07:38:07
netflow действительно выдает информацию по окончанию загрузки. Однако, по идее, если снимать статистику путем послылки данных в коллектор через ngtee (смотри пример в  netflow.html), а не снимать с интерфейса, то должно быть все ок.


Название: Re: Netflow
Отправлено: blackjack от 05 Октября 2009, 12:00:20
да так и делаю посылаю  через ngtee.


Название: Re: Netflow
Отправлено: Efendy от 05 Октября 2009, 14:57:46
Ну, фича netflow, что тут поделать. Поищите другие коллекторы netflow - может на них получится перейти


Название: Re: Netflow
Отправлено: blackjack от 05 Октября 2009, 15:27:22
да я ничего против не имею, просто юзера тупые - не контролируют баланс и вовремя не могут остановится, или же думают что халява и начинают качать, а потом бац и заблочило.


Название: Re: Netflow
Отправлено: Efendy от 05 Октября 2009, 17:11:32
ipcad, ipacct...


Название: Re: Netflow
Отправлено: blackjack от 07 Октября 2009, 11:25:33
ipacct это конечно сила но не работает по сети
ipcad не хотелось бы ибо юсерленд


Название: Re: Netflow
Отправлено: blackjack от 07 Октября 2009, 11:30:11
а если скрипт который с обирает статистику ipacct немного модифицировать и запустить на сервере доступа? чтобы он конектился к серверу бд и писал туда статистику.


Название: Re: Netflow
Отправлено: versus от 07 Октября 2009, 11:57:11
Пишет не скрипт в базу а ядро! скрипт только апи для коллектора


Название: Re: Netflow
Отправлено: blackjack от 07 Октября 2009, 12:28:08
бегло посмотрел скрипт ipacct.pl как я понял скрипт разбирает статистику из ipacct и ложит ее во временный файл, после чего как я понимаю ядро из файла забирает данные и пишет в базу, а файл удаляет либо удаляет из файла все. Если так то можно написать скрипт который по крону будет копировать временный фай из одного сервера на тот где запущено ядро.


Название: Re: Netflow
Отправлено: blackjack от 07 Октября 2009, 12:31:38
но не все так радужно, наверно ipacct.pl вызывается ядром.


Название: Re: Netflow
Отправлено: Efendy от 07 Октября 2009, 12:43:45
бегло посмотрел скрипт ipacct.pl как я понял скрипт разбирает статистику из ipacct и ложит ее во временный файл, после чего как я понимаю ядро из файла забирает данные и пишет в базу, а файл удаляет либо удаляет из файла все. Если так то можно написать скрипт который по крону будет копировать временный фай из одного сервера на тот где запущено ядро.
Сделать можно двухступенчатую схему:
ядро вызывает определенный скрипт, который связывается с удаленным сервером, на котором крутится файл похожий на  ipacct.pl. Остается написать способ передачи статистики, либо самописно по udp, tcp либо на ftp заливать как файл, либо писать в базу в виде файла, а ядро будет извлекать из базы и парсить. Сделать можно, но ...

ipcad разве большой оверхед дает? Вы потестируйте, может производительности хватит


Название: Re: Netflow
Отправлено: blackjack от 07 Октября 2009, 12:50:53
счас буду пробовать


Название: Re: Netflow
Отправлено: blackjack от 07 Октября 2009, 14:01:34
Короче сделал так.
1. Изменения sshd_config
Код:
PermitRootLogin no
Match Host 172.16.21.122,127.0.0.1
    PermitRootLogin yes
2.
Код:
ssh-copy-id root@172.16.21.124
3. Файл ipacct.pl
Код:
$ipacctctl="/usr/bin/ssh -l root -p 22 172.16.21.124 /usr/local/sbin/ipacctctl";
4. В настройках коллекторов трафика указываем ipacct:

Все.


Название: Re: Netflow
Отправлено: Efendy от 07 Октября 2009, 15:32:40
Крут ;)


Название: Re: Netflow
Отправлено: versus от 09 Октября 2009, 15:52:00
Внеси в доку )


Название: Re: Netflow
Отправлено: blackjack от 07 Мая 2010, 12:14:24
Короче сделал так.
1. Изменения sshd_config
Код:
PermitRootLogin no
Match Host 172.16.21.122,127.0.0.1
    PermitRootLogin yes
2.
Код:
ssh-copy-id root@172.16.21.124
3. Файл ipacct.pl
Код:
$ipacctctl="/usr/bin/ssh -l root -p 22 172.16.21.124 /usr/local/sbin/ipacctctl";
4. В настройках коллекторов трафика указываем ipacct:

Все.

невелика поправка, має бути так
Код:
$ipacctctl="/usr/bin/ssh -l root -p 22 $dserver /usr/local/sbin/ipacctctl";


Название: Re: Netflow
Отправлено: blackjack от 16 Июня 2010, 09:46:15
Решил перейти с ipacct на netflow в связи с разделением сервера доступа и остальной части билинга. Раньше биллинг нормально снимал траф каждые 30секунд и писал в базу, теперь при использовании нетфлоу в базу траф пишется только когда поток трафика прекратился, тоесть юзер закачал файл. Вопрос: как быть с блокировкой юзеров и проблемой ухода в минус? Например когда у юзера из 2 предоплаченых гиг выкачано 1,9Гб и он поставил на закачку файл 500Мб, получается биллинг не владеет оперативными данными. Что делать с этим или может я накуролесил где-то?

А ларчик открывался просто
Код:
cisco6509(config)#ip flow-cache timeout active 1

минимальный интервал - 1 минута


Название: Re: Netflow
Отправлено: garik24 от 01 Июля 2010, 01:00:52
Решил перейти с ipacct на netflow в связи с разделением сервера доступа и остальной части билинга. Раньше биллинг нормально снимал траф каждые 30секунд и писал в базу, теперь при использовании нетфлоу в базу траф пишется только когда поток трафика прекратился, тоесть юзер закачал файл. Вопрос: как быть с блокировкой юзеров и проблемой ухода в минус? Например когда у юзера из 2 предоплаченых гиг выкачано 1,9Гб и он поставил на закачку файл 500Мб, получается биллинг не владеет оперативными данными. Что делать с этим или может я накуролесил где-то?
А ларчик открывался просто
Код:
cisco6509(config)#ip flow-cache timeout active 1
минимальный интервал - 1 минута

столкнулся с подобной проблемой...
есть ли решение в случае использования netgraph netflow(freeBSD7)?


Название: Re: Netflow
Отправлено: stix от 01 Июля 2010, 11:42:29
Цитировать
msg netflow: settimeouts { inactive=30 active=600 }
а так?


Название: Re: Netflow
Отправлено: garik24 от 03 Июля 2010, 13:07:06
Цитировать
msg netflow: settimeouts { inactive=30 active=600 }
а так?

+1
спасибо, работает!
добавил этот параметр в netflow.txt
Код:
mkpeer ipfw: netflow 100 iface0                                                                                                                                             
name ipfw:100 netflow                                                                                                                                                      
msg netflow: setdlt { iface = 0 dlt = 12 }                                                                                                                                  
msg netflow: settimeouts { inactive=30 active=600 }                                                                                                                        
mkpeer netflow: ksocket export inet/dgram/udp                                                                                                                              
msg netflow:export connect inet/127.0.0.1:8888      

когда качаешь по ftp/http жирный файл, раз в 10 минут(active=600) снимается статистика со счетчиков.


Название: Re: Netflow
Отправлено: Andrey Zentavr от 03 Июля 2010, 14:12:09
BTW я пускаю нетвлоу экспорт примерно так:
Код:
[zentavr@gw ~]$ cat /usr/local/etc/rc.d/ngexport.sh
#!/bin/sh

# (c) 2008, Nov 11 Andrey Zentavr <zentavr@linet.zp.ua>

case "$1" in
    start)
        /usr/sbin/ngctl mkpeer ipfw: netflow 100 iface0
        /usr/sbin/ngctl name ipfw:100 netflow

        /usr/sbin/ngctl msg netflow: setdlt {iface=0 dlt=12}
        /usr/sbin/ngctl msg netflow: setifindex {iface=0 index=5}

        /usr/sbin/ngctl msg netflow: settimeouts { inactive=30 active=600 }

        /usr/sbin/ngctl mkpeer netflow: ksocket export inet/dgram/udp
        /usr/sbin/ngctl msg netflow:export bind inet/127.0.0.1:8002
        /usr/sbin/ngctl msg netflow:export connect inet/127.0.0.1:8003

        logger "$0 was started"
        ;;
    stop)
        /usr/sbin/ngctl shutdown netflow:
        logger "$0 was stopped"
        ;;
    restart)
        sh $0 stop
        sleep 5
        sh $0 start
        ;;
    *)
        echo ""
        echo "Usage: `basename $0` { start | stop | restart }"
        echo ""
        exit 64
        ;;
esac

[zentavr@gw ~]$ cat /etc/rc.conf | grep ngex
ngexport_enable="YES"



Название: Re: Netflow
Отправлено: blackjack от 27 Октября 2011, 14:48:38
Привет.
Есть три сателита.
Один сливает статистику по netflow.
Два остальных по ng_ipacct.
Это сервера доступа.
Сегодня один из тех, что собирают стату через ng_ipacct, ляг изза отключения электричества на длительное время.
После этого, у тех, у кого стоит "Всегда онлайн" перестали светиться ключики, причем у всех, не только у тех кто висит на упавшем сателите. С остальных двух статистика снимается, трафик есть.
Если в колекторах трафика в админке убираю тот сателит то все работает.

Запрос в ядре вот такой.
Код:
$dbh->do("INSERT INTO dblogin (mid,act,time) SELECT  `users`.`id` ,  '17', UNIX_TIMESTAMP( ) FROM  `users` LEFT JOIN  `$x_traf_tbl` ON  `users`.`id` =  `$x_traf_tbl`.`mid` WHERE  `$x_traf_tbl`.`in` >0 AND  `$x_traf_tbl`.`out` >0 AND  `$x_traf_tbl`.`time` > UNIX_TIMESTAMP( ) -120 AND  `users`.`lstate` >0 GROUP BY users.id");

файл ipacct.pl модифицирован для работы по сети вот так
Код:
$ipacctctl="/usr/bin/ssh -q -l root -p 22 $dserver /usr/local/sbin/ipacctctl";