Учёт трафика локальной сети с помощью fprobe и flow-tools

()

Очень часто у системных администраторов возникает задача учёта трафика локальной сети. Ниже будет показано как можно решить эту задачу используя flow-сенсор fprobe и утилиты из пакета flow-tools.

Озвучим начальные условия:

  • Локальная сеть с адресным пространством 192.168.2.0/24.
  • Интернет-шлюз под управлением Ubuntu Server 8.10, подключенный к локальной сети интерфейсом eth1 и имеющий на нём адрес 192.168.2.1.
  • Сервер мониторинга, работающий под управлением Debian Lenny. Он имеет адрес 192.168.2.10. На него мы будем собирать логи и на нём же мы будем их обрабатывать.

Первым делом установим fprobe на сервер:

apt-get install fprobe

На вопрос с какого интерфейса снимать трафик нужно ответить "eth1", а на вопрос куда отсылать логи - "192.168.2.10:9999". Порт можно выбрать произвольно - главное чтобы на сервере мониторинга он был свободен. Собственно на этом настройка интернет-шлюза заканчивается, переходим к серверу мониторинга.

Установим flow-tools:

apt-get install flow-tools

Далее приводим файл /etc/flow-tools/flow-capture.conf к виду:

-w /var/log/flow -n 275 0/192.168.2.1/9999

