URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 7646
[ Назад ]

Исходное сообщение
"Как собирать инфу по netflow"

Отправлено cyclon , 15-Окт-08 21:48 
Вот никак не могу решить проблему. Делаю коллектор для сбора статистики по netflow. И естественно идёт огромный поток пакетов от циски. И никак не могу понять как всё это обрабатывать и передавать в ядро биллинга (тут проблема упирается в 100 мбит). Да и какую структуру базы делать. Явно что собирать весь поток не подходит ибо по сети не пройдёт до ядра, вернее потеряется очень много входящего потока пока будет идти передача. Уже перебрал кучу вариантов до которых смог додуматься, но всё равно в тупике. Пока что единственная идея как снизить передачу в ядро, так это агрегировать трафик в течении секунды и потом передавать.

Может всезнающий all поможет решить задачку?

Заранее спасибо!!!


Содержание

Сообщения в этом обсуждении
"Как собирать инфу по netflow"
Отправлено djal , 18-Окт-08 18:01 
Могу предложить только использовать больше 2х машин:
1-я машина: На нее приходит netflow трафик и какая нить программулина пишет все это на диск (здесь лучше пользовать что нибудь типа SAN или NAS). При этом, пишет как есть т.е. не обрабатывает трафик и ничего не агрегирует (хотя можно прикрутить минимальную обработку для удобства парсинга в дальнейшем).

2-я машина на основе собранных данных (надо заметить, что эту машину тоже целесообразно напрямую подключить к хранилищу, куда записывает 1я машина) и заранее прописанных правил агрегирует трафик и эти данные направляет на биллинг. Тут есть куча вариантов, все зависит от того что надо и как хочется. Напр. можно агрегировать по каждому ip адресу за 5 минут а ядро биллинга уже само смотрит какой это пользователь. Можно сразу агрегировать по всем адресам принадлежащим определенному пользователю и т.д.

Что значит "направляет данные на биллинг"? Когда я делал такую систему я просто заливал агрегированные данные в postgresql. При заливке эти данные обрабатывали триггеры и соответсвенно делал сам подсчет средств и т.д.

Причем собранные сырые (не агрегированные) данные остаются на диске и если возникает спорная ситуация с пользователями их можно ему предоставить как док-во )))

Советую присмотреться к flow-tools.

>[оверквотинг удален]
>базы делать. Явно что собирать весь поток не подходит ибо по
>сети не пройдёт до ядра, вернее потеряется очень много входящего потока
>пока будет идти передача. Уже перебрал кучу вариантов до которых смог
>додуматься, но всё равно в тупике. Пока что единственная идея как
>снизить передачу в ядро, так это агрегировать трафик в течении секунды
>и потом передавать.
>
>Может всезнающий all поможет решить задачку?
>
>Заранее спасибо!!!


"Как собирать инфу по netflow"
Отправлено cyclon , 19-Окт-08 11:58 
>Что значит "направляет данные на биллинг"? Когда я делал такую систему я
>просто заливал агрегированные данные в postgresql. При заливке эти данные обрабатывали
>триггеры и соответсвенно делал сам подсчет средств и т.д.

Ну т.е. у меня клиент-сервер, сенсор (клиентская часть) собирающий данные по netflow и непосредственно серверная часть программы, которая стоит там где находится база данных и собственно получает инфу от подобных сенсоров, а затем пишет их в базу.


"Как собирать инфу по netflow"
Отправлено ovax , 27-Окт-08 08:12 
flow tools я бы рекомендовал