Подсчёт трафика с помощью trafd
Хорошая статья о возможностях trafd находится здесь — http://www.hub.ru/archives/2061 В своей заметке я выбрал лишь то, что нужно действительно мне и подправил пару неточностей.
Установим trafd:
# cd /usr/ports/net-mgmt/trafd
# make install clean
Создаем файл, куда будет писаться статистика (fxp0 — название интерфейса с которого будем собирать статистику):
# touch /usr/local/var/trafd/trafd.fxp0
Запускаем сам сбор статистики:
# /usr/local/bin/trafd -i fxp0
Эту же строчку добавим в /etc/rc.conf для автоматического старта при запуске. В идеале в /etc/rc.conf нужно прописать
trafd_enable=»YES»
trafd_ifaces=»fxp0″
но с этими строчками trafd не запустился, поэтому для автоматического старта прописываем в cron такую строчку:
@reboot /usr/local/bin/trafd -i fxp0
Проверяем работу демона:
ps ax | grep trafd
7753 ?? Ss 0:00.07 /usr/local/bin/trafd -i fxp0
7826 p0 R+ 0:00.00 grep trafd
Добавим задачу в crontab чтобы данные сохранялись каждые 3 часа:
0 */3 * * * /usr/local/bin/trafsave fxp0
Посмотреть отчет за период со времени последнего сохранения:
# traflog -n -i fxp0 (-n указывает не преобразовывать IP адреса)
Посмотреть перечень записей:
# traflog -l -i fxp0
Примерный вывод результата:
# Started Dumped Data All Recs
001 Dec 10 16:44:46 Dec 10 16:49:54 18638 25246 7
002 Dec 10 16:49:54 Dec 10 16:50:45 22 55 1
003 Dec 10 16:50:45 Dec 10 16:51:15 8607 9111 1
004 Dec 10 16:51:15 Dec 10 20:00:01 68463394 72252858 349
005 Dec 10 20:00:01 Dec 11 00:00:01 1552189274 1621174536 577
Допустим, перед нами стоит задача посчитать сколько трафика скачано с определенного IP за весь период подсчётов. Выяснить это можно так:
traflog -n -i fxp0 -s from all to 10.10.51.79 | grep Summary
Если требуется высчитать трафик за определенный период, то добавляем ключи, указывающие на начало и конец отчетного периода (параметры -b <первая запись> -e <последняя запись>):
traflog -n -i fxp0 -s -b1 -e33 from all to 10.10.51.79 | grep Summary
Команда » | grep Summary» отсекает вывод излишне подробной статистки, откуда и сколько байт пришло, это бывает полезно, если нужно смотреть статистику используя медленные каналы связи.
Один из примеров использования trafd — подсчет трафика одной из игрушек, использующей порты 2106 и 7777, прошедшего через внешний интерфейс за определенный период:
traflog -n -i tun0 -b1 -e28 -s port 7777 port 2106 | grep Summary
Ссылки: