FreeBSD: подсчет трафика, мониторинг трафика |
Написал Ярослав Гасов | |
30.09.2011 | |
iftop - мониторинг загрузки канала в реальном времени
# cd /usr/ports/net-mgmt/iftop
Создаем конфиг ~/.iftoprc, например:
interface: <имя_интерфейса>
(Спасибо "lissyara")
Для оперативного контроля трафика служит очень удобная утилита trafshow:
# cd /usr/ports/net/trafshow
Пример использования: 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 кажется): # Дефолтная схема "зеленый шрифт на черном фоне"
ПРИМЕЧАНИЕ: Когда используется NAT команда trafshow на внешнем интерфейсе не будет "видеть" внутренних адресов!
Для сбора трафика и построения отчетов, применяется пакет trafd:
# cd /usr/ports/net/trafd
Демон 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 if [ $# = 0 ]; then for iface in $IFF_LISTEN; do
Нужно разместить эту программку в файле /usr/local/bin/trafrotate. Для ее работы необходимо установить утилиту rotate:
# cd /usr/ports/sysutils/rotate
Для того, чтобы эта программа запускалась каждый месяц, нужно записать еще одну строчку в 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
Условия in и out важны, поскольку без них траффик будет считаться 2 раза.
Из готовых скриптов обработки можно посоветовать скрипты из пакета Utcount - http://sourceforge.net/projects/utcount/
( Для перечитывания правил ipfw без разрыва соединения: # ipfw disable firewall # ipfw enable firewall )
|
|
Последнее обновление ( 30.09.2011 ) |