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

Принцип работы

Коллектор SNMP-трафика предназначен для снятия статистики о трафике с компонентов оборудования или сетевых служб посредством SNMP-запросов. При запуске коллектор получает из АСР всю необходимую информацию об оборудовании, с которым ему необходимо взаимодействовать, и сохраняет её во временный конфигурационный файл snmp-load.yml. При каждом последующем запуске коллектор повторно считывает информацию из АСР и обновляет конфигурационный файл. Если же БД АСР временно недоступна, коллектор продолжит работать с уже имеющимся конфигурационным файлом.

Пример конфигурационного файла snmp-load.yml:

operator_devices:
  50966001: {collect_type_id: 2097, community: private, in_oid_template: 1.3.6.1.2.1.31.1.1.1.6.$IFINDEX,
    ip_address: 217.13.214.10, out_oid_template: 1.3.6.1.2.1.31.1.1.1.10.$IFINDEX,
    port: 161, unit_id: 2049}
user_devices:
- firm_id: 100
  object_id: 4572678113591
  operator_obj_id: 50966001
  substs: {IFINDEX: '17'}
  user_id: 4572678110091

Режимы работы

Коллектор имеет 3 режима работы: load, save и update. Данные режимы полностью автономны и друг с другом не пересекаются.

  • В режиме load коллектор занимается снятием статистики с оборудования и сохраняет информацию в специальные файлы вида snmp.dat.%DATETIME%, где %DATETIME% — время образования файла. Работа с файлами организована таким образом, что первоначально информация записывается в буферный файл snmp.dat, а при достижении им определенного размера (настраивается в конфигурационном файле коллектора hsnmp.conf) создается файл вида snmp.dat.%DATETIME%, который более не подлежит изменению. Также во время работы создается служебный файл snmp.dat.lock, который обеспечивает корректную работу при многопоточном обращении к файлу snmp.dat в процессе работы коллектора.
  • В режиме save коллектор отправляет полученную статистику в АСР. При этом в случае, если сервер АСР недоступен, информация не теряется, а продолжает храниться в виде файлов до следующего успешного соединения с сервером. После успешной отправки файлов в АСР созданные файлы удаляются. Необходимо обязательно обеспечить их резервное копирование.
  • Режим update обновляет параметр ifIndex для компонентов оборудования, у которых включен флаг «Сбор статистики по трафику через SNMP». Поскольку в отличие от ifDescr значения ifIndex периодически изменяются, желательно производить синхронизацию каждый раз перед снятием статистики. Если ifIndex обновился, а коллектор не произвел синхронизацию, статистика будет снята некорректно. Необходимо учитывать, что режим update обновляет только параметр ifIndex. Если в системе используются параметры IfIndex In/Out, то их обновление производиться не будет.

Конфигурация коллектора

Пример конфигурационного файла hsnmp.conf:

# Уровень логирования
log_path: /var/log/hsnmp/hsnmp.log
# Максимальный размер лог-файла до создания нового
log_rotate_size: 1048576
# Количество резервируемых лог-файлов
log_rotate_count: 25

# Название БД
database_name: dev
# Пользователь БД
database_user: AIS_NET
# Пароль пользователя БД
database_password: password

# Путь до директории с данными
datadir_path: /var/spool/hydra/hsnmp
# Размер буфера сбора статистики до загрузки в АСР, байты
datafile_buffer_size: 51200 # 50 Кб

# Размер пула потоков для снятия данных
load_threads_pool_size: 5
# Таймаут SNMP-запроса
snmp_request_timeout: 1
# Число попыток SNMP-запроса
snmp_request_retries: 5

# Идентификатор службы АСР
hydra_service: 4573437479801
# Идентификаторы услуг АСР
hydra_goods:
  # Входящее направление
  in:  40213501
  # Исходящее направление
  out: 40213701

Базовая настройка АСР

Чтобы произвести настройку АСР для работы с SNMP коллектором, необходимо выполнить несколько шагов.

Настройка номенклатуры

Добавление дополнительных параметров

В меню Справочники → Номенклатура → все ТМЦ → Активное оборудование необходимо отредактировать пункт «Дополнительные параметры». В дополнение к имеющимся там позициям введите следующие:

Код

Тип данных

Наименование

Комментарий

Справочник

GOOD_SNMPInOIDTemplate