Здесь flow-capture будет принимать netflow с адреса 192.168.2.1 и слушать порту 9999 (если на шлюзе вы указали другой порт назначения - измените соответствующим образом его значение и здесь. Логи будут сохраняться в /var/log/flow. Место их хранения непринципиально. Но если вы выберите другое место - делайте соответствующие поправки во всех дальнейших инструкциях.

Создадим директорию для логов:

mkdir -p /var/log/flow

И перезапустим flow-коллектор:

invoke-rc.d flow-capture restart

На всякий случай убеждаемся что коллектор слушает нужный порт:

netstat -lpnu|grep flow-capture

В случае если всё хорошо - вывод будет выглядеть примерно вот так:

udp        0      0 0.0.0.0:9999            0.0.0.0:*                           19652/flow-capture

Если же коллектор не запустился - внимательно проверьте его настройки.

Через некоторое время в указанной директории начнут собираться логи. Остаётся только написать скрипты для генерации отчётов на основе этих логов. Создадим директорию /root/flows, все дальнейшие действия мы будем производить в ней:

mkdir /root/flows

Создадим файл flow.acl, в котором опишем необходимые нам списки доступа, этот файл потом будет использоваться утилитой flow-filter:

ip access-list standard localnet permit 192.168.2.0 0.0.0.255
ip access-list standard localnet deny any

ip access-list standard internet deny 192.168.2.0 0.0.0.255
ip access-list standard internet permit any

Здесь список localnet описывает адресное пространство локальной сети, а список internet описывает адресное пространство, трафик с которого мы будем считать. Если какие-то адреса нужно внести в "бесплатную зону" - их нужно добавить в список internet с директивой deny (По аналогии с адресным пространством локальной сети).

Так же ненужно забывать что при указании сетей в этом файле нужно использовать инверсные маски. Если вы не очень свободно работаете с такими масками - воспользуйтесь IP-калькулятором.

Следующим шагом создадим файл report.conf, который будет использоваться утилитой flow-report:

stat-report localnet
    type ip-destination-address
    output
	format ascii
	options +header,+xheader,+totals
	fields -flows,-packets,-duration

stat-definition localnet
    report localnet

На этом написание конфигурационных файлов заканчивается и можно переходить к написанию скриптов. Сначала создадим скрипт для генерации ежесуточных отчётов и сохраним под именем stat_daily.sh. Вот его листинг:

#!/bin/sh

# Получаем вчерашнюю дату
RPT_Y=`/bin/date +%Y -d "-1 day"`
RPT_M=`/bin/date +%m -d "-1 day"`
RPT_D=`/bin/date +%d -d "-1 day"`

# Путь для хранения отчётов
RPT_DIR="/var/www/flow-reports/daily"

# Дата отчёта
RPT_DATE=${RPT_Y}-${RPT_M}-${RPT_D}

# Файл с отчётом
RPT_NAME=${RPT_DIR}/${RPT_DATE}.html

# Директория с логами
FLOW_DIR="/var/log/flow"

# Если вдруг директория для отчётов не существует - она будет создана
mkdir -p ${RPT_DIR}

# Создаём шапку отчёта
echo -e "<HTML>\n<HEAD>\n<TITLE>${RPT_DATE}</TITLE>\n</HEAD>\n<BODY>\n<H1>${RPT_DATE}</H1>\n" > ${RPT_NAME}

# Создаём отчёт
#
# Утилита flow-cat "выбрасывает" на стандартный вывод данные из логов
#
# утилита flow-filter выделяет из логов определённые данные.
# С помощью ключа -f указывается файл со списками доступа
# С помощью ключа -S указывается список, описывающий источник трафика
# С помощью ключа -D указывается список, описывающий получателя трафика (нашу локальную сеть)
#
# Утилита flow-report создаёт отчёт, используя один из предопределённых отчётов.
# Файл со список отчётов задаётся с помощью ключа -s, а конкретный отчёт - с помощью ключа -S
#
# Утилита flow-rptfmt форматирует отчёт, полученный с помощью flow-report.
# Ключ -f задаёт формат, а ключ -H отключает вывод заголовка со служебной информацией
/usr/bin/flow-cat ${FLOW_DIR}/${RPT_Y}/${RPT_Y}-${RPT_M}/${RPT_Y}-${RPT_M}-${RPT_D} \
|/usr/bin/flow-filter -f/root/flows/flow.acl -Sinternet -Dlocalnet \
|/usr/bin/flow-report -s /root/flows/report.conf -S localnet \
| /usr/bin/flow-rptfmt -f html -H >> ${RPT_NAME}

# Закрываем HTML-тэги в отчёте
echo -e "</BODY>\n</HTML>\n" >> ${RPT_NAME}

Делаем скрипт исполнимым и добавляем его запуск в cron:

chmod +x stat_daily.sh && echo "20	0	*	*	*	root	/root/flows/stat_daily.sh" >> /etc/cron.d/flow_stat

После этого каждый день в директории /var/www/flow-reports/daily будут складываться отчёты о трафике за предыдущий день. Отчёт будет выглядеть примерно вот так:

2009-02-01

ip-destination-address octets
192.168.2.3 1619973024
192.168.2.2 1954758
192.168.2.10 163242
192.168.2.4 548683

В колонке "ip-destination-address " отображается адрес компьютера в локальной сети, а в колонке "octets" - потреблённый трафик (в байтах).

Так же хорошо бы получать ежемесячные отчёты и удалять старые данные. Для этого создадим скрипт stat_monthly.sh:

#!/bin/sh

# Будем генерировать отчёт за предыдущий месяц
RPT_Y=`/bin/date +%Y -d "-1 month"`
RPT_M=`/bin/date +%m -d "-1 month"`

# Здесь всё практически тоже, что и в предыдущем скрипте
RPT_DIR="/var/www/flow-reports/monthly"

RPT_DATE=${RPT_Y}-${RPT_M}

RPT_NAME=${RPT_DIR}/${RPT_DATE}.html

FLOW_DIR="/var/log/flow"

# Дополнительная переменная - сюда будем архивировать старые логи
FLOW_DIR_OLD=${FLOW_DIR}/old

# Как и в предыдущем скрипте генерируем отчёт
mkdir -p ${RPT_DIR}

echo -e "<HTML>\n<HEAD>\n<TITLE>${RPT_DATE}</TITLE>\n</HEAD>\n<BODY>\n<H1>${RPT_DATE}</H1>\n" > ${RPT_NAME}

/usr/bin/flow-cat ${FLOW_DIR}/${RPT_Y}/${RPT_Y}-${RPT_M} \
|/usr/bin/flow-filter -f/root/flows/flow.acl -Sinternet -Dlocalnet \
|/usr/bin/flow-report -s /root/flows/report.conf -S localnet \
| /usr/bin/flow-rptfmt -f html -H >> ${RPT_NAME}

echo -e "</BODY>\n</HTML>\n" >> ${RPT_NAME}

# Переходим к удалению старых логов
# На всякий случай пересоздаём хранилище этих логов
mkdir -p ${FLOW_DIR_OLD}

# Пеерходим в директорию с логами за прошлый месяц
cd ${FLOW_DIR}/${RPT_Y}/${RPT_Y}-${RPT_M}

# Архивируем логи
/bin/tar -cjf ${FLOW_DIR_OLD}/${RPT_Y}-${RPT_M}.tar.bz2 ./

# Удаляем старые логи
cd ${FLOW_DIR}/${RPT_Y}
rm -rf ${FLOW_DIR}/${RPT_Y}/${RPT_Y}-${RPT_M}

Делаем скрипт исполняемым и добавляем его в cron:

chmod +x stat_monthly.sh && echo "30	0	1	*	*	root	/root/flows/stat_monthly.sh" >> /etc/cron.d/flow_stat

На этом всё. В принципе учёт трафика можно настроить и используя всего один сервер - для этого flow-сенсор должен отсылать данные на адрес 127.0.0.1, а коллектор должен слушать на этом адресе.

Для доступа к отчётам можно поднять веб-сервер, или настроить отправку этих отчётов на e-mail. Например для отправки ежемесячных отчётов нужно добавить в скрипт stat_monthly.sh строку:

/usr/bin/uencode ${RPT_NAME} `/usr/bin/basename ${RPT_NAME}` | /usr/bin/mail -s "Traf Report" admin@some.host

На этом всё. Приятной работы!

Ключевые слова: fbrobe, flow-tools, flow.acl, report.conf, статистика.

Подписаться на обновления: RSS-лента Канал в TamTam Telegram канал Канал в ICQ

Комментарии:

morbo 2009-02-02 16:02:28 (#)

Зачётно. Сам пользовался fprobe + flow-tools для создания статистики по трафику. Экономистам нужно было сделать срезы по подсетям соседних провайдеров, чтобы просчитать экономическую выгоду от создания пиринговых подключений.

Вместо fprobe правда использовался маршрутизатор cisco, fprobe использовался только на офисном Linux-шлюзе. flow-tools (а точнее flow-capture) использовал в качестве системы пред-биллинга. flow-capture ловил потоки и складывал в файлы. Специальная программа запускалась в фоновом режиме для загрузки информации из файлов в базу данных биллинговой системы. Главный плюс такого решения был в том, что даже при упавшей системе биллинга статистика всё равно собиралась (причём на два сервера одновременно - один использовался в качестве хранилища резервных копий отловленных потоков). Несколько раз такая система выручала.

Вообще flow-tools - очень фичастый пакет. Жаль, что о нём на русском практически никакой документации нет.

Stingray 2009-02-03 12:42:49 (#)

Ну так в чём проблема. Пишите документацию на русском, а я её на flow-tools.googlecode.com добавлю.

Lisenka 2009-02-04 01:07:58 (#)

а можно сразу в базу! )
аля вот так... время 30 минут задано... в кроне стоит 5 минут, ключи на 5 полей.. думаю выбрать не трудно.
фильтры на ваш вкус )

for i in $( /usr/bin/find /var/log/flow/ -name ft* -mmin -30 ); do /usr/bin/flow-cat $i | /usr/bin/flow-nfilter -Foutputtraff -f /home/log/filter.acl | /usr/bin/flow-export -f3 -mUNIX_SECS,DOCTETS,FIRST,LAST,SRCADDR,DSTADDR,SRCPORT,DSTPORT,PROT -u "user:password:host:port:base:table" ; done

если делать чере find .... flow-cat {} /; лезет какие-то левые значения...

В общем пользуйтесь, может кому сгодиться!

morbo 2009-02-04 07:55:40 (#)

2 Stingray

Потихоньку перевожу на русский язык нужные мне man-страницы. То, что перевёл, можно попытаться увидеть здесь: http://stupin.homelinux.org/dokuwiki/doku.php?id=start&idx=man (это домашний сервер и внешний канал часто бывает сильно загружен).

В планах перевести man-страницы pppoe-wrapper, slattach, chat, man-страницы пакета freeradius, man-ы по настройке сетевых интерфейсов в Debian (в т.ч. vlan и сетевые мосты). Потом возможно доберусь и до flow-tools.

Llama 2009-02-05 22:55:33 (#)

Господа, а чем это все визулизировать во времени близком к реальному (с задержкой порядка минуты) ?
Я использую flowscan + набо корявых костылей для rrd которыми рисуются графики. Генерация графиков 30m,4h,12h,7d,30d каждые 5 минут на 25 подсеть сильно грузит машинку :(
Надо предоставить директору юзабельный интерфейс для проведения неотложных массовых расстрелов. :)

MooSE 2009-02-05 23:00:46 (#)

А тебе надо по каждому отдельному пользователю график рисовать? Может проще загрузку интерфейса рисовать, и если она за рамками приличий - тогда уже смотреть кто больше всех жрёт?

Rodger 2009-02-09 10:09:52 (#)

Llama
А чем тебе мой метод запихования в базу не нравится) в уж прикрутить там к нему какой-нибудь генератор на том же php я думаю не так сложно, у тебя есть timestamp за определнный промежуток вермени ты можешь посмотреть и активновность пользователя..

У меня вопрос, до какой степени надежен fprobe в плане потери пакетов... пишут что при большой активности он начинает терять пакеты, а как следствие мы учитываем не весь трафик.

MooSE 2009-02-09 13:12:36 (#)

> У меня вопрос, до какой степени надежен fprobe в плане потери пакетов... пишут что при большой активности он начинает терять пакеты, а как следствие мы учитываем не весь трафик.

Есть у него какой-то хитрый ключик на этот случай. Но сейчас навскидку не скажу.

Да и к тому же то что я тут писал нацелено на небольшие сети, где трафика не так много. У меня при трафике порядка трёх-шести гигабайт в сутки проблем не возникает....

Lisenka 2009-02-09 20:46:01 (#)

MooSE
спасибо за ответ, если позже вспомнишь ключик, то буду премного благодарен :)

P.S. Данный подсчет считаю пока для себя оптимальным.. как подрастут каналы будем думать что делать ))))) особенно связка с flow-export по времени. )))))) Есть где разгулятся мысли и творчеству )

