Подсчет трафика с помощью trafd и trafshow.

В нашей организации назрела необходимость подсчета трафика серверов. Их порядка 20 штук и находятся они в демилитаризованной зоне, за PIX.  Учитывая, что PIX-501 не поддерживает NetFlow, решил поставить для подсчета трафика trafd + trafshow. Данные нужны только в конце месяца.

Ищем в портах:

counter# cd /usr/ports/

counter# make search name=trafd

Port: trafd-3.0.1_2

Path: /usr/ports/net-mgmt/trafd

Info: The BPF Traffic Collector

B-deps:

R-deps:

WWW:

counter# make search name=trafshow

Port: trafshow-5.2.3,1

Path: /usr/ports/net/trafshow

Info: Full screen visualization of network traffic

B-deps:

R-deps:

WWW:

Ставим trafshow из портов.

counter#cd /usr/ports/net/trafshow

counter#make install

Далее вводим:

counter#trafshow -i rl0

(rl0)- интерфейс.

trafshow

Эта команда покажет весь трафик, проходящий через интерфейс rl0. Команда будет работать быстрее,если отключить ресолвинг ip адресов в имена (ключ -n). При этом весь трафик будет выдан в виде таблицы, в которой видны адреса источников и приемников, скорости соединений, количество переданных и принятых байт и т.п.

Ограничивается область просмотра программы trafshow следующим образом:

Например, команда:

trafshow -i rl0 -n dst net 10.128.0.0 mask 255.255.0.0 and not 10.128.7.11 and not net 10.128.6.00 mask 255.255.255.0 and not port 80 and not port 5190 and not port 53 and not port 443

Показывает трафик в сеть 10.128.0.0/16 но без хоста 10.128.7.11, без сети 10.128.6.0/24 и не показывает в отчете порты 80,5190,53,443.

Устанавливаем утилиту rotate для ротации файлов.

counter#cd /usr/ports/sysutils/rotate

counter#make install

Далее ставим из портов trafd

counter#cd /usr/ports/net-mgmt/trafd

counter#make install

Далее создаем файл, где будет храниться статистика.

counter#touch /usr/local/var/trafd/trafd.rl0

Изменять место расположения данного файла не рекомендую, могут быть проблемы.

И, обратите внимание, после точки — название сетевой карты и ее номер.

В данном случае Realtek (rl0). Ибо возможен запуск trafd  на нескольких сетевых интерфейсах,

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

Добавляем в /etc/rc.conf строки:

counter#less /etc/rc.conf

trafd_enable=»YES»

trafd_ifaces=»rl0″

trafd_flags=»-r»

trafd_log=»/var/log/traffic.log»

Для того, чтобы статистика не терялась и счетчики не переполнялись, будем периодически сохранять информацию из оперативной памяти на диск (в файл, который был создан). Эту процедуру выполняет специальная программа:

trafdump

. Периодичность выполнения этой команды выбирает сам системный администратор(У меня — каждые 15 минут).

Раз в сутки нужно записывать накопленный трафик демоном trafd в бинарные файлы с помощью

trafsave

.

Если необходимо, с помощью

rotate

обрезаем файл логов trafd.(Лично я это делаю вручную, но даю Вам описание в файле crontab.)

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

counter#less /etc/crontab

#### TRAFD#####

*/15 * * * * root /usr/local/bin/trafdump rl0

59 23 * * * root /usr/local/bin/trafsave rl0

20 1 1 * * root /usr/local/bin/rotate /usr/local/var/trafd/trafd.rl0

Работаем со статистикой.

Система trafd строит удобные отчеты на основе собранных данных. Отчеты строятся с помощью программы traflog. Для того, чтобы посмотреть результаты последней сохраненной записи демона trafd, необходимо выполнить команду:

counter#traflog -n -i rl0

Для того , чтобы просмотреть все записи по дням делаем:

counter#traflog -l

Из этих данных и выбираем  (параметры -b <первая запись> -e <последняя запись>). См. ниже.

traflog

(флаг -n указывает не ресолвить ip-адреса)

Программа traflog «умеет» строить отчеты на основе заданных правил. Например, для того, чтобы увидеть отчет по трафику сети 10.128.0.0/16,необходимо набрать команду:

traflog -i rl0 -n from all to 10.128.0.0 mask 255.255.0.0

В документации приводятся такие примеры фильтров:

from turbo.nsk.su to ns.nsk.su port domain

to all port ftp port ftp-data

from TURBONET to all

from 192.188.187.127 mask 255.255.255.224 port all

from all to 144.206.0.0 proto tcp

from turbo.nsk.su to ns.nsk.su port domain

to all port ftp port ftp-data

from TURBONET to all

from 192.188.187.127 mask 255.255.255.224 port all

from all to 144.206.0.0 proto tcp

Кроме применения фильтров, traflog позволяет формировать отчеты, суммируя информацию из записей trafd. Для того, чтобы увидеть список записей (а это нужно для того, чтобы потом построить отчет на основе диапазона правил), нужно вызвать traflog с ключом -l.

Теперь, для того чтобы построить отчет за определенный период, нужно указать первую и последнюю запись для отчета (параметры -b <первая запись> -e <последняя запись>). Например, для того, чтобы получить отчет с 20 апреля по 22 апреля сего года для  сети 10.128.0.0/16, нужно ввести команду:

traflog -n -i rl0 -b7 -e12 -s from all to 10.128.0.0 mask 255.255.0.0 (см. рисунок выше)

(параметр -s указывает посчитать суммарный трафик, т.е. trаflog автоматически суммирует трафик по одинаковым адресам и портам,  -i указывает по какому интерфейсу обсчитывался трафик, -n не ресолвить адреса).

traflog

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *