Главная » Статьи » Прочее | [ Добавить статью ] |
Очень часто у системных администраторов возникает задача учёта трафика локальной сети. Ниже будет показано как можно решить эту задачу используя flow-сенсор fprobe и утилиты из пакета flow-tools. Озвучим начальные условия:
Первым делом установим fprobe на сервер: apt-get install fprobe На вопрос с какого интерфейса снимать трафик нужно ответить "eth1", а на вопрос куда отсылать логи - "192.168.2.10:9999". Порт можно выбрать произвольно - главное чтобы на сервере мониторинга он был свободен. Собственно на этом настройка интернет-шлюза заканчивается, переходим к серверу мониторинга. Установим flow-tools: apt-get install flow-tools Далее приводим файл /etc/flow-tools/flow-capture.conf к виду: -w /var/log/flow -n 275 0/192.168.2.1/9999 Здесь flow-capture будет слушать на адресе 192.168.2.1 и порту 9999 (если на шлюзе вы указали другой порт назначения - измените соответствующим образом его значение и здесь. Логи будут сохраняться в /var/log/flow. Место их хранения непринципиально. Но если вы выберите другое место - делайте соответствующие поправки во всех дальнейших инструкциях. Создадим директорию для логов: mkdir -p /var/log/flow И перезапустим flow-коллектор: invoke-rc.d flow-capture restart На всякий случай убеждаемся что коллектор слушает нужный порт: netstat -lpnu|grep flow-capture В случае если всё хорошо - вывод будет выглядеть примерно вот так: udp 0 0 0.0.0.0:9999 0.0.0.0:* 19652/flow-capture Если же коллектор не запустился - внимательно проверьте его настройки. Через некоторое время в указанной директории начнут собираться логи. Остаётся только написать скрипты для генерации отчётов на основе этих логов. Создадим директорию /root/flows, все дальнейшие действия мы будем производить в ней: mkdir /root/flows Создадим файл flow.acl, в котором опишем необходимые нам списки доступа, этот файл потом будет использоваться утилитой flow-filter: ip access-list standard localnet permit 192.168.2.0 0.0.0.255 Здесь список localnet описывает адресное пространство локальной сети, а список internet описывает адресное пространство, трафик с которого мы будем считать. Если какие-то адреса нужно внести в "бесплатную зону" - их нужно добавить в список internet с директивой deny (По аналогии с адресным пространством локальной сети). Так же ненужно забывать что при указании сетей в этом файле нужно использовать инверсные маски. Если вы не очень свободно работаете с такими масками - воспользуйтесь IP-калькулятором. Следующим шагом создадим файл report.conf, который будет использоваться утилитой flow-report: stat-report localnet На этом написание конфигурационных файлов заканчивается и можно переходить к написанию скриптов. Сначала создадим скрипт для генерации ежесуточных отчётов и сохраним под именем stat_daily.sh. Вот его листинг: #!/bin/sh Делаем скрипт исполнимым и добавляем его запуск в cron: chmod +x stat_daily.sh && echo "20 0 * * * root /root/flows/stat_daily.sh" >> /etc/cron.d/flow_stat После этого каждый день в директории /var/www/flow-reports/daily будут складываться отчёты о трафике за предыдущий день. Отчёт будет выглядеть примерно вот так:
В колонке "ip-destination-address " отображается адрес компьютера в локальной сети, а в колонке "octets" - потреблённый трафик (в байтах). Так же хорошо бы получать ежемесячные отчёты и удалять старые данные. Для этого создадим скрипт stat_monthly.sh: #!/bin/sh Делаем скрипт исполняемым и добавляем его в cron: chmod +x stat_monthly.sh && echo "30 0 1 * * root /root/flows/stat_monthly.sh" >> /etc/cron.d/flow_stat На этом всё. В принципе учёт трафика можно настроить и используя всего один сервер - для этого flow-сенсор должен отсылать данные на адрес 127.0.0.1, а коллектор должен слушать на этом адресе. Для доступа к отчётам можно поднять веб-сервер, или настроить отправку этих отчётов на e-mail. Например для отправки ежемесячных отчётов нужно добавить в скрипт stat_monthly.sh строку: /usr/bin/uencode ${RPT_NAME} `/usr/bin/basename ${RPT_NAME}` | /usr/bin/mail -s "Traf Report" admin@some.host На этом всё. Приятной работы! Источник: http://ylsoftware.com/news/492 | ||||||||||||
Просмотров: 1143 | Комментарии: 1 | |
Всего комментариев: 1 | |
| |
Операционные Системы
[61]
ОС Open Source
|
Мобильный Linux [26] |
Сравнение ОС [7] |
Статьи о Linux [16] |
Свободное ПО [10] |
Програмирование [6] |
Не для нубов [5] |
Ядро [13] |
Хранилище данных [9] |
Устройства [1] |
Установка/конфигурирование/планиров [16] |
Файловые системы [3] |
Управление, основанное на политиках [1] |
Управление инфраструктурой [0] |
Серверы [5] |
Биографии [6] |
Прочее [25] |