MooSE 2009-02-09 23:12:21 (#)

Вобщем рекоммендуют использовать ключ "-p", про который в man-странице написано:

Don’t put the interface into promiscuous mode. Note that even if this option is used, the interface might be in promiscuous mode for some other reason.

ХЗ как на самом деле будет. Но можешь попробовать:)

А так - есть ведь и другие flow-сенсоры. Просто fprobe на Debian based системах заводится уж больно легко, потому его и выбрал...

Lisenka 2009-02-10 00:26:52 (#)

Да это точно..... только вот не нашел еще как завести fprobe сенсор на двух интерфейсах. fprobe-ulog зевелся на двух, ipcad тоже как бы нормально на двух правда ставил из деб пакетов. Ладно будем искать ) хотелось еще внешний интерфейс поглядеть что там с ним ))) кто да что туда ходит )))))) ну да ладно )

MooSE 2009-02-10 08:41:51 (#)

Штатными средствами Debian он заводится только на одном. В конечном итоге Debian запускает его командой:
/usr/sbin/fprobe -ieth1 -fip 192.168.2.10:9999


Ничто не мешает тебе самому запустить ещё одну копию примерно такой командой:
/usr/sbin/fprobe -ieth0 -fip 192.168.2.10:9998

Rodger 2009-02-10 15:43:49 (#)

поставил ipcad как бы берет статистику с внешки и внутренней ))) полет нормальный.. ухожу в написание всяких веб морд и шелов )

MooSE 2009-02-11 00:42:25 (#)

ipcad вроде как ip accounting собирает?

я на последней работе с этим форматом столько секаса поимел (региональный филиал большого оператора связи) разочаровался в нём совсем....

Rodger 2009-02-12 08:29:53 (#)

ну и сам netflow
если в конфиг вставить что то типа этого. )))

netflow export destination 127.0.0.1 555;
netflow export version 5; # NetFlow export format version {1|5}
netflow timeout active 30; # Timeout when flow is active, in minutes
netflow timeout inactive 15; # Flow inactivity timeout, in seconds

MooSE 2009-02-12 09:09:07 (#)

Хм... Не знал. Надо будет поиметь это ввиду:)

Rodger 2009-02-12 16:10:38 (#)

если кидать в колектор то еще показывает интрефейс... что довольно удобно, можно считать на внешке и на внутреннем )))

MooSE 2009-02-13 00:55:01 (#)

Тогда Если все интерфейсы в кучу то фильтровать наверное всё-таки сложнее:)