Строка

Шаблон SNMP OID для вх. трафика

Применяется для формирования SNMP OID на операторском оборудовании для сбора статистики по входящему трафику

 

GOOD_SNMPOutOIDTemplate

Строка

Шаблон SNMP OID для исх. трафика

Применяется для формирования SNMP OID на операторском оборудовании для сбора статистики по исходящему трафику

 

GOOD_SNMPUnit

Справочное значение

Единица измерения трафика

Применяется для установки единицы измерения трафика при сборе по SNMP

Единицы измерения данных

GOOD_SNMPCollectType

Справочное значение

Тип работы с SNMP-данными

Применяется для установки типа обработки данных при сборе по SNMP

Тип работы с данными из внешних источников

Для всех этих доп. параметров необходимо выбрать маркер «Наследуется позициями».

В меню Справочники → Номенклатура → все ТМЦ → Активное оборудование → Позиции спецификации → Порт также необходимо отредактировать пункт «Дополнительные параметры» и добавить следующие позиции:

Код

Тип данных

Наименование

Комментарий

Справочник

Obj_SNMPIfIndex

Строка

SNMP ifIndex

Значение ifIndex для использования в SNMP-командах

 

Obj_SNMPTrafStat

Флаг

Сбор статистики по трафику через SNMP

Применяется для операторского оборудования, сбор статистики по трафику с которого осуществляется с помощью SNMP

 

Obj_SNMPIfIndexIn

СтрокаSNMP ifIndex InЗначение ifIndex для использования в SNMP-командах для входящего трафика 

Obj_SNMPIfIndexOut

СтрокаSNMP ifIndex OutЗначение ifIndex для использования в SNMP-командах для исходящего трафика 

Для данных доп. параметров следует отметить маркер «Свойство для объекта».

Примечание: дополнительные параметры IfIndex In/Out являются не обязательными. Их использование необходимо только в случае, когда IfIndex различается для входящего и исходящего трафика.

Настройка дополнительных параметров

На форме редактирования определенного типа оборудования в меню Справочники → Номенклатура → все ТМЦ → Активное оборудование рассмотрим значение появившихся дополнительных полей (в случае если маркер «Свойство для объекта» не отмечен, иначе настройка параметров выполняется на конкретном операторском оборудовании).

Тип работы с SNMP-данными

  • Кумулятивное обновление
    В данном режиме работы вся информация по трафику для заданного объекта хранится в БД в одном поле и перезаписывается по мере обновления поступающей информации с коллектора.
  • Текущее значение
    В данном режиме работы вся информация по трафику для заданного объекта хранится в БД в отдельных полях, что позволяет впоследствии произвести анализ активности за определенный период времени (используется для тарификации типа burstable).

Шаблон SNMP OID для исх. трафика

Здесь необходимо указать шаблон адреса счетчика, с которым нам необходимо работать. В качестве ifIndex можно указать подстановку $IFINDEX.
Пример заполнения данного поля:

1.3.6.1.2.1.31.1.1.1.6.$IFINDEX

В случае, когда IfIndex различается для входящего и исходящего трафика можно воспользоваться подстановкой $IFINDEX_OUT.
Пример заполнения данного поля:

1.3.6.1.2.1.31.1.1.1.6.$IFINDEX_OUT

Шаблон SNMP OID для вх. трафика

Если IfIndex одинаков для входящего и исходящего трафика, то настраивается аналогично предыдущему пункту.

Если используется дополнительный параметр Obj_SNMPIfIndexIn, то можно воспользоваться подстановкой $IFINDEX_IN.
Пример заполнения данного поля:

1.3.6.1.2.1.31.1.1.1.10.$IFINDEX_IN

Единица измерения трафика

Выбор единицы измерения трафика. Как правило, используются байты.

Настройка активного оборудования

Создание сетевой службы коллектора

Для работы SNMP-коллектора данных в АСР необходимо завести соответствующую службу. Для этого перейдите в меню Оборудование → Сетевые службы и нажмите кнопку «Добавить». В поле «Тип» выберите «Коллектор данных». На странице редактирования только что созданной сетевой службы найдите поле «Идентификатор», значением которого является некоторый код, который необходимо занести в параметр hydra_service конфигурационного файла hsnmp.conf.

