Сбор статистики во FreeBSD через запуск ng_ipacct
Published on Март 30, 2009 by Support · Комментариев нет
Статья не будет описывать опции ядра, его компиляцию, пошаговую установку системы и прочих мелочей которые нужны для того чтоб начать установку ng_ipacct. Поскольку сам я не люблю мегабайтные конфиги то предложу свой вариант запуска ipacct-а И так, начнем: Задача — начать сбор статистики как можно быстрее. Что имеем — FreeBSD 6.4, пара сетевых карт em0, em1, ядро собранное с поддержкой netgraph — options NETGAPH, свежие порты, вкомпилированный ipfw и наверное всё. Первое что делаем — ставим ng_ipacct:
cd /usr/ports/net-mgmt/ng_ipacct make install
если на машине присутствует интернет (я обычно это проверяю ping www.ru), то проблем с установкой появиться не должно, иначе учимся ставить систему. после установки в /usr/local/etc/rc.d/ и /usr/local/etc/ появляется скрипты, находим их и убиваем, любопытные могут посмотреть что там внутри :) я же в чужие скрипты зарекся лазить. теперь на нашей машинке есть ng_ipacct, не знаю почему, но в мане информации по нему не появилось, разбираться лениво, все что мне нужно было — я нашел прямо в порте, советую посмотреть и вам, файлик ipacctctl.8 т.к. мне нужно забирать статистику не только с физического интерфейса em0, то я принял решение перенаправлять необходимый для подсчета трафик с ipfw в нетграф, т.е. по аналогии с простым дивертом подгружаем необходимые модули в ядро
kldload ng_ipfw #модуль для передачи трафика с ipfw в нетграф kldload ng_ipacct #собственно сам ipacct kldload ng_tee #модуль для копирования трафика в ng_ipacct
смотрим что получилось
если модули загружены, то всё хорошо, иначе учимся ставить систему(с) далее, при помощи утилиты ngctl даем команды нетграфу, их можно засунуть в скрипт и поставить на автозагрузку:
#!/bin/sh #####тело файла Strart.sh # именуем ноду ngctl name ipfw: ipfw1 # создаем ноду tee и подрубаем её хуком left к ноде ipfw1 через хук 100 ngctl mkpeer ipfw1: tee 100 left # даем имя ноде em0_tee (на место em0 можно написать что угодно, привязки # к карте никакой тут нет, в моём случае приписка em0 стечение обстоятельств) ngctl name ipfw1:100 em0_tee #коннектим фаервол хуком 200 к ноде em0_tee в хук right ngctl connect ipfw1: 100 200 right # создаем и подключаем ноду ipacct хуком em0_in (em0 тут опять же может # быть любым, если напишете vasya_in, то команду ipacctctl ip_acct:em0 # checkpoint,show,clear нужн будет писать ipacctctl ip_acct:vasya # checkpoint,show,clear и хук out с префиксом vasya обязательно) ngctl mkpeer em0_tee: ipacct left2right em0_in # именуем ноду ipacct именем ip_acct ngctl name em0_tee:left2right ip_acct #коннектим ноды ip_acct и em0_tee хуками em0_out и right2left ngctl connect ip_acct: em0_tee: em0_out right2left # вкратце опишем процесс заново # у нас получились ноды - tee обозванная em0_tee, с хуками left, right для # приема трафа c ng_ipfw, хуки right2left и left2right для отдачи трафика к следующему # обработчику, в нашем случае ipacct, хуки эти переименовать нельзя и они # постоянные, имя ноды, как вы уже наверно заметили, можно задать произвольное # нода ipfw обозванная ipfw1 с хуками 100 и 200 (чуть ниже поймете откуда они # взяты), эти хуки произвольные, имя ноды произвольное, нода подрублена к ноде # em0_tee (см строкой выше) # нода ipacct названная ip_acct с хуками em0_in и em0_out в которые # нода em0_tee копирует трафик хуками left2right и right2left # чтоб это всё понять - рисуйте на бумажке - нода - это квадратик, # хук - линия к другому квадратику, у ноды может быть несколько хуков. # Нод существует тоже достаточно. # после выполнения команд мы имеем завязанный ng_ipacct с ng_tee, # а ng_tee с ng_ipfw, чтоб посмотреть все это наглядно - зайдите в # утилиту ngctl и дайте там команду ls # продолжаем: # теперь с этого же скрипта дадим команды ipacct-у # кол-во записей которые хранит ipacct в мозгах, подробней смотрите ipacctctl.8 ipacctctl ip_acct:em0 threshold 10000 # тип пакетов, смотрите всё тот же ipacctctl.8 ipacctctl ip_acct:em0 dlt RAW # вид выдаваемой статистики, см ipacctctl.8 ipacctctl ip_acct:em0 verbose off
на этом скрипт можно завершить, но каждый для себя его может дополнить, переписать и т.д., имхо краткокость — сестра … ;) Осталось добавить в ipfw правила и начать сбор трафика и снятие статистики
ipfw add 10 netgraph 100 ip from any to any in ipfw add 11 netgraph 200 ip from any to any out
переменной sysctl net.inet.ipfw.one_pass можно задать способ прохождения трафика — либо пакет принят, либо продолжает сравнение. men’s adidas boost см man ipfw снятие статистики:
# перенос статистики в чекпоинт базу ipacctctl ip_acct:em0 checkpoint # показать статистику на экран, если нужно сохранить в файл, # то ipacctctl ip_acct:em0 show >> file.stat ipacctctl ip_acct:em0 show # очистили базу для последующей статистики. ipacctctl ip_acct:em0 clear
Все вышесказанное можно и нужно сделать немного красивее, так сказать добавить автоматизма, но для старта этого вполне хватит. kobe 8 black mamba price не претендую ни на что, настоятельно рекомендую прочитать 1. http://citrin.ru/netgraph/ 2. http://nexus.org.ua/weblog/message/406/ — позновательно
best mac antivirus software
3.
Смотрите также:
Exchange 2007
Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам:
Проведение мониторинга Exchange 2007 с помощью диспетчера System ...
[+]
Введение
В этой статье из нескольких частей я хочу показать вам процесс, который недавно использовал для перехода с существующей среды Exchange 2003 ...
[+]
Если вы пропустили первую часть этой серии, пожалуйста, прочтите ее по ссылке Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (Часть ...
[+]
Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Мониторинг Exchange 2007 с помощью диспетчера System Center Operations ...
[+]
Если вы пропустили предыдущие части этой серии статей, перейдите по ссылкам:
Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 1)
...
[+]
If you missed the previous parts in this article series please read:
Exchange 2007 Install and Configuration from the command line (Part ...
[+]
Инструмент ExRCA
Текущий выпуск инструмента предоставляется только в целях тестирования и оснащен 5 опциями:
Тест подключения Outlook 2007 Autodiscover
Тест подключения Outlook 2003 RPC ...
[+]
Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам:
Развертывание сервера Exchange 2007 Edge Transport (часть 1)
Развертывание ...
[+]
Если вы пропустили первую статью данного цикла, пожалуйста, перейдите по ссылке: Exchange 2007 Install and Configuration from the command line (Part ...
[+]
Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Использование интегрированных сценариев Using Exchange Server 2007 – часть ...
[+]