Навигация
Главная
Поиск
Новости
Статьи
ЧаВо
- - - - - - -
Файловый архив
Ссылки
Авторизация
Кто он-лайн

 

 
Главная
FreeBSD: подсчет трафика, мониторинг трафика Версия для печати
Написал Ярослав Гасов   
30.09.2011

Share this!

iftop - мониторинг загрузки канала в реальном времени

 

# cd /usr/ports/net-mgmt/iftop
# make install clean

 

Создаем конфиг ~/.iftoprc, например:

 

interface: <имя_интерфейса>
dns-resolution: yes
use-bytes: yes
net-filter: 192.168.0.0/24

 

(Спасибо "lissyara")

 

 

Для оперативного контроля трафика служит очень удобная утилита trafshow:

 

# cd /usr/ports/net/trafshow
# make install

 

Пример использования: trafshow -i <имя_интерфейса>

 

Отключить ресолвинг ip адресов в имена - ключ -n.

Не переводить сетевую карту в promiscuous mode - ключ -p.

 

Еще примеры:

 

активность хоста X.X.X.X на сетевом интерфейсе YY сервера

# trafshow -p -i YY -n dst host X.X.X.X

 

активность хоста X.X.X.X на сетевом интерфейсе YY сервера и только на порт 22

# trafshow -p -i YY -n dst host X.X.X.X and port 22

(ИЛИ and not port 139 - исключаем порт)

 

Для дополнительного конфигурирования создайте в домашней директории /root файл .trafshow приблизительно такого содержания (пример из WiKi кажется):

# Дефолтная схема "зеленый шрифт на черном фоне"
# - мы ее каментим
#default black:yellow
# SSH сессии будут у нас зеленые
 22/tcp green
# AIM (ICQ) протокол подсветим пурпурным
 5190/tcp magenta
# SMTP подсветим голубым
 25/tcp blue
# POP3 будет красным
 110/tcp red
# FTP будет бирюзовый
 21/tcp cyan
# А всех качальщиков в локалке подсветим
# желтым, чтобы сразу бросалось в глаза
 *:80 192.168.0.0/255.255.255.0 tcp yellow

 

ПРИМЕЧАНИЕ: Когда используется NAT команда trafshow на внешнем интерфейсе не будет "видеть" внутренних адресов!

 

 

 

 

Для сбора трафика и построения отчетов, применяется пакет trafd:

 

# cd /usr/ports/net/trafd
# make install

 

Демон trafd собирает трафик на определенном интерфейсе. Для начала сбора трафика на интерфейсе, необходимо:

 

создать файл, где trafd будет хранить статистику: touch /var/trafd/trafd.<имя_интерфейса>

запустить сбор статистики на интерфейсе: /usr/local/bin/trafd -i <имя_интерфейса> (можно сразу прописать эту строчку в /etc/rc.local)

проверить работу демона: ps ax | grep trafd

 

(!) Демон trafd коллекционирует статистику в оперативной памяти. Чтобы сбрасывать статистику на диск (в файл, который был создан) следует пользоваться командой /usr/local/bin/trafsave (лучше из Крона).

 

Кроме того, рекомендуется каждый месяц "обнулять" файл сбора статистики, т.к. количество записей в одном файле ограничено 1000. Это можно сделать с помощью короткой программки на языке sh:

 

   #!/bin/sh

   PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
   LOG_FILE=/var/log/traffic.log

   if [ $# = 0 ]; then
   # Get List of Listening IFaces
   . /etc/rc.conf
   else
   IFF_LISTEN=$*
   fi

   for iface in $IFF_LISTEN; do
   rotate /var/trafd/trafd.$iface `date -v-1m +%b`
   echo "Rotate Logs For $iface" > $LOG_FILE
   done

 

Нужно разместить эту программку в файле /usr/local/bin/trafrotate. Для ее работы необходимо установить утилиту rotate:

 

# cd /usr/ports/sysutils/rotate
# make install

 

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

 

20 2 1 * * /usr/local/bin/trafrotate

 

 

Построение отчетов trafd

Система trafd способна строить удобные отчеты на основе собранных данных. Отчеты строятся с помощью программы traflog.

Для того, чтобы посмотреть результаты последней сохраненной записи демона trafd, нужно набрать команду: traflog -n -i <имя_интерфейса> (флаг -n указывает не ресолвить ip-адреса).

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

 

# traflog -i <имя_интерфейса> -n from all to 10.128.0.0 mask 255.255.0.0

 

 

 

 

Счетчики ipfw count

 

Примерно вот такие правила:

 

        ${fwcmd} add 100 count ip from any to ${local_ip_1} in
        ${fwcmd} add 100 count ip from ${local_ip_1} to any out

 

Условия in и out важны, поскольку без них траффик будет считаться 2 раза.

 

Из готовых скриптов обработки можно посоветовать скрипты из пакета Utcount - http://sourceforge.net/projects/utcount/

 

(

   Для перечитывания правил ipfw без разрыва соединения:

   # ipfw disable firewall
   # sh /etc/rc.firewall

   # ipfw enable firewall

)

 

 

Последнее обновление ( 30.09.2011 )
 
< Пред.   След. >

Share this!

 

 

Последние публикации:
Самые популярные материалы:
 
 

Производственный кооператив "Геолог" - геологоразведовательные работы, разведка месторождений, подсчет запасов, бурение скважин, геологический отчет...


GASOV.COM © 2024