Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Назначение

Для сбора статистики по IP-трафику в АСР «Гидра» существует специализированное агентское приложение — hcd (Hydra Collector Daemon). Этот агент принимает статистику по трафику от различных источников, преобразует её во внутренний формат и передаёт в ядро АСР для тарификации.

Поддерживаемые источники данных

  • Агрегатор Netflow/sFlow pmacct версии 0.12 и выше. Для агрегации статистики, поступающей с маршрутизаторов по протоколу Netflow, используется входящий в состав pmacct демон nfacctd.
  • Другие источники (текстовый формат)

Предварительные требования

  1. Сервер с установленной ОС Linux. Далее приведены инструкции для дистрибутивов Gentoo, RHEL/CentOS и Debian/Ubuntu.
  2. Язык программирования Python версии 2.6.x.

Установка pmacct

Gentoo

1. В файле /etc/portage/package.use укажите USE-флаг 64bit для пакета pmacct:

net-analyzer/pmacct 64bit

2. Установите pmacct:

# emerge -av pmacct

Debian/Ubuntu

Для дистрибутивов Ubuntu начиная с Maverick Meercat и Debian начиная с Sid — установите пакет pmacct:

$ sudo apt-get install pmacct

Если в репозитории используемого дистрибутива есть версия pmacct 0.12.1 и выше, то ее можно установить из deb-пакета указанным выше способом. Если версия более ранняя или отсутствует — следует скачать pmacct последней версии (0.12.5 на момент написания данного руководства) и собрать его из исходных кодов, см. раздел для RHEL.

RHEL/CentOS

Для pmacct в стандартной поставке отсутствует RPM, поэтому проще всего собрать его из исходных кодов.

1. Установите libpcap:

# yum install libpcap
# yum install libpcap-devel

2. Скачайте последнюю версию pmacct с официального сайта и распакуйте архив:

$ wget http://www.pmacct.net/pmacct-0.12.5.tar.gz
$ tar zxf pmacct-0.12.5.tar.gz
$ cd pmacct-0.12.5

3. Запустите скрипт конфигурации. Обязательно включите 64-битные счётчики:

$ ./configure --enable-64bit

4. Соберите и установите пакет:

$ make && sudo make install

5. Создайте каталог /etc/pmacct:

# mkdir /etc/pmacct

Установка hcd

Gentoo

1. Получите от производителя АСР «Гидра» исходные коды hcd (файл hcd-X.Y.tar.gz) и ebuild (файл hcd-X.Y.tar.gz).

2. Распакуйте в каталоге PORTDIR_OVERLAY файл hcd-X.Y.ebuild.tar.gz:

# tar zxvf hcd-1.2.ebuild.tar.gz -C /usr/local/portage

3. Для приложений АСР «Гидра» в Gentoo используется специальная категория пакетов app-hydra. Чтобы система Portage знала об этой категории, выполните следующую команду:

# echo "app-hydra" >> /etc/portage/categories

4. Скопируйте файл hcd-X.Y.tar.gz в каталог, где Portage хранит архивы с исходными кодами пакетов (обычно это /usr/portage/distfiles):

# cp hcd-1.2.tar.gz /usr/portage/distfiles

5. Установите hcd:

# emerge -av app-hydra/hcd

6. Установите Python-модуль dev-python/setuptools, если он отсутствует:

# emerge -av dev-python/setuptools

Этот модуль содержит пакетный менеджер easy_install для Python, который понадобится в следующем пункте.

7. Установите Python-модуль ConcurrentLogHandler:

# easy_install ConcurrentLogHandler

Установка завершена.

Настройка nfacctd

1. Создайте файл /etc/pmacct/nfacctd.conf следующего содержания:

daemonize: true
pidfile: /var/run/hydra/nfacctd.pid
nfacctd_ip: 127.0.0.1
nfacctd_port: 9992

aggregate[agg-ba]: src_net,src_mask,dst_host
aggregate[agg-ab]: src_host,dst_net,dst_mask

plugins: memory[agg-ba], memory[agg-ab]

imt_path[agg-ba]: /var/run/hydra/ipacc-agg-ba.pipe
imt_path[agg-ab]: /var/run/hydra/ipacc-agg-ab.pipe

networks_file: /etc/pmacct/networks.lst

refresh_maps: true
plugin_buffer_size: 50240
plugin_pipe_size: 50240000
imt_buckets: 65537
imt_mem_pools_size: 1024000

Здесь самыми важными являются параметры nfacctd_ip и nfacctd_port, в которых нужно указать IP-адрес и номер UDP-порта, на который поступают пакеты Netflow. Значения прочих настроек, как правило, можно оставить по умолчанию.

Название агрегатора, которое пишется в квадратных скобках, если убрать из него -ab (признак исходящего трафика) или -ba (признак входящего трафика), должно совпадать с кодом агрегатора в АСР «Гидра». Стандартным названием агрегатора, начиная с версии АСР «Гидра» 2.1.15, является agg.

Файл /etc/pmacct/networks.lst необходим для указания подсетей, используемых при агрегации:

! Список используемых подсетей (включая серые)
1.2.3.4/17
5.6.7.8/19

2. Если поток Netflow приходит в nfacctd еще не отфильтрованным, то это можно сделать, включив в nfacctd.conf следующие строки:

aggregate_filter[agg-ab]: src net 10.5.0.0/16 or src net 10.100.0.0/16 or src net 10.103.0.0/16
aggregate_filter[agg-ba]: dst net 10.5.0.0/16 or dst net 10.100.0.0/16 or dst net 10.103.0.0/16

