Работа
Объявления
Разделы новостей
Статьи
Обзоры
Пресс-релизы
Работа
Карта сайта
О сайте
Реклама
все объявления
поиск резюме
поиск вакансий
добавить резюме
добавить вакансию

Все объявления
Интернет
Сети и связь
Интерфейс
Безопасность
Программы
Hardware
Прочее
Добавить объявление
 Новости Hardware
 Новости Software
 Интернет
 Наука и техника
 Связь
 Мир автомобилей
 Пресс-релизы
 Транспортная система
 Промышленность
 Мир увлечений
 Домашний быт
 Обустройство, ремонт



Система учета трафика на основе net-acct

Система учета трафика на основе net-acct










Разместить статью на этом сайте





Рано или поздно перед каждым администратором встает вопрос о построении своей системы учета трафика, будь то небольшая локальная сеть или средних размеров ISP.

Систем, направленных на эту задачу, существует немало и порой сложно с чего-то начать. Для того чтобы можно было что-то выбрать, необходимо сформулировать требования к системе, которую мы хотели бы использовать.

Итак, какой же она должна быть?

Во-первых, система должна выдавать подробный отчет по трафику, время, source и destination адреса, порты, сетевой интерфейс.

Во-вторых, весьма желательно, чтобы система могла работать с базой данных, например с MySQL. В этом случае мы избавляемся от необходимости "низкоуровневой" обработки данных и самостоятельного занесения этих данных в базу, т.к. делать это рано или поздно все равно придется.

Ну и в-третьих, это важно для многих пользователей интернета в регионах, система должна каким-либо образом разделять тип трафика на бесплатный (free), пиринговый (peer), и общий (world).

Всем этим требованиям удовлетворяет система net-acct-mysql. Скачать архив можно с сайта http://exorsus.net/projects/net-acct/, причем я настоятельно рекомендую качать не самую последнююверсию, а версию netacct-mysql-0.73, т.к. все последующие версии были упрощены и не включают в себя некоторых полезных опций.

Net-acct необходимо сконфигурировать с опцией "--with-mysql" с указанием пути к mysql, например

 ./configure --with-mysql=/usr/local/mysql

После компиляции и установки программы (make && make install) необходимо создать базу данных для net-acct с помощью дампа, который присутствует в архиве:

 mysql -u root -p < netacct.sql.