При создании данной сетевой службы в системе также автоматически создается задание, которое может запускаться с определенной периодичностью и получать данные с коллектора. По умолчанию задание создается в заблокированном состоянии и его необходимо разблокировать вручную. Управление заданиями осуществляется в меню Администрирование → Задания.

Привязка компонентов абонентского оборудования к компонентам операторского оборудования

Необходимо перейти на закладку «Привязки» формы редактирования компонента абонентского оборудования (для этого сначала нужно перейти на страницу редактирования абонента и в разделе «Абонентское оборудование» кликнуть по компоненту, для которого необходимо сделать привязку).

Под прямыми привязками в системе подразумеваются привязки абонентского оборудования к операторскому, под обратными — операторского к абонентскому. Аналогичные действия также можно производить со страницы редактирования активного оборудования Справочники → Активное оборудование. Поле «Тип», как правило, имеет значение «Сетевое соединение» либо «Физическое соединение».

Установка ifIndex и ifDescr для компонентов оборудования

На вкладке «Состав» формы редактирования активного операторского оборудования необходимо выбрать компонент (порт), по которому требуется производить учет статистики, и на странице его редактирования отметить флаг «Сбор статистики по трафику через SNMP», заполнить поле «SNMP ifIndex» (или поля «SNMP ifIndex In» и «SNMP ifIndex Out»), а также в поле «Код» ввести значение ifDescr в соответствии с конфигурацией вашего оборудования.

Настройка управления активным оборудованием

Необходимо перейти на закладку «Общие данные» формы редактирования активного оборудования. В разделе «Настройка управления активным оборудованием» добавить новую строку:

Служба

Тип

Интерфейс

Порт TCP/UDP

Учетная запись

Пароль

Абонент/ISP

Коллектор данных

SNMP v2c

<IP адрес оборудования>

Порт SNMP (обычно 161)

 

<SNMP community>

<Оператор связи>

Запуск коллектора

Запуск коллектора должен производиться под пользователем hsnmp средствами планировщика задач (cron). При запуске обязательно указывать ключ -m и требуемый режим работы коллектора — load, save или update. Также при запуске скрипта из cron рекомендуется указывать ключ -s, который реализует «тихий» режим работы, в котором вся информация пишется в лог-файл.

Краткое описание поддерживаемых ключей запуска можно посмотреть по команде ./hsnmp.py -h, например:

hsnmp@server:~/hsnmp/lib$ ./hsnmp.py -h
Usage: hsnmp.py [options]

Options:
  -h, --help            show this help message and exit
  -m MODE, --mode=MODE  Run mode: "load", "save", "update"
  -f CONFIG, --config=CONFIG
                        Config path (default:
                        "conf/hsnmp.conf;/etc/hsnmp/hsnmp.conf")
  -s, --silent          Silent mode

Автоматизация запуска коллектора через cron

Предварительно необходимо создать папку для хранения резервных копий файлов с данными, которые коллектор создает при работе:

root@server:~# mkdir /var/spool/hydra/hsnmp/backup && \
               chown hsnmp:hsnmp /var/spool/hydra/hsnmp/backup

Настройка cron

Для редактирования конфигурационного файла cron следует использовать следующую команду:

root@server:~# crontab -e

Пример конфигурационного файла cron для коллектора:

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

# m h dom mon dow user        command
*/15 * * * * sudo -u hsnmp -i cp /var/spool/hydra/hsnmp/snmp.dat.* /var/spool/hydra/hsnmp/backup/ && sudo -u hsnmp -i /opt/hydra/hsnmp/lib/hsnmp.py -m save -s
*/5 * * * * sudo -u hsnmp -i /opt/hydra/hsnmp/lib/hsnmp.py -m update -s && sudo -u hsnmp -i /opt/hydra/hsnmp/lib/hsnmp.py -m load -s
#

Дополнительно необходимо организовать периодическую очистку директории backup от устаревших файлов.

Запуск задания по тарификации трафика

При создании сетевой службы коллектора, автоматически создается задание «Получение текущей статистики коллектора данных», которое занимается тарификацией информации о трафике, полученной с коллектора. По умолчанию задание создается в состоянии «Заблокировано», поэтому для запуска механизма тарификации трафика задание необходимо разблокировать. Управление заданиями осуществляется в через меню Администрирование → Задания.

  • No labels