Программа trafd позволяет системному администратору отслеживать все аспекты использования траффика. Она сохраняет все адреса источника и отправителя, использованный порт и протокол и подсчитывает данные за определеный период. Это значит что если у вас есть 128 IP на роутере, то вы можете мониторить использование траффика на каждом IP, что может содействовать выписке клиенту счета. Здесь очень короткий пример вывода информации trafd:
# traflog -s -i xl0
(xl0) testbox.BSDpro.com at Apr 29 03:35:03 - May 7 18:45:01 Summary: 517620379 data bytes, 673157543 all bytes, 3267 records From Port To Port Proto Data All testbox.BSDpro.com http wc1-int2.nbnet.nb. client tcp 12399412 13007204 testbox.BSDpro.com http wc1-int1.nbnet.nb. client tcp 11766465 12336221 ip142166205174.nbt client testbox.BSDpro.com ssh tcp 3018268 11591208 testbox.BSDpro.com client private.xx.toinkf. 6667 tcp 3728136 10722060 private.xx.toinkf. 4397 testbox.BSDpro.com client tcp 5379910 10506474
Инсталяция
Надо использовать FreeBSD порты для инсталяции. Если вы не используете порты,или у вас OpenBSD или NetBSD, вы можете скачать архив tar для trafd с ftp://ftp.riss-telecom.ru/pub/dev/trafd/trafd-3.0.1.tgz. Если вы скачали архив, то отредактируйте скрипты, входящие в комплект trafd, такие как trafstart, trafsave и т.д. Вам надо добавить #!/bin/sh в их первую строчку. Также посмотрите куда проинсталированы программы и скрипты ( в портах FreeBSD по умолчанию /usr/local/). Теперь, если вы используете порты FreeBSD делайте:
# cd /usr/ports/net/trafd # make install
Будут проинсталированы trafd, trafstart, trafstop, trafsave, trafdump, trafstat, trafstatd и traflog в /usr/local/bin/. A файл README будет положен в /usr/local/share/doc/trafd/. Также будут созданы директории:
/usr/local/var/trafd /usr/local/var/log.
По умолчанию FreeBSD работает на ядре GENERIC. Для мониторинга пакетов trafd, необходима поддержка ядра. Необходимо добавить:
pseudo-device bpf
в вашу конфигурацию ядра (впрочем эта функция по умолчанию поддерживается в последних версиях). Чтобы trafd корректно стартовал и останавливался при перезагрузке, необходимо добавить скрипт. Создайте
В начале скрипта вам надо заменить xl0 на подходящее имя вашей NIC ( если вы не знаете ваш девайс, то используйте команду ifconfig. Она покажет все интерфейсы, найдите один,связанный с интернетом). Окей trafd проинсталирован !
Вам надо сделать только одну вещь, ихменить часть -i xl0. Вы должны также изменить путь trafd:
./trafd на /usr/local/sbin/trafd (так лучше). Теперь стартуем демона:
# trafstart
Теперь убедимся, что данные сохранены, и подредактируем crontab:
*/15 * * * * root /usr/local/bin/trafsave xl0
Это будет сохранять данные о трафике каждые 15 минут в файле:
/usr/local/var/trafd/trafd.xl0
Для просмотра текущей статистики трафика просто используем команду:
# traflog -s -i xl0
Это выведет всю инфу о использовании трафика. Если вы не хотите, чтоб выводились доменные имена, то используйте опцию -n. Еще про скрипты trafd, проверьте тут: http://www.bsdpro.com/scripts.php.