Здесь задаются фильтры для статистики ab (по исходящему трафику) и ba (по входящему). Подсети нужно задавать те, в которых находятся абоненты. Синтаксис фильтра стандартный из библиотеки libpcap (используется в tcpdump, wireshark и т. д.)

3. Не следует добавлять демон nfacctd в автозапуск. Он будет запускаться автоматически агентом hcd с правами системного пользователя hcd. Поэтому необходимо убедиться, что следующие каталоги/файлы доступны этому пользователю с правами чтения и записи:

  • /var/run/hydra/
  • /etc/pmacct/networks.lst

Настройка агента hcd

1. Агент hcd уже должен быть установлен на сервере. Обычно он находится в каталоге /opt/hydra/hcd. Убедитесь, что для пользователя hcd доступны на чтение и запись следующие каталоги/файлы:

  • /var/log/hydra/hcd/
  • /etc/hydra/hcd.conf

2. Убедитесь, что демон hcd добавлен в автозапуск (Gentoo: rc-status, Debian/Ubuntu: ls -al /etc/rc4.d/|grep hcd)

3. Настройте конфигурационный файл агента hcd /etc/hydra/hcd.conf. Обычно конфигурация по умолчанию подходит и в ней нужно настроить только параметры доступа:

# Идентификатор коллектора трафика в АСР «Гидра». 
server id = 37301

# IP-адрес и порт, к которому привязывается сервер XML-RPC при запуске.
server ip = 91.197.172.10
server port = 8888

# Логин и пароль на сервере XML-RPC для управления hcd
server login = hydra
server password = 123

4. Запустите hcd в консольном режиме:

# sudo -u hcd /opt/hydra/hcd/bin/hcd.py -c

Если все действия выполнены правильно, то должно появиться сообщение об успешном запуске примерно следующего вида:

30.05.2011 19:06:12 CheckPIDAlive root DEBUG PID 16035 is running
30.05.2011 19:06:12 __init__ root INFO Attached to running aggregator (pid 16035)
30.05.2011 19:06:12 CreateXMLRPCServer root INFO Initializing XML-RPC server at 127.0.0.1:8888...
30.05.2011 19:06:12 RunXMLRPCServer root INFO Starting XML-RPC server...

Убедитесь, что процесс nfacctd запустился:

# ps aux|grep nfacctd
hcd      16035  0.1  0.0  19740 12072 ?        S    May10  40:31 nfacctd: Core Process [default]
hcd      16081  0.0  0.0  23072 14552 ?        S    May10  26:23 nfacctd: IMT Plugin [agg-ba]
hcd      16082  0.0  0.0  20176 11644 ?        S    May10  26:50 nfacctd: IMT Plugin [agg-ab]

5. Убедитесь, что Netflow-пакеты поступают в nfacctd и агрегируются:

# tcpdump -i eth0 udp port 9992
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
20:06:27.965803 IP 90.151.176.22.23801 > 90.151.179.106.9992: UDP, length 1464
20:06:27.966830 IP 90.151.176.22.23801 > 90.151.179.106.9992: UDP, length 1464
20:06:27.966837 IP 90.151.176.22.23801 > 90.151.179.106.9992: UDP, length 1464
$ /usr/bin/pmacct -s -p /var/run/hydra/hcd/ipacc-agg-ab.pipe | head
SRC_IP              DST_IP          DST_MASK  PACKETS  BYTES
90.151.179.157      0.0.0.0         0         186      18297
90.151.176.222      90.151.176.0    21        44       7788
10.5.9.12           10.0.0.0        8         2        463
90.151.176.107      0.0.0.0         0         513      239569
...

Особое внимание следует уделить проверке названий и последовательности полей в первой строке вывода утилиты pmacct. Они должны называться именно так и идти именно в том порядке, как показано выше.

Настройка АСР «Гидра»

1. Войдите в АСР «Гидра».
2. Найдите коллектор трафика (Справочники -> Агенты -> Коллекторы трафика) и откройте форму его редактирования. Обычно он в системе уже существует и называется Главный коллектор.
3. Введите настройки управления коллектором в соответствии с настройками, заданными в файле hcd.conf и сохраните их:

4. Откройте вкладку Компоненты. Там должен быть один компонент с кодом agg. Откройте форму его редактирования и привяжите к агрегатору все услуги передачи данных, которые будут с его помощью тарифицироваться:

5. Сохраните привязанные к агрегатору услуги, убедитесь, что агрегатор находится в состоянии Активный и вернитесь на вкладку Основные данные.
6. Установите галочку Обработка статистики по трафику в реальном времени. Убедитесь, что коллектор также находится в состоянии Активный и сохраните настройки. В нижней части страницы должно появиться сообщение вида Создана задача «Получение текущей статистики коллектора трафика Главный коллектор».
7. Перейдите на форму

Подготовка к запуску

1. В АСР «Гидра» откройте форму редактирования параметров фирмы(Администрирование -> Параметры -> Параметры фирмы) и установите значение параметра Минимальный объём IP-трафика за сеанс для попадания в неучтённый, Мб в 0. Это позволит в случае возникновения ошибок тарификации определить их причину.
2. В случае, если hcd и АСР «Гидра» находятся на разных серверах, убедитесь, что системное время на этих серверах синхронизируется по протоколу NTP.
3. Запустите задание Получение текущей статистики коллектора трафика Главный коллектор (Администрирование -> Задания или форма редактирования коллектора трафика, вкладка Задания). Дождитесь завершения сеанса.
4. Проверьте логи выполнения задания на интерфейсе. Как правило, при первом запуске выдается информация о том, что был обнаружен неучтенный трафик.

Возможные ошибки: TNS:no listener

Причины появления неучтенного трафика

Передача статистики из внешнего источника

  • No labels