Обсуждение статьи тематического каталога: Подсчет трафика на Freebsd используя trafd без mysql (traffic freebsd log)Ссылка на текст статьи: http://www.opennet.me/base/net/trafd_stat2.txt.html
опечатки бы еще поправить суперски былобы
Программа не плоха, но она теряет пакеты. Причём всё зависит от характера трафика, иногда ничего не теряет, а иногда разница в подсчете достигала 20%. Она хороша для приблизительного подсчета.
на вскидку
/trafd/trafd_stat
/trafd/trafd_stat: /bin/date=20081221: not found
/trafd/trafd_stat: cannot create /usr/local/var/plain/stat..upload.txt: No such file or directory
/trafd/trafd_stat: cannot create /usr/local/var/plain/stat..upload.txt: No such file or directory
/trafd/trafd_stat: cannot create /usr/local/var/plain/stat..upload.txt: No such file or directory
/trafd/trafd_stat: cannot create /usr/local/var/plain/stat..upload.txt: No such file or directory
/trafd/trafd_stat: cannot create /usr/local/var/plain/stat..download.txt: No such file or directory
/trafd/trafd_stat: cannot create /usr/local/var/plain/stat..download.txt: No such file or directory
/trafd/trafd_stat: cannot create /usr/local/var/plain/stat..download.txt: No such file or directory
/trafd/trafd_stat: cannot create /usr/local/var/plain/stat..download.txt: No such file or directory
cat: /usr/local/var/plain/.fxp0: No such file or directory
/trafd/trafd_stat: cannot create /usr/local/var/plain/stat..upload.txt: No such file or directory
cat: /usr/local/var/plain/stat..upload.txt: No such file or directory
Null message body; hope that's ok
cat: /usr/local/var/plain/.fxp0: No such file or directory
/trafd/trafd_stat: cannot create /usr/local/var/plain/stat..download.txt: No such file or directory
cat: /usr/local/var/plain/stat..download.txt: No such file or directory
Null message body; hope that's okда кстати в портах для trafd путь другой
вообще лучше сначала все перепроверить чем делать статейку:)
skif - исправил ошибки, путь к порту. Кстати, у вас там неправильно путь прописан, поэтому и не находит файлы.
anonymous - хм, возможности проверить нет.
да каталог у меня действительно не верный был
/bin/date=`date -v-1d '+%Y%m%d'`
su: /bin/date=20081221: No such file or directory:)
я делаю чуть иначе, хотя и похоже. цель была: сделать удобную и простую систему подсчёта общего конторского трафика, но тоже без мускула и веб-морды с пхп (как во многих мануалах описывается).
к слову - я в курсе, что trafd может терять пакеты на слабом железе и при большой загрузке канала - но этих обстоятельств не обнаружено, и точность вполне подходящая...предположим, трафик считается на fxp0, и предварительные настройки уже сделаны (trafd установлен и запущен, раз в несколько минут дамп из памяти сограняется на диск, раз в сутки сохраняется в базу /usr/local/var/trafd/trafd.fxp0).
daily.sh - запускается раз в ночь для подсчёта ежедневного трафика:
#!/bin/sh
date=`date -v-1d '+%Y-%m-%d'`
fpath=/usr/local/var/trafd/$date/usr/local/bin/traflog -n -i fxp0 -F /usr/local/etc/traffic/in.cf > $fpath.in
/usr/local/bin/traflog -n -i fxp0 -F /usr/local/etc/traffic/out.cf > $fpath.outecho "Traffic of $date..." > $fpath.sum
echo -n " INCOMING: " >> $fpath.sum
grep "Summary" $fpath.in |awk '{ print $5 }' >> $fpath.sum
echo -n " OUTGOING: " >> $fpath.sum
grep "Summary" $fpath.out |awk '{ print $5 }' >> $fpath.sum
cat $fpath.sum | mail -s "Daily traffic summary" rootпри этом в файлах in.cf и out.cf указаны фильтры, для каких ip или подсетей считать суммарный трафик (в формате "to aa.bb.cc.dd/nn" и "from aa.bb.cc.dd/nn") - мне кажется, так удобнее, тем более что отдельно по разным ip мне не нужно (а если понадобится - потом можно отдельный скрипт написать).
monthly.sh - запускается в ночь на 1 число (важно: после daily.sh) для подсчёта суммарного трафика за прошедший месяц:#!/bin/sh
date=`date -v-1m '+%Y-%m'`
fpath=/usr/local/var/trafd/$date/usr/local/bin/traflog -ans -i fxp0 -F /usr/local/etc/traffic/in.cf > $fpath.in
/usr/local/bin/traflog -ans -i fxp0 -F /usr/local/etc/traffic/out.cf > $fpath.outcp /usr/local/var/trafd/trafd.fxp0 $fpath.fxp0
rm /usr/local/var/trafd/trafd.fxp0echo "Traffic of $date..." > $fpath.sum
echo -n " INCOMING: " >> $fpath.sum
grep "Summary" $fpath.in |awk '{ print $5 }' >> $fpath.sum
echo -n " OUTGOING: " >> $fpath.sum
grep "Summary" $fpath.out |awk '{ print $5 }' >> $fpath.sum
cat $fpath.sum | mail -s "Monthly traffic summary" rootпри работе этих скриптов в /usr/local/var/trafd/ сохраняются как файлы с результатами ежедневной/ежемесячной обработки (подробно и краткой суммой), так и база trafd за каждый месяц - при этом "год-месяц[-день]" используются для наименования файлов, а при необходимости эти данные можно ещё как-то обработать (или удалить в случае ненужности).
а чем вам не нравится ng_netflow & flow-tools?
Не знаю, не пробовал. Мне нужно было что-то довольно простое и быстрое.
>Программа не плоха, но она теряет пакеты.идл у вас, скорее всего, на нуле, вот и теряет.
теряет, факт
ipacctd или ng_ipacct в этом плане на порядок лучше
У меня оптика. На ней не теряются пакеты?
Опыт использования trafd при подсчете больших объемов трафика проказывает, что в зависимости от периода съема тарфика значения счетчиков могут принимать и отрицательные значения ;-)))
отрицательные значение ищ ща того что файл логов переполнен. Нужно ротировать логи..макс записей 1000
Спасибо! за статью!! отдельное спасибо! за выложеный скрип в комментариях!