Rodger 2009-02-13 09:22:59 (#)

я сначала flow filter ну и потом уже средствами mysql.

MooSE 2009-02-13 11:35:30 (#)

1. Как ты в mysql пихаешь?
2. Ты по IfIndex разбираешь интерфейсы?

Rodger 2009-02-16 09:37:06 (#)

я приводил выше как я пихаю..
повторюсь еще раз..
итак дано что
1. flow у нас пишется в /var/log/flow/
2. Фильтры лежат в /home/log/filter.acl
3. База в мускуле вида

CREATE TABLE IF NOT EXISTS `raw` (
`unix_secs` int(11) unsigned NOT NULL default '0',
`unix_nsecs` int(11) unsigned NOT NULL default '0',
`sysuptime` int(11) unsigned NOT NULL default '0',
`exaddr` varchar(45) collate utf8_unicode_ci NOT NULL default '0',
`dflows` int(11) unsigned NOT NULL default '0',
`dpkts` int(11) unsigned NOT NULL default '0',
`doctets` int(11) unsigned NOT NULL default '0',
`first` int(11) unsigned NOT NULL default '0',
`last` int(11) unsigned NOT NULL default '0',
`engine_type` tinyint(3) unsigned NOT NULL default '0',
`engine_id` tinyint(3) unsigned NOT NULL default '0',
`srcaddr` varchar(45) collate utf8_unicode_ci NOT NULL default '0',
`dstaddr` varchar(45) collate utf8_unicode_ci NOT NULL default '0',
`nexthop` varchar(45) collate utf8_unicode_ci NOT NULL default '0',
`input` smallint(5) unsigned NOT NULL default '0',
`output` smallint(5) unsigned NOT NULL default '0',
`srcport` smallint(5) unsigned NOT NULL default '0',
`dstport` smallint(5) unsigned NOT NULL default '0',
`prot` tinyint(3) unsigned NOT NULL default '0',
`tos` tinyint(3) unsigned NOT NULL default '0',
`tcp_flags` tinyint(3) unsigned NOT NULL default '0',
`src_mask` tinyint(3) unsigned NOT NULL default '0',
`dst_mask` tinyint(3) unsigned NOT NULL default '0',
`flag` tinyint(1) unsigned NOT NULL default '0',
PRIMARY KEY (`unix_secs`,`srcaddr`,`dstaddr`,`srcport`,`dstport`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

далее пишем шеловский файл и пихаем его в крон, в файлике указываем какое кол-во файлов (от текущего минус 30 минут в моем примере) по времени отбираем.
в базу пихается именно /usr/bin/flow-export

for i in $( /usr/bin/find /var/log/flow/ -name ft* -mmin -30 ); do /usr/bin/flow-cat $i | /usr/bin/flow-nfilter -Foutputtraff -f /home/log/filter.acl | /usr/bin/flow-export -f3 -mUNIX_SECS,DOCTETS,FIRST,LAST,SRCADDR,DSTADDR,SRCPORT,DSTPORT,PROT -u "user:password:host:port:base:table" ; done

что происходит, крон можно запускать хоть 1 раз в минуту, дубли не попадают, т.к. каждая запись получается уникальная.
а интерфейсы я разруливаю
по ключевому полю input ()
там 1 и 2-й интерфейсы.. я думаю что опытным путем можно поглядеть какой интерфейс. )

Да если кидать в шеловском файлике не через цикл, то в базу лезут левые значения (типа timestamp 00000000), даже не знаю почему, в начале была такая конструкция find .... flow-cat {} /;
потом заметил и переписал через цикл, пока все в норме!

MooSE 2009-02-16 14:18:21 (#)

Понятно:) Буду знать:)

pavlo 2009-03-07 13:39:23 (#)

хай, у меня не работает, после выполнения скрипт stat_daily.sh:
flow-cat: open(/var/log/flow/2009/2009-03/2009-03-06): No such file or directory
flow-filter: ftiheader_read(): Warning, short read while loading header top.
flow-filter: ftiheader_read(): failed
flow-filter: ftio_init(): failed
flow-report: ftiheader_read(): Warning, short read while loading header top.
flow-report: ftiheader_read(): failed
flow-report: ftio_init(): failed

MooSE 2009-03-08 03:08:00 (#)

Ответ вот в этой строчке:

flow-cat: open(/var/log/flow/2009/2009-03/2009-03-06): No such file or directory


Оно у тебя куда логи валит? Судя по тексту ошибки логов у тебя нет, там где скрипт ожидает их увидеть

Rodger 2009-03-19 12:25:47 (#)

Я приводил пример для своих каталогов, соответственно, если вы кладете логи в другой каталог, то надо поправить. )

Qilgamesh 2009-03-23 06:12:59 (#)

> Для доступа к отчётам можно поднять веб-сервер
Подскажите какой вэб-сервер удобнее всего настроить для работы с логами flow?

MooSE 2009-03-23 11:15:40 (#)


Подскажите какой вэб-сервер удобнее всего настроить для работы с логами flow?


Ну я уже несколько раз пиарил лёгкий и быстрый thttpd

Думаю что и здесь его будет вполне достаточно.

Mur1akatam 2009-03-23 19:06:03 (#)

Добрый день, очень полезная статья, прикрутил к кубунте и все заработало с 1го раза ;)

Возник сейчас только 1 вопросец: похоже, что статистика считается только по входящему траффику. Есть ли возможность считать так же и исходящий без особых танцев с бубнами?

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

MooSE 2009-03-23 20:21:35 (#)

Есть ли возможность считать так же и исходящий без особых танцев с бубнами?

Конечно. Ты описания фильтров видел? Впринципе пишешь обратные фильтры пи немного меняешь report.conf:
stat-report localnet
    type ip-source-address
    output
	format ascii
	options +header,+xheader,+totals
	fields -flows,-packets,-duration

stat-definition localnet
    report localnet



И наступает тебе счастье:)

Mur1akatam 2009-03-23 23:02:17 (#)

спасибо! будем поиграться :)

Qilgamesh 2009-03-25 02:04:26 (#)

Спасибо, всё настроил.
Подскажите, пожалуйста, как сделать так, что отчёт формировался не каждый день, а каждый час.

Qilgamesh 2009-03-25 08:02:17 (#)

Всё, разобрался как и что. Использую crontab.

Lisenka 2009-04-21 12:23:35 (#)

Помогите из файла за 1 день просуммировать трафик по 5 минут.

MooSE 2009-04-21 16:35:07 (#)


Помогите из файла за 1 день просуммировать трафик по 5 минут.


Ты хочешь за один день трафик посчитать или получить отдельно цифры за каждые пять минут?

Я не совсем понял задачу...

Lisenka 2009-04-21 17:09:31 (#)

Да хочу отдельно цифры за каждые 5 минут

MooSE 2009-04-22 09:12:03 (#)

Ну так по одному файлу и перебирай. Для этого используй конструкцию find ... -exec ... .


Вопрос только зачем тебе это нужно? Можешь описать всю задачу? Возможно есть более простое решение.

Lisenka 2009-04-22 12:22:43 (#)

Дело в том что я получаю большой raw файл за 1 день.
Мне необходимо просто проссымировать траффик по 5 минут.
т.е. получить список за каждыые 5 минут. Как это делается средствами flow-tools не могу понять.
А потом залить все в базу агрегированные данные.

MooSE 2009-04-22 13:43:29 (#)


Дело в том что я получаю большой raw файл за 1 день.
Мне необходимо просто проссымировать траффик по 5 минут.
т.е. получить список за каждыые 5 минут. Как это делается средствами flow-tools не могу понять.
А потом залить все в базу агрегированные данные.


Чуть выше уже был ответ на этот вопрос.

NightCon 2009-05-06 10:04:41 (#)

Файлы отчетов стали пустыми. Вроде бы ничего в настройках не менял. При выполнении цепочки команд из скрипта до flow-report в папке с логами выдается такая вот инфа:

# --- ---- ---- Report Information --- --- ---
# build-version: flow-tools 0.68
# name: localnet
# type: ip-destination-address
# options: +header,+xheader,+totals
# ip-dst-addr-type: address
# fields: +key,+octets,+other
# records: 0
# first-flow: 4294967295 Thu Jan 1 04:59:59 1970
# last-flow: 0 Thu Jan 1 05:00:00 1970
# now: 1241587907 Wed May 6 11:31:47 2009
#
# mode: streaming
# compress: off
# byte order: little
# stream version: 3
# export version: 5
#
# rec1: records,ignores,flows,octets,packets,duration
0,0,0,0,0,0
# recn: ip-destination-address*,octets

Есть подозрение, что это началось после коррекции времени

MooSE 2009-05-06 13:12:02 (#)

А как получилось что у тебя записи имеют вот такое время начала и конца:

# first-flow: 4294967295 Thu Jan 1 04:59:59 1970
# last-flow: 0 Thu Jan 1 05:00:00 1970

?

NightCon 2009-05-06 13:58:16 (#)

Вот и я не могу понять. Имя файла лога такого типа:
ft-v05.2009-04-28.000001+0600
Дата изменения - 28 апреля.

MooSE 2009-05-06 14:01:14 (#)

А новые логи нормально падают? Коллектор и сенсор перезапускать пробовал?

NightCon 2009-05-06 14:17:14 (#)

Логи нормально падают. Перегружал всю систему.
Flow-cat ./|flow-print в этих папках нормально отображает логи. Т.е. ситуация такова: до 24 апреля все нормально считалось, а после - пустые таблицы. 24 апреля никто систему не трогал.

NightCon 2009-05-06 14:52:28 (#)

Разобрался сам. Как всегда все прозаично - по умолчанию при загрузке fprobe слушал не тот интерфейс. Поправил - заработало. Теперь вопрос - можно ли посчитать трафик, который считался с внешнего интерфейса?

MooSE 2009-05-06 16:04:16 (#)

по идее да. написанием соответствующих фильтров.

pegorov 2009-05-22 22:55:28 (#)

Вот такой вопрос: есть сетка 172.16.0.1/24. На сервере 2 сетевушки: eth0 смотрит в интернеты, eth1 (172.16.0.1) смотрит в локалку. Можно ли поднять шлюз и сервер мониторинга на одном сервере? Что тогда в настройках указывать? И еще попутно вопрос: если пользователи в инет ходят через сервер, на котором нат поднят (к примеру, iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE), эта система работать будет?

MooSE 2009-05-23 00:52:01 (#)

eth0 смотрит в интернеты, eth1 (172.16.0.1) смотрит в локалку.

сенсор здесь надо поднимать на eth1.

Если пользователи в инет ходят через сервер, на котором нат поднят (к примеру, iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE), эта система работать будет?

Будет. У меня так и работает. Но сенсор должен слуать на интерфейсе, который смотрит в локалку (хотя так должно быть впринципе в любом случае)

Можно ли поднять шлюз и сервер мониторинга на одном сервере?

Да. Можно. Сенсор должен плевать данные на 127.0.0.1 а коллектор принимать их с 127.0.0.1.

ipx 2009-05-31 22:59:40 (#)

to Rodger

а можно ли взглянуть на конфигурационный файл для flow-nfilter в случае с записью в бд?

skif 2009-06-02 15:36:15 (#)

эхх вебмордочку бы для управления всего этого:)

MooSE 2009-06-02 16:32:03 (#)


эхх вебмордочку бы для управления всего этого:)


что именно? flow.acl генерить? так легко! адрес назвать, куда высылать пиво?:)

skif 2009-06-02 16:38:13 (#)

ну я чуть порасширенней ввиду имел, чтобы не скрипты править, а прям с мордочки ну и flow.acl тоже супер:)
neoskif (собака) gmail.com :)

MooSE 2009-06-03 01:27:38 (#)

ну не нуно мне твоё мыло:) я могу тебе морду написать в обмен на пиво:) у меня когда-то давно была мысль сженить описанное тут решение вот с этим

skif 2009-06-03 09:44:14 (#)

оо это дело сколько надо пива?:))
с pppd женить может и надо:) но для начала бы то что тут написано совместить :) а остальное уже детали как мне кажется:)

MooSE 2009-06-03 13:09:50 (#)

Я просто пока слабо представляю для чего тут нужна веб-морда. Статистику ты итак через веб смотришь. А для чего ещё оно тут надо-то?

Rodger 2009-06-10 16:43:33 (#)

to ipx

в моем посте все же есть... вы просто не внимательно смотрите! )))

вот это и пихает в базу
for i in $( /usr/bin/find /var/log/flow/ -name ft* -mmin -30 ); do /usr/bin/flow-cat $i | /usr/bin/flow-nfilter -Foutputtraff -f /home/log/filter.acl | /usr/bin/flow-export -f3 -mUNIX_SECS,DOCTETS,FIRST,LAST,SRCADDR,DSTADDR,SRCPORT,DSTPORT,PROT -u "user:password:host:port:base:table" ; done


по поводу простой веб морды смысла нету.. имхо.. или уже писать все типа самописный билинг или нафиг нужно.. идеи конечно есть с этим.. но времени катастрофически не хватает )

akbyn 2009-06-11 02:16:55 (#)

очень хорошая статья!!!
И, главное, вовремя
Большое спасибо автору и всем комментаторам!
Но уж очень горячая для меня тема. А я не шибко большой спец. Прошу не пинать. Прошу дать ответ на мой вопрос:
Надо просто посчитать исходящий/входящий трафик только на внешнем интерфейсе. Как правильно написать правила?

MooSE 2009-06-11 11:29:32 (#)

Надо просто посчитать исходящий/входящий трафик только на внешнем интерфейсе. Как правильно написать правила?

Подними сенсор на внешнем интерфейсе а в фильтрах описывай только внешний адрес

Anonymous 2009-09-24 00:52:27 (#)

Парни, вы по ходу здорово влезли в пакет flow-tools, не подскажете, можно ли при помощи утилит этого пакета получить отчет по трафику в виде :
-dstaddr
-srcaddr
-dstport
-srcport
-количество байт входящего трафика
-количество байт ИСХОДЯЩЕГО трафика

То есть нужно совместить входящий и исходящий трафик в пределах пар хост:порт. Сейчас я это смог сделать в базе, отдельный репорт с фильтрацией по своим адресам на входящий кладу в первую таблицу, добавляю пустое поле cout, отдельный репорт так же с фильтрацией по исходящему трафику кладу во вторую таблицу, потом на первую уникальный индекс на поля адресов и портов и запрос на вставку всех строк второй таблицы с перекрестным изменением src/dst и в конце:
ON DUPLICATE KEY UPDATE zexport.cout=zexportout.doctets

но сейчас около 80% времени расчетов уходит на вот это вот слияние. Может есть способ на более низком уровне это сделать?

MooSE 2009-09-24 16:29:02 (#)

могу только отослать к чтению документации. у самого никто таких задач не было...

Anonymous 2009-09-24 17:13:30 (#)

Документацию читал, она довольно тяжело написана. Я так понял по документации, что нельзя такого сделать средствами пакета, но уверенности нет, потому что вроде бы задача типичная для биллинга. У нас в сетях до сих пор бывает требуют оплату преобладающего трафика, да и хранить в таком виде трафик намного экономнее.

Anonymous 2009-09-28 03:12:32 (#)

Может кому будет полезно, при больших объемах трафика (у меня за 5 минут 100 метровый файл накапливается, провайдер не последнего масштаба) flow-export совершенно бесполезен, он загружал этот файл в базу 3 часа. Посмотрел запросы, а он там фигачит инсертами, понятно почему так долго. Если сразу готовить в нужной детализации репорт через flow-report и грузить его через файл или через фифо в мускуль при помощи mysqlimport или команды LOAD DATA INFILE (что более удобно и гибко), то это занимает несколько секунд.
Вопрос по слиянию входящего и исходящего трафика остается открытым.

Anonymous 2010-03-14 19:26:32 (#)

Реальное тебе спасибо, автор.
Всех благ!

Anonymous 2010-04-24 16:17:44 (#)

Огромное спасибо за статью!

Знает ли кто-нибудь (может быть автор), можно ли указать, чтобы flow-report выводил не октетами, а например мегабайтами? Изучал man flow-report, но ничего такого не нашёл.

MooSE 2010-04-25 09:52:56 (#)

Знает ли кто-нибудь (может быть автор), можно ли указать, чтобы flow-report выводил не октетами, а например мегабайтами? Изучал man flow-report, но ничего такого не нашёл.

Я так думаю что для этого можно написать несложный скрипт на Perl.

Anonymous 2010-10-05 15:02:54 (#)

для учена на нескольких интерфейсах используется ключ -fany, т.е. любой интерфейс или -f"vlan500&&eth3" ну и т.д.
насчет слушать несколько интерфейсов, имхо, правильнее было бы запускатьнесколько сенсоров и под каждый свой коллектор, тогда и разгребать будет проще

Anonymous 2010-10-05 15:05:55 (#)

прошу прощения, совместно использовать -iany - все интерфейсы, а потом фильтром -f"vlan500&&eth3" выбрать нужные

Anonymous 2010-11-01 10:54:27 (#)

Добрый день!
Спасибо за статью, но у меня что-то не работает.

У меня:
1. eth0 смотрит в интернет
2. eth1 смотрит в локалку. Сервер 192.168.0.100, он же и шлюз и он же должен собирать инфу.
3. -w /var/log/flow -n 275 0/192.168.0.100/9999 указал
и логи у меня не собираются, следовательно и дальше ничего происходит. Подскажите пожалуйста, что сделал не так....

MooSE 2010-11-01 23:35:32 (#)

1. eth0 смотрит в интернет
2. eth1 смотрит в локалку. Сервер 192.168.0.100, он же и шлюз и он же должен собирать инфу.
3. -w /var/log/flow -n 275 0/192.168.0.100/9999 указал
и логи у меня не собираются, следовательно и дальше ничего происходит. Подскажите пожалуйста, что сделал не так....


А у тебя коллектор и сенсор на одном сервере или на разных? Если на одном то везде используй 127.0.0.1

Anonymous 2010-11-02 08:32:50 (#)

1. eth0 смотрит в интернет
2. eth1 смотрит в локалку. Сервер 192.168.0.100, он же и шлюз и он же должен собирать инфу.
3. -w /var/log/flow -n 275 0/192.168.0.100/9999 указал
и логи у меня не собираются, следовательно и дальше ничего происходит. Подскажите пожалуйста, что сделал не так....


А у тебя коллектор и сенсор на одном сервере или на разных? Если на одном то везде используй 127.0.0.1


Спасибо за ответ.
Я нашел другое решение. Ну в принципе тоже самое, но с другой стороны :) Я указал и опять таки 192.168.0.100, но порт использовал другой. Ссори, что не внимательно читал инструкцию, не проверил, что порт закрыт. Использовал незанятый и открытый и все стало работать.

Пожелания всем внимательнее читать инструкцию :)

Anonymous 2010-11-02 10:07:26 (#)

Логи собираются, но обработчик логов не создает папку для отчета, и вообще отчета нет. И ошибок тоже никаких нет О_о

MooSE 2010-11-02 11:06:20 (#)

Логи собираются, но обработчик логов не создает папку для отчета, и вообще отчета нет. И ошибок тоже никаких нет О_о

А если руками папку создать? и вообще руками выполнить всю цепочку из flow-* утилит?

Anonymous 2010-11-04 23:32:05 (#)

MooSE А есть более продвинутый веб к fprobe ?
MooSE У меня часть клиентов имееют белый ip с proxy_apr как их посчитать
MooSE Спасибо за сайт!

MooSE 2010-11-04 23:49:06 (#)

MooSE А есть более продвинутый веб к fprobe ?
Ой.. А вот хз:) Тут лучше у гугла спросить. Я свой велосипед построил и счастлив. Вроде как netams более продвинутый. Но это уже полноценный биллинг.

MooSE У меня часть клиентов имееют белый ip с proxy_apr как их посчитать
Кхм... Творческий вопрос. Самому интересно. Опиши подробнее как они подключаются. Не думаю что очень сложно.

MooSE Спасибо за сайт!
Рад что он тебе понравился:)

Anonymous 2010-11-05 00:06:05 (#)

1 Белый ip unixforum.org/index.php?showtopic=118633
Все работает, у клиента белый ip.
2 Веб-Морда http://www.opennet.ru/tips/info/1647.shtml
Может попробовать заменит ipcad на fprobe ?
3 Давно уже читаю, я тебе как то яндекс.моней кинул, давно это было... Огромное спасибо что ответил.

MooSE 2010-11-05 12:57:36 (#)

1 Белый ip unixforum.org/index.php?showtopic=118633
Все работает, у клиента белый ip.


Хе. Так у тебя все клиенты к одному и тому же линку в итоге подключены? Тогда просто впиши их в ACL для flow-filter. По идее поможетю

2 Веб-Морда http://www.opennet.ru/tips/info/1647.shtml
Может попробовать заменит ipcad на fprobe ?

Честно говоря не знаю. Очень хочется посмотреть на то что там получилось в репортах. Не уверен что по такому логу те же sarg или webalizer что-то внятное смогут сгенерить. Вобщем надо посмотреть:)

3 Давно уже читаю, я тебе как то яндекс.моней кинул, давно это было... Огромное спасибо что ответил.
Спасибо:) А отвечать я стараюсь всем кто интересные и адекватные вопросы задаёт. Сам из этого для себя пользу извлекаю в виде новых знаний, полученных в результате обсуждений.

Anonymous 2010-11-05 17:37:11 (#)

Пример статистики http://lightsquid.sourceforge.net/demo18/index.cgi?year=2009&month=08

Очень удобная на мой взгляд, показывает кто куда сколько.
От fprobe нужно передать в скрипте такие параметры как время/объём/ip клиента/ip ресурса.

У тебя есть skype ?

MooSE 2010-11-05 17:51:39 (#)

Пример статистики http://lightsquid.sourceforge.net/demo18/index.cgi?year=2009&month=08

Это именно по описанной методике полученный отчёт? По-моему это со сквида. По IP там не так информативно ИМХО будет.

У тебя есть skype ?
Скайп-то есть.. Только он запущен на домашней машине всегда, а дома я не очень много времени провожу. Если надо связаться - лучше использовать что-то из указанного у меня в профиле. Предпочитюа Jabber, на худой конец ICQ.

Anonymous 2010-11-15 10:59:31 (#)

А возможно ли flow создать лог файл в формате squid?

MooSE 2010-11-15 12:56:04 (#)

А возможно ли flow создать лог файл в формате squid?
А зачем? ИМХО это извращение. Хотя никто и не запрещает тебе написать такой парсер. По идее там совсем чуть-чуть работы. Если надо - я и сам тебе напишу на определённых условиях:)

Anonymous 2011-01-25 12:44:13 (#)

А возможно ли flow создать лог файл в формате squid?
А зачем? ИМХО это извращение. Хотя никто и не запрещает тебе написать такой парсер. По идее там совсем чуть-чуть работы. Если надо - я и сам тебе напишу на определённых условиях:)

Хотелось бы получить отчет, например, как у LightSquid. Очень надо, на каких условиях можешь написать?

MooSE 2011-01-25 23:46:57 (#)

Хотелось бы получить отчет, например, как у LightSquid. Очень надо, на каких условиях можешь написать?

Ну на каких?:) За денюжку конечно. И прошу понимать что netflow не содержит данных о домене. То есть статистика будет только по IP. Оно тебе надо?

Anonymous 2011-03-31 04:09:01 (#)

А можно мониторить трафик, который использует сам шлюз?
Я поставил себе эту считалку на шлюз, но мой комп и сам ходит в инет, например, за обновами. И вот хотелось бы узнать, как посчитать трафик и самого шлюза...

MooSE 2011-03-31 08:42:35 (#)

А можно мониторить трафик, который использует сам шлюз?
Я поставил себе эту считалку на шлюз, но мой комп и сам ходит в инет, например, за обновами. И вот хотелось бы узнать, как посчитать трафик и самого шлюза...


никак. если только считать на внещнем интерфейсе и потом вычитать трафик локалки. тут кстати вполне хватит vnstat.

Anonymous 2011-04-12 04:51:41 (#)

А можно сделать так, чтобы выводился не только внешний трафик, но ещё и пиринговый. Например, в файле flow.acl я указываю

ip-access list standart localnet ***
ip-access list standart peering ***
ip-access list standart internet ***

И соответственно из правил internet убираю localnet и peering. Как сделать, чтобы запускаемый скрипт отображал октеты не только интернета, но и пиринга в отдельном столбце???

MooSE 2011-04-12 12:10:51 (#)

Как сделать, чтобы запускаемый скрипт отображал октеты не только интернета, но и пиринга в отдельном столбце???

Думать головой:) Тут за пять минут скрипт написать не получится. Подсказка: генерить отдельные репорты и скрипт, который будет эти репорты мержить.

reggae 2011-04-15 04:03:25 (#)

а я ещё затолкал в файл report.conf строку "sort +octets" теперь радуюсь =)
при этом происходит автоматическая сортировка по количеству байт (по убыванию)

Javlon 2011-07-01 09:48:22 (#)

После этого каждый день в директории /var/www/flow-reports/daily будут складываться отчёты о трафике за предыдущий день. Отчёт будет выглядеть примерно вот так:


В скрипте сказано что если папки нету он сам создаст
Этой папки уже 2 ые сутки нету.
В чём я мог ошибится помогите плиз
И как просматривать статистику через веб возможно ли это?

MooSE 2011-07-03 18:52:30 (#)

В скрипте сказано что если папки нету он сам создаст
Этой папки уже 2 ые сутки нету.
В чём я мог ошибится помогите плиз


А что в логах крона?


И как просматривать статистику через веб возможно ли это?


Еле распарсил. Пиши грамотнее. В конце статьи есть такие строки:


Для доступа к отчётам можно поднять веб-сервер, или настроить отправку этих отчётов на e-mail.


Что как бы указывает направление для поиска.

Javlon 2011-07-29 20:44:26 (#)

Цитата:

Знает ли кто-нибудь (может быть автор), можно ли указать, чтобы flow-report выводил не октетами, а например мегабайтами? Изучал man flow-report, но ничего такого не нашёл.


Я так думаю что для этого можно написать несложный скрипт на Perl.

Пожалуйста !! Дайте скрипт для отображения МБ а не октетов.
Заранее благодарю..

MooSE 2011-07-30 04:01:49 (#)

Цитата:
Пожалуйста !! Дайте скрипт для отображения МБ а не октетов.
Заранее благодарю..


А пиво будет?:)

Anonymous 2011-08-08 09:01:52 (#)

Цитата:
Пожалуйста !! Дайте скрипт для отображения МБ а не октетов.
Заранее благодарю..


А пиво будет?:)


Будет пиво!!!!
Дайте скрипт плз!!

MooSE 2011-08-11 04:28:38 (#)

Будет пиво!!!!
Дайте скрипт плз!!


Вот:

#!/usr/bin/perl

use strict;
use warnings;
use diagnostics;

while (my $line = <>) {
    if ($line =~ m{<td> (\d+) </td>}) {
        my $size = $1;
        if ($size > 1024*1024*1024) {
            $size = sprintf("%.02f GB", $size / (1024*1024*1024));
        }
        elsif ($size > 1024*1024) {
            $size = sprintf("%.02f MB", $size / (1024*1024));
        }
        elsif ($size > 1024) {
            $size = sprintf("%.02f KB", $size / 1024);
        }
        else {
            $size = $size . ' B';
        }
        print "<td>$size</td>\n";
    }
    else {
        print $line;
    }
}


Где моё пиво?:)

Anonymous 2011-09-13 18:35:39 (#)

А как этот скрипт применить?
Как переделать stat_daily.sh и stat_monthly.sh скрипты?

Спасибо

MooSE 2011-09-14 11:17:45 (#)

А как этот скрипт применить?
Как переделать stat_daily.sh и stat_monthly.sh скрипты?

Спасибо


Не вижу проблемы:) Скрипт читает STDIN и пишет в STDOUT. Потому надо просто пропустить через него вывод flow-rptfmt. Я сделал примерно так:
Было:
|/usr/bin/flow-rptfmt -f html -H  >> ${RPT_NAME}


Стало:
|/usr/bin/flow-rptfmt -f html -H \
|/root/scripts/flows/format_report.pl >> ${RPT_NAME}


Вот собственно и всё:)

Anonymous 2011-09-14 14:29:12 (#)

Создал файл format_report.pl с вышеуказанным наполнением.
Запихнул в папку /root/flows/ и дал права
Поменял |/usr/bin/flow-rptfmt -f html -H >> ${RPT_NAME}
на
|/usr/bin/flow-rptfmt -f html -H \
|/root/flows/format_report.pl >> ${RPT_NAME}

при запуске stat_daily.sh что-то стартует и ругается на символ "|" в строке
|/usr/bin/flow-rptfmt -f html -H \
Убрал "|"
Запускается и стопорится. В результате формируется фаил, в котором только дата.

Что я делаю не так?

MooSE 2011-09-14 14:55:14 (#)

Что я делаю не так?
Ты не понимаешь что означает "|" в скриптах и потому не можешь самостоятельно отладить код.

Anonymous 2011-09-14 15:30:39 (#)

Да, не понимаю :-( Я вообще со скриптами не дружу, по сему пытаюсь использовать готовые.
Добрые люди растолковали, в чём была моя ошибка.

MooSE 2011-09-15 01:13:05 (#)

Ты хотя бы вместо
при запуске stat_daily.sh что-то стартует и ругается на символ "|" в строке

приведи полный текст ошибки. а то нету у меня телепатических способностей...

haamah 2011-11-02 13:57:56 (#)

У меня работает несколько подобных систем, но все они netflow пихают сразу в MySQL, а дальше с помощью написанной логики в самом мускуле распихивается по нужным таблицам. А дальше уже шеловские скрипты рулят. У меня целью стоит не подсчёт трафика, а выявление вторжений и ддос атак.
Если кладёте в мускул, то графики можно смотреть почти в реальном времени, 2 мин задержка у меня

Anonymous 2011-12-05 14:21:59 (#)

Здравствуйте!!!
у меня есть несколько файлов *.flw
которые были созданы после flow-export с параметрами
doctets, srcaddr, dstaddr.
всё работает всё норм.
Как суммировать пакеты для конкретного айпишника ?

например

DOCTETS SRCADDR DSTADDR
107 192.168.1.1 192.168.1.2
117 192.168.1.1 192.168.1.2
100 192.168.1.1 192.168.1.2

То есть должна остаться одна строка:

DOCTETS SRCADDR DSTADDR
314 192.168.1.1 192.168.1.2

MooSE 2011-12-06 03:47:06 (#)

Здравствуйте!!!
у меня есть несколько файлов *.flw
которые были созданы после flow-export с параметрами
doctets, srcaddr, dstaddr.
всё работает всё норм.
Как суммировать пакеты для конкретного айпишника ?

например

DOCTETS SRCADDR DSTADDR
107 192.168.1.1 192.168.1.2
117 192.168.1.1 192.168.1.2
100 192.168.1.1 192.168.1.2

То есть должна остаться одна строка:

DOCTETS SRCADDR DSTADDR
314 192.168.1.1 192.168.1.2


Налабать несложный скрипт на Perl? :)

Anonymous 2011-12-13 15:22:22 (#)

да плиз!!!

MooSE 2011-12-13 19:00:50 (#)

да плиз!!!

А сам не можешь? ;) Я пока не вижу для себя выгоды думать за тебя:)

Anonymous 2011-12-19 11:20:03 (#)

А какую простенькую веб морду мона поставить что бы блокировки и разблокировки

Anonymous 2011-12-19 13:41:00 (#)


Налабать несложный скрипт на Perl? :)



Буду в ваших краях пиво с меня !!
Напишите плиз!!

MooSE 2011-12-20 00:11:34 (#)

А какую простенькую веб морду мона поставить что бы блокировки и разблокировки
Только самому писать. Ибо всё решение от и до - самоделка

MooSE 2011-12-20 00:12:29 (#)

Буду в ваших краях пиво с меня !!
Напишите плиз!!


по-моему проще вам самому скрипт написать:) не так уж и сложно. а мне тупо лень. и мотивация в виде абстрактного пива, да ещё и не известно когда, это вовсе не мотивация:)

Anonymous 2011-12-21 11:51:40 (#)

А реально ли добавить в вашу таблицу ещё 1 столбик??
Для отображения имени если совпадает с айпишником.
Например есть файл /etc/clients :
Андрей=192.168.1.2
Руслан=192.168.1.3
сравнивая с этим файлом выводить имя!
то есть 1 столбик. (Name)
Если есть возможность это реализовать
был бы признателень
Я слышал вы любите ПИВО?
Пиво с меня ))

MooSE 2011-12-22 12:06:12 (#)

А реально ли добавить в вашу таблицу ещё 1 столбик??
Для отображения имени если совпадает с айпишником.
Например есть файл /etc/clients :
Андрей=192.168.1.2
Руслан=192.168.1.3
сравнивая с этим файлом выводить имя!
то есть 1 столбик. (Name)
Если есть возможность это реализовать
был бы признателень
Я слышал вы любите ПИВО?
Пиво с меня ))


Как же ты меня запарил. Я НЕ РАБОТАЮ ЗА ПИВО! И бесплатно тоже не работаю. Надо каких-то доработок - готов заняться на коммерческой основе и никак иначе.

Anonymous 2011-12-22 14:09:49 (#)

Доброго времени суток .
Начал работать с Линуксом недавно и столкнулся с такои проблемой как учет трафика тоже, но у меня немножко иная задача ,
мне нужно создавать один лог фаил в день, и что бы содержание было таковым
трафик:откуда:куда:время
трафик:откуда:куда:время

помогите пожалуйста

MooSE 2011-12-23 13:08:03 (#)

Доброго времени суток .
Начал работать с Линуксом недавно и столкнулся с такои проблемой как учет трафика тоже, но у меня немножко иная задача ,
мне нужно создавать один лог фаил в день, и что бы содержание было таковым
трафик:откуда:куда:время
трафик:откуда:куда:время

помогите пожалуйста


Вдумчивое чтение man-страницы flow-report поможет тебе. Просто надо задать правильный формат репорта.

Anonymous 2011-12-26 17:12:31 (#)

-w /var/log/flow -n 275 0/192.168.2.1/9999

Вместо 275 раз
сделай 1 раз в сутки!!!

MooSE 2011-12-27 10:40:23 (#)

-w /var/log/flow -n 275 0/192.168.2.1/9999

Вместо 275 раз
сделай 1 раз в сутки!!!


Бред. Отчёт слабо зависит от числа файлов. А если писать один файл то в случае сбоя потеряешь так же весь файл. То есть данные сначала суток. Так что лучше маленькими файлами копить.

Anonymous 2011-12-29 10:57:54 (#)

-w /var/log/flow -n 275 0/192.168.2.1/9999

Вместо 275 раз
сделай 1 раз в сутки!!!


Бред. Отчёт слабо зависит от числа файлов. А если писать один файл то в случае сбоя потеряешь так же весь файл. То есть данные сначала суток. Так что лучше маленькими файлами копить.


Ну сорри если бред. он говорит 1 лог файл в день вот и ...

Anonymous 2011-12-29 10:57:55 (#)

-w /var/log/flow -n 275 0/192.168.2.1/9999

Вместо 275 раз
сделай 1 раз в сутки!!!


Бред. Отчёт слабо зависит от числа файлов. А если писать один файл то в случае сбоя потеряешь так же весь файл. То есть данные сначала суток. Так что лучше маленькими файлами копить.


Ну сорри если бред. он говорит 1 лог файл в день вот и ...

MooSE 2011-12-29 12:39:46 (#)


Ну сорри если бред. он говорит 1 лог файл в день вот и ...


Там даже если больше одного файла то они всё равно раскладываются в папочки по дням. Ну а дальше просто с помощью flow-report остаётся определить формат отчёта.

Anonymous 2015-02-12 15:17:07 (#)

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

MooSE 2015-02-16 19:05:03 (#)

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

Могу только посоветовать изучать документацию flow-report. Навскидку не знаю.

Anonymous 2015-02-17 10:18:09 (#)

а есть ли возможность считать аплоад с хостов в локалке?
а то


stat-report localnet
type ip-source-address
output
format ascii
options +header,+xheader,+totals
fields -flows,-packets,-duration

stat-definition localnet
report localnet

показывает айпишники, НА которые был аплоад, а не С которых

Anonymous 2015-10-16 23:08:36 (#)

нужно в скриптах где фильтр поменять местами с "-Sinternet -Dlocalnet \" на "-Slocalnet -Dinternet \"
Новый комментарий

Жирный текстКурсивный текстПодчёркнутый текстЗачёркнутый текстПрограммный кодСсылкаИзображение




© 2006-2024 Вадим Калинников aka MooSE
Политика конфиденциальности