После чего не забываем добавить пользователя в MySQL и предоставить ему права на базу netacct.
mysql>grant all privileges on netacct.* to netacct identyfied by netacct;
mysql>flush privileges;
Далее необходимо сконфигурировать поограмму. Для этого в нашем расопряжении имеются два файла конфигурации в каталоге /usr/local/etc:
  • naccttab - главный файл конфигурации,
  • nacctpeering - файл, содержащий список сетей, которые следует считать пиринговыми. Рассмотрим файл naccttab.

    В самом начале идет секция конфигурации доступа к базе данных:

    database mysql
    
    Первая строка описывает, в каком виде будет записываться информация о трафике, в нашем случае это запись в mysql, возможен также вариант file, при котором запись будет идти в текстовый файл /var/log/net-acct. Далее следуют параметры доступа к базе данных, название которых говорят сами за себя.
    mysql_user netacct
    #пользователь в MySQL
    mysql_password netacct
    #пароль пользователя для базы
    mysql_host localhost
    #хост
    mysql_database netacct
    #имя базы данных
    mysql_table accounting
    #имя таблицы
    
    Далее идет опция, указывающая pid файл процесса демона net-acct:
    pidfile /var/run/nacctd.pid
    
    Далее описываются сетевые параметры для работы net-acct.

    Мы рассмотрим следующую схему сети, для которой мы будем конфигурировать учет трафика: Небольшая локальная сеть с внутренними адресами вида 10.0.0.XXX подключена к интернет через nat на Linux машине с двумя интерфейсами eth0 и eth1, eth0 смотрит в интернет, eth1 - в локальную сеть.

    Итак, рассмотрим необходимые для такой схемы параметры (описание идет после каждой опции)

    flush 60
    
    Задает период (в секундах), с которым данные записываются в базу.
    fdelay 60
    
    Задает время (в секундах), в течении которого после завершения сетевой активности данные о трафике могут быть записаны в базу.
    dumpfile /var/log/net-acct-dump
    
    Задает имя файла дампа статистики.
    notdev eth0
    
    Если машина имеет два интерфейса, то с помощью опции notdev мы указываем интерфейс, который следует исключить из диапазона отслеживаемых программой, дабы избежать дублирования записей о трафике, прошедшем через оба интерфейса. В нашем случае этим интерфейсом является eth0
    device eth0
    
    Данная опция задает тот интерфейс, который будет переводится в promiscuous режим.
    iflimit eth0
    
    Эта опция в том случае, когда машина имеет несколько интерфейсов и только на одном из них неоходим учет трафика.
    ignorenet 127.0.0.0 255.0.0.0
    
    Эта опция позволяет исключить из подсчета трафик идущий черех loopback интерфейс.
    debug 2
    debugfile /tmp/nacctd.debug
    
    Опции для отладочной информации.
    headers lo	14	12
    headers eth	14	12
    
    Задает, с пакетами каких интерфейсов следует работать, в нашем случае lo и eth.

    Многие захотят отключить опцию первой строки, т.е. headers lo, но практика показывает, что данное действие приводит к нерабочему состоянию программы, так что делать это не рекомендуется. Цифры после каждого из параметров указывают следующее: в первом столбце - количество байт, после которых начинают идти данные в пакете, во втором - количество байт, приходящихся на поле типа пакета.

    И последнии опции, которые будут в нашем конфиге:

    hostlimit 10.0.0.2
    hostlimit 10.0.0.3
    hostlimit 10.0.0.4
    
    Указывают на то, для каких адресов в подсети следует считать трафик. Служит своего рода фильтром и позволяет исключать некоторые адреса из учета.

    Если нет необходимости указывать адреса явно, можно указать адрес только той машины, на которой стоит net-acct, в этом случае будет считаться весь трафик пришедший на интфрфейс eth1.

    C первым конфигом мы разобрались. Далее идет файл nacctpeering, в котором, как было сказано выше, содержится список пиринговых сетей. Достаточно просто написать каждую подсеть или адрес в новой строке, например:

    195.58.1.134
    194.226.148.0/24
    213.140.111.224/255.255.255.224
    
    Ну вот, с конфигами закончили, теперь можно запускать систему, для этого необходимо ввести команду /usr/local/sbin/nacctd.Если не было допущено ошибок в конфиге, то через некоторое время в базеужепоявлятся первые записи и весь трафик будет под конролем.

    Первый этап работы закончен, далее возникает необходимость просмотра информации о трафике. Для этого можно написать скрипт, например на PHP или PERL, а можно обращатся к базе напрямую. В обоих случаях необходимо сформулировать запросы к базе. Далее я приведу несколько запросов, которыме могут быть наиболее часто востребованы для получения информации о трафике. Эти же запросы можно будет использовать и в скриптах.

    Для удобства введем несколько символических перемнных:

  • $IP - адрес для которого будем просматривать статистику;
  • $monthday - день месяца, за который просматриваем статику (целое число от 1 до 31);
  • $month - месяц, за который просматриваем статистику (целое число от 1 до 12);
  • $peer - тип трафика, принимает значения 0 или 1 (если src адреса соответсвуют пиринговым адресам). Просматриваем суммарную статистику для адреса $IP за день $monthday месяца $month с типом трафика $peer:
     select SUM(data_size)/1024/1024 from accounting where dst_ip = $IP
     and DAYOFMONTH(data) = $monthday and MONTH(data) = $month and peer = $peer;
    
    Просматриваем суммарную статистику для адреса $IP за месяц $month с типом трафика $peer:
     select SUM(data_size)/1024/1024 from accounting where dst_ip = $IP
     and MONTH(data) = $month and peer = $peer;
    
    Просматриваем суммарную статисику по всем дням для адреса $IP за месяц $month с типом трафика $peer:
     select SUM(data_size)/1024/1024, data from accounting where dst_ip = $IP and MONTH(data) =
     $monthand peer = $peer group by data;
    
    Просмотр подробной статистки за весь день $monthday месяца $month с выводом адресов, с которых шел трафик, времени и типа трафика:
     select time, data_size/1024/1024, src_ip, peer from accounting where dst_ip = $IP
     and DAYOFMONTH(data) = $monthday and MONTH(data) = $month;
    
    Ну вот, на этом этапе система достигла рабочего состояния. Далее остается только более тонакая настройка и отладка, в случае допущения каких-либо ошибок.

    Оригинал статьи расположен по адресу: http://www.opennet.ru/base/net/net_acct.txt.html.



    www.linuxcenter.ru
    Сети 24-03-2008
    Мини-HOWTO: Прозрачный Прокси-сервер при помощи Squid 24-03-2008 Сети
    Мини-HOWTO: Прозрачный Прокси-сервер при помощи SquidDaniel Kiracofe Перевод: Павел Гашев, ASPLinux АннотацияЭтот документ содержит в себе информацию, по установке прозрачногокэширующего HTTP-прокси-сервера, при помощи Linux и squid.СодержаниеВведениеОбзор "прозрачного" проксиНастройка ядраУстановка squidУстановка ipchains...


    Mini-HOWTO по преобразованию адресов в sendmail 24-03-2008 Сети
    Mini-HOWTO по преобразованию адресов в sendmailThomas Roesslerroessler@guug.de Перевод: Станислав Рогин, ASPLinux АннотацияЭтот документ вкратце описывает, как настроить конфигурацию sendmail дляпользователей, использующих доступ dial-up (по телефонной линии).СодержаниеАвторские праваВведениеРасположение файл...



  • Rambler's Top100

    Copyright © 2005 "shoprus.com.ua"


    Рейтинг@Mail.ru