Устройства
Устройства - физические или логические устройства, так или иначе участвующие в предоставлении доступа, управлении доступом, тарификации; устройства, которыми биллинг будет управлять и/или которые будут оповещать о наработке (RADIUS/Netflow/sFlow/SNMP), устройства-DHCP-Relay-агенты и т.д.
База устройств модуля представлена в виде дерева, которое отражает логическую модель для управления и связи различных устройств между собой биллингом. Для редактирования используется стандартная панель инструментов, по правому клику мыши на устройство доступны функции вырезки и вставки, для изменения предка узла устройства.
Редактор устройства.
В устройстве определяются поля: Идентификатор, Хост/порт, Логин, Пароль, Community/secret. Назначение данных полей зависит от того, какой процессор использует данное устройство. Например, поле Идентификатор может быть использовано в качестве значения Nas-Identifier при обработке RADIUS-пакетов или в качестве agentRemoteId/MAC-адреса при обработке DHCP-пакетов. В конфигурации устройства указывается текстовая конфигурация, которая также зависит от процессора, использующего устройство.
Конфигурация каждого устройства наследует все параметры конфигурации своего типа устройства, а затем устройства-предка (конфигурация которого также унаследована).А общим предком всех конфигураций является конфигурация модуля. Параметр, указанный в предке будет доступен во всех потомках и его можно переопределить в конфигурации типа устройства потомка и ещё раз - в конфигурации самого потомка. Это свойство можно использовать для определения одинаковых параметров для множества устройств с одним предком.
После корректировки параметров устройств для их перечитывания на серверах Access и Accounting необходимо нажать кнопку Перечитать конфигурацию на серверах, расположенную под деревом устройств. Данная кнопка позволяет оповещать сервера об изменениях только, когда конфигурация станет законченной. До тех пор сервера используют сохранённую в памяти конфигурацию. |
В контекстном меню на каждом устройстве доступны следующие пункты:
-
Договоры - открывает список договоров, на которых добавлен сервис, привязанный к данному устройству.
-
Cинхронизовать сервисы - синхронизует все сервисы на устройстве , для каждого сервиса вызываются команды удаления и создания сервиса на устройстве.
-
Выполнить команду - вызывает команду для обработчика управления устройством. В данном случае нужно вбивать имя конкретного метода, которое нужно вызвать.
-
Удалить событие из очереди - Удаляет событие activemq для этого устройства. Бывает полезно, когда из-за ошибки в обработчике активации сервисов событие все время падает при обработке, и не может быть обработано и попытки его обработки продолжаются .
-
Интерфейсы устройства - интерфейсы устройства. Описаны тут.
Также есть команды - Вырезать, Вставить, Удалить, позволяющие редактировать дерево устройств.
Атрибуты устройства
Атрибуты устройства - способ привязать к устройству дополнительные параметры, например, текстовый или адрес. Набор атрибутов связан через объект Сущность, который указывается в типе устройства. Таким образом у всех устройств одного типа один и тот же набор атрибутов (но не значений этих атрибутов).
Чтобы создать сущность нужно открыть вкладку Справочники - Атрибуты. Далее на вкладке Атрибуты добавить необходимые, если были добавлены атрибуты типа "список", то на вкладке Значения списков нужно добавить значения для этих атрибутов-списков. Затем на вкладке сущность создать новую, например, "Коммутатор" и добавить в сущность ранее созданные атрибуты, отсортировать их в нужном порядке.
Теперь созданная сущность будет доступна в редакторе типа устройства модуля Inet. После выбора сущности и сохранения типа устройства во всех устройствах данного типа будет соответствующий набор атрибутов в виде таблицы аналогично объектам или параметрам договора.
Корневые устройства
Все устройства разделены на группы авторизации, каждая со своим корневым устройством. Каждая из групп авторизации управляется отдельным изолированным Access-сервером, либо несколькими Access-серверами, которые работают в режиме кластера. Контроль IP-ресурсов, количества одновременных сессий сервисов производится только в пределах группы. Т.е. группы авторизации позволяют разделить предоставление услуг на не взаимосвязанные сегменты, что повышает масштабируемость.
В пределах группы авторизации может быть одна или несколько групп обработки. Каждая из групп обрабатывается своим Accounting-сервером, либо несколькими Accounting-серверами, работающими в режиме кластера. Корневой узел группы обработки должен быть выделен отдельным типом. Для простоты, корневые узлы группы авторизации и обработки могут быть объединены в один - таким во многих примерах в документации является корневое устройство "Access+Accounting".
Для корректной работы InetAccounting необходимо сконфигурировать в корневом устройстве обработчики тарификации и сброса данных в БД, представленные ниже. |
В конфигурации корневого узла группы обработки (InetAccounting) обязательно нужно указать параметры тарификации и обработки соединений. Для этого нужно задать "worker", указав количество потоков для него, обработчики, которые будут работать в этом worker’е и их параметры. Каждый worker назначается с идентификатором, например, accounting.worker.1. и accounting.worker.2. Каждый обработчик также задаётся с идентификатором. Таким образом, может быть несколько worker’ов и несколько обработчиков в них.
Параметры обработчика тарификации (tariffication):
-
minDeltaAmount - минимальная сумма нетарифицированного трафика, при которой тарифицировать соединение. Включает в себя все трафики в байтах плюс время в секундах, которое ещё не было протарифицировано;
-
delay - пауза между заданиями тарификации;
-
batchSize - максимальное количество протарифицированных соединений за одно задание.
Параметры обработчика соединений без трафика (tracking - используется для отслеживания изменения опций модуля для соединений, у которых нет трафика):
-
delay (delay.millis) - пауза между заданиями в секундах (в миллисекундах);
-
batchSize - максимальное количество протарифицированных соединений за одно задание.
Параметры обработчика сервисов без соединений (serv.tracking - используется для отслеживания изменения опций модуля для сервисов, у которых нет сессии и, соответственно, нет трафика):
-
delay (delay.millis) - пауза между заданиями в секундах (в миллисекундах);
-
batchSize - максимальное количество протарифицированных соединений за одно задание;
-
servTypeIds - типы сервисов, которые нужно обрабатывать (если не указано - то все типы);
-
accountingPeriodActivate - нужно ли активировать учётные периоды при проверке, 1 - активировать, 0 - не активировать.
Параметры обработчика событий (event.tracking - предназначен для более быстрой реакции на события, например, изменение статуса договора, активация тарифной опции):
-
delay (delay.millis) - пауза между заданиями в секундах (в миллисекундах);
-
batchSize - максимальное количество обработанных сервисов за одно задание.
Параметры сброса в базу (flushing):
-
minDeltaAccount - минимальная сумма несброшенной наработки соединения, при которой нужно сбрасывать в базу;
-
delay (delay.millis) - пауза между заданиями в секундах (в миллисекундах);
-
batchSize - максимальное количество сброшенных соединений за одно задание.
Параметры обработчика завершения сессий (finishing - завершает соединения, а также закрывает соединения по таймауту):
-
delay (delay.millis) - пауза между заданиями в секундах (в миллисекундах);
-
batchSize - максимальное количество протарифицированных соединений за одно задание.
Пример конфигурации:
# Количество потоков на worker
accounting.worker.1.thread.count=2
# Тарификатор:
# минимальная сумма трафика, при которой тарифицировать соединение
accounting.worker.1.tariffication.1.minDeltaAmount=0
# пауза между заданиями тарификации
accounting.worker.1.tariffication.1.delay=10
# максимальное количество тарифицируемых соединений за задание
accounting.worker.1.tariffication.1.batchSize=1000
# Трекер (обработка сессий без наработки):
# пауза между заданиями трекинга
accounting.worker.1.tracking.1.delay=10
# максимальное количество проверенных соединений за задание
accounting.worker.1.tracking.1.batchSize=1000
# Трекер (обработка сервисов модуля без активных сессий, по умолчанию не требуется):
# пауза между заданиями трекинга
accounting.worker.1.serv.tracking.1.delay=20
# максимальное количество проверенных соединений за задание
accounting.worker.1.serv.tracking.1.batchSize=100
# Трекер (обработка событий):
# пауза между заданиями трекинга (в миллисекундах)
accounting.worker.1.event.tracking.1.delay.millis=200
# максимальное количество проверенных сервисов за задание
accounting.worker.1.event.tracking.1.batchSize=500
# Количество потоков на worker
accounting.worker.2.thread.count=1
# Сброс в базу трафиков и наработки:
# минимальная наработка, при которой сбрасывать соединение в базу
accounting.worker.2.flushing.1.minDeltaAccount=0
# минимальная сумма трафика, при которой сбрасывать соединение в базу
accounting.worker.2.flushing.1.minDeltaAmount=0
# пауза между заданиями сброса в базу
accounting.worker.2.flushing.1.delay=20
# максимальное количество сброшенных соединений в базу за задание
accounting.worker.2.flushing.1.batchSize=500
# Количество потоков на worker
accounting.worker.3.thread.count=1
# Завершитель соединений:
# пауза между заданиями
accounting.worker.3.finishing.1.delay=20
# максимальное количество сброшенных соединений в базу за задание
accounting.worker.3.finishing.1.batchSize=500
Пример конфигурации с несколькими обработчиками тарификации (для более частой тарификации соединений с большим трафиком):
# Количество потоков на worker
accounting.worker.1.thread.count=3
# Тарификатор:
# минимальная сумма трафика, при которой тарифицировать соединение
accounting.worker.1.tariffication.1.minDeltaAmount=104857600
# пауза между заданиями тарификации
accounting.worker.1.tariffication.1.delay=10
# максимальное количество тарифицируемых соединений за задание
accounting.worker.1.tariffication.1.batchSize=1000
accounting.worker.1.tariffication.2.minDeltaAmount=10485760
accounting.worker.1.tariffication.2.delay=10
accounting.worker.1.tariffication.2.batchSize=1000
accounting.worker.1.tariffication.3.minDeltaAmount=0
accounting.worker.1.tariffication.3.delay=15
accounting.worker.1.tariffication.3.batchSize=1000
# Трекер (обработка сессий без наработки):
# пауза между заданиями трекинга
accounting.worker.1.tracking.1.delay=20
# максимальное количество проверенных соединений за задание
accounting.worker.1.tracking.1.batchSize=1000
# Трекер (обработка событий):
# пауза между заданиями трекинга (в миллисекундах)
accounting.worker.1.event.tracking.1.delay.millis=200
# максимальное количество проверенных сервисов за задание
accounting.worker.1.event.tracking.1.batchSize=500
# Количество потоков на worker
accounting.worker.2.thread.count=1
# Сброс в базу трафиков и наработки:
# минимальная наработка, при которой сбрасывать соединения в базу
accounting.worker.2.flushing.1.minDeltaAccount=0
# минимальная сумма трафика, при которой сбрасывать соединение в базу
accounting.worker.2.flushing.1.minDeltaAmount=0
# пауза между заданиями сброса в базу
accounting.worker.2.flushing.1.delay=30
# максимальное количество сброшенных соединений в базу за задание
accounting.worker.2.flushing.1.batchSize=500
# Количество потоков на worker
accounting.worker.3.thread.count=1
# Завершитель соединений:
# пауза между заданиями
accounting.worker.3.finishing.1.delay=20
# максимальное количество сброшенных соединений в базу за задание
accounting.worker.3.finishing.1.batchSize=500
Для обработки сервисов без сессий нужно добавить ещё один обработчик (а также можно увеличить количество потоков для accounting.worker.1 или вынести обработчик в отдельный worker):
# Трекер (обработка сервисов без сессий):
# пауза между заданиями трекинга
accounting.worker.1.serv.tracking.1.delay=60
# максимальное количество проверенных сервисов за задание
accounting.worker.1.serv.tracking.1.batchSize=500
# типы сервисов, которые нужно обрабатывать, через запятую
# (если пусто - будут обрабатываться сервисы всех типов!)
accounting.worker.1.serv.tracking.1.servTypeIds=
# нужно ли активировать учетный период при обработке
# (по умолчанию учетный период активируется при авторизации по RADIUS/DHCP или появлении новой сессии)
accounting.worker.1.serv.tracking.1.accountingPeriodActivate=1
Интерфейсы
Правой кнопкой на любом устройства можно вызвать интерфейсы из его контекстного меню.
Тут все зависит от настроек типа устройства. Если в типе устройства стоит галочка "Индивидуальные интерфейсы", тогда их нужно создавать в типе устройства и они автоматически будут созданы на всех устройствах (если вы создали индивидуальные интерфейсы на устройствах, которых нет в типе устройства, то они будут удалены при сохранении типа устройства) . Если же галочка "Индивидуальные интерфейсы" указана, то необходимо на каждом устройстве создавать интерфейсы вручную.
В интерфейсе можно задавать индекс.
Индекс интерфейса используется для управления по snmp и сборе статистики по netflow. По умолчанию, если не указан, то индекс приравнивается номеру интерфейса. В тех же случаях, где индекс отличается от номера интерфейса, его можно задать явно. Так же для индекса может быть указан период с точностью до секунд на который данный индекс действует. Может быть полезно, например, в случае, когда cisco после перезагрузки меняет индексы интерфейсов и в Netflow для того же самого интерфейса приходит запись с новым индексом.