Описание
Модуль выполняет функции:
- Авторизации, аутентификации Wi-Fi пользователей, подключающихся при помощи BRAS (позволяет обслуживать пользователей, используя точки доступа сторонних производителей).
- Сбор аккаунтинга для всех механизмов авторизации и передача его в базу данных.
- Контроль за количеством одновременных сессий Wi-Fi пользователей для всех механизмов авторизации.
- Деаутентификация Wi-Fi пользователей, авторизующихся в режимах WPA-enterprise и через BRAS.
- Контроль за лицензией и сообщение о приближении к лимиту по времени использования (каждый день после истечения 90%) или по количеству сессий (каждый час при превышении 90% сессий) администратору.
Доступ к технической консоли можно получить по ссылке 'http://<ip address pcrf>:7070/pcrf'.
Управление сервисом
Установка сервиса
apt-get install eltex-pcrf
Способ запуска/остановки
| Действие | Команда | Ответ |
|---|---|---|
| Проверка состояния | service eltex-pcrf status | Сервис работает * eltex-pcrf process is running Сервис не работает * eltex-pcrf process is not running |
| Запуск сервиса | service eltex-pcrf start | Сервис запустился * Starting eltex-pcrf Сервис уже работает * eltex-pcrf is already running |
| Остановка сервиса | service eltex-pcrf stop | Сервис успешно остановлен * Stopping eltex-pcr Сервис не остановлен, т.к. не был запущен * eltex-pcrf is not running |
| Перезапуск сервиса | service eltex-pcrf restart | Сервис успешно перезапущен * Stopping eltex-pcrf * Starting eltex-pcrf * eltex-pcrf is not running * Starting eltex-pcrf |
Конфигурация
/etc/default/eltex-pcrf
Содержит базовые параметры для запуска приложения. Пример дефолтной конфигурации:
| Параметры | Описание |
|---|---|
JAVA=/usr/bin/java | Расположение Java-машины. |
JAVA_INIT_HEAP | Количество памяти, выделяемое на работу сервиса при старте. Рекомендуется выставлять равное JAVA_MAX_HEAP. |
JAVA_MAX_HEAP | Максимальное количество памяти, которое может зарезервировать сервис. |
GC_OPTS="-XX:+UseG1GC \ . . . | Параметры сборщика мусора. |
# To monitor via JMX - jconsole to host:port . . . | Параметры для работы с JMX. |
| HEAP_DUMP_OPTS | Параметры записи дапма памяти. |
| VERTX_CACHE_DIR_OPT | Расположение кэша. |
| JVM_OPTS | Дополнительные опции для запуска jvm. |
| NOTIFICATION_ADDR | Адрес для отправки уведомлений. |
/etc/eltex-pcrf/eltex-pcrf.json
Содержит настройки взаимодействия с другими сервисами.
| Параметры | Описание |
|---|---|
| Настройки авторизации | |
auth.address | Интерфейс сервера, ожидающий запросы на авторизацию. |
auth.port | Порт сервера, на который принимаются запросы на авторизацию. |
auth.mac.open.timeout.s | Длительность "открытой авторизации", используемая, если не переопределено в настройках портала. |
auth.mac.welcome.service | Сервис доступа, используемый если не переопределен в настройках тарифа. |
| Настройки сбора аккаунтинга | |
acct.address | Интерфейс сервера, ожидающий аккаунтинг. |
acct.port | Порт сервера, на который принимаются пакеты аккаунтинга. |
| Настройки для проведения авторизации Wi-Fi пользователей через BRAS | |
aaa.host | Адрес сервиса Eltex.RADIUS. |
aaa.secret | RADIUS key. |
aaa.auth.port | Порт, на который отправляются запросы авторизации. |
aaa.acct.port | Порт, на который отправляться пакеты аккаунтинга. |
aaa.rest.port | Порт для обмена служебными командами с Eltex.RADIUS. |
aaa.timeout | Время ожидания ответа. |
aaa.attempts | Количество попыток отправки пакетов. |
| Порт мониторинга | |
web.monitoring.port | Порт для работы технологической консоли и мониторинга. |
| Включение кластеризации | |
cluster.enable | Запуск кластеризации. |
cluster.eventBusPort | Порт для обмена данными с нодами в кластере. |
| Настройки коннектов к БД MySQL ('radius', 'eltex_ems', 'wireless', 'auth.service') | |
url | Строка подключения к базе данных Mysql. |
user | Логин для подключения к БД. |
password | Пароль для подключения к БД. |
max_pool_size | Максимальное количество коннектов, которое можно открыть сервис для подключения. |
| Подключение к БД Mongo( 'pcrf', 'ott') | |
connection_string | URI для подключения к Mongo. |
db_name | Название базы, к которой производится подключение. |
| Параметры хранения активных сессий в Mongo | |
session.check.period.s | Период проверки актуальности хранимых сессий. Если сессия закрыта во время проверки или время ее хранения истекло, она удаляется из базы. |
unauth.store.time.s | Период хранения сессий пользователей, созданных на BRAS, авторизация которых не была выполнена. |
interval.number.expired | Количество пропущенных интервалов аккаунтинга, после которого сессия считается "зависшей" и подлежит закрытию. |
min.interval.s | Минимальное значение интервала аккаунтига, которое используется для расчета зависших сессий. |
default.interval.s | Начальное значение интервала аккаунтига, которое сохраняется в сессию сразу после ее создания. |
| Параметры отправки CoA | |
coa.timeout | Время ожидания ответа на команду. |
coa.attempts | Количество повторных отправок. |
| coa.secret | Секретный ключ. |
remote.coa.port | Порт, на который будут отправляться команды. |
log.clean.period | Время хранения результатов. |
log.store.period period unit | Время хранения логов выполнения команд. Количественный период. Единицы измерения (по дефолту - дни "D"). |
| worker.pool.size | Размер пула потоков выделенного для вертикали CoA |
| Настройка языка для отображения ошибок | |
language | Язык, используемый пи логировании, дефолтное значение "en". Можно использовать "ru", однако логи переведены не все. |
| Настройка подключения к сервису NBI | |
wdsl.url | Адрес для обращения на сервис NBI. |
username | Логин от учетной записи. |
password | Пароль от учетной записи. |
connection.timeout.ms | Время ожидания при подключении к сервису. |
request.timeout.ms | Время ожидания ответа при выполнении запроса на сервис. |
Интервал обновления тарифных планов | |
interval | Интервал обновления тарифных планов. |
unit | Единицы измерения интервала (по дефолту измеряется в часах "hours"). |
| Путь к директории с временными файлами списков URL | |
| filters.cache.dir | Расположение директории. |
| Настройки коннектов к БД Yandex ClickHouse | |
| url | Строка подключения к базе данных Yandex ClickHouse. |
| user_name | Логин от учетной записи. |
| user_password | Пароль от учетной записи. |
| actualization_period_ms | Период проверки доступности БД. |
| Параметры сохранения аккаунтинга | |
| use_clickhouse | Сохранять аккаунтинг в базу данных Yandex ClickHouse. |
| use_mysql | Сохранять аккаунтинг в базу данных MySQL. |
| batch_interval_ms | Интервал сохранения аккаунтинга в базу данных. |
| max_queue_load | Размер очереди при достижение которого запускается сохранение аккаунтинга в базу данных. |
| Параметры выгрузки generic AP, полученных из аккаунтинга по option 82 | |
| max_aps_in_queue | Максимальное число generic AP в очереди на добавление, по достижении которого начнется их выгрузка в EMS. |
| ap_register_interval_ms | Интервал времени (мс), по достижении которого начнется выгрузка generic AP в EMS, находящихся в очереди. |
| added_ap_cache_ttl_ms | Интервал времени (мс), в течение которого для выгруженных или обновленных generic AP не будет выполняться попытка выгрузить их в EMS. |
| host | IP-адрес, на котором находиться EMS-NBI. |
| port | Порт, на котором находится EMS-NBI. |
| worker_pool_size | Количество выделенных потоков, задействованных для добавления GenericAP. |
| Параметры подключения к брокеру сообщений Apache Kafka | |
| mcd.enabled | Включение отправки сообщений в брокер сообщений. |
Параметры circuit.breaker | |
| timeout.ms | Время, после которого попытка отправки сообщения считается неудачной |
| max.failures | Количество неудачных попыток для перехода в состояние игнорирования отправки сообщений. В случае, когда количество неудачных отправок сообщений достигает значения max.failures, следующие попытки отправки будут игнорироваться в течение периода reset.ms. |
| reset.ms | Время, в течение которого будут игнорироваться следующие попытки отправки сообщений. По истечении этого времени будет предпринята еще одна попытка отправки сообщения. |
| Параметры producer | |
| bootstrap.servers | Адресе сервера брокера сообщений. |
| Верхняя граница задержки для пакетной обработки сообщений. | |
| topic | Имя топика. |
| max.block.ms | Время блокировки на отправку сообщений. |
| request.timeout.ms | Максимальное время ожидания клиентом ответа на запрос. |
| delivery.timeout.ms | Время ожидания ответа после отправки сообщения. |
| acks | Количество подтверждений чтобы считать запрос завершонным. |
| retries | Количество попыток отправки в течение delivery.timeout.ms. |
/etc/eltex-pcrf/hazelcast-cluster-network.xml
Конфигурация кластера Hazelcast, используемого для объединения отдельных нод PCRF.
| Параметры | Описание |
|---|---|
<name>dev</name> | Имя ноды. Должно быть одинаковым на всех устройствах. Если узлы с разными именами, то в кластер не объединяются. |
<public-address>192.168.0.1</public-address> | Собственный адрес ноды в кластере. |
<member>192.168.0.1</member> <member>192.168.0.2</member> | Список нод, состоящих в кластере. Необходимо указывать как собственный адрес, так и всех нод состоящих в кластере. |
<interface>192.168.0.1</interface> | Адрес интерфейса ноды в кластере (как правило равен public-address). |
/etc/eltex-pcrf/log4j.xml
Файл настроек логирования.
- Максимально допустимый размер файла (при его превышении создается новый файл. а старый архивируется):
<Property name="maxSize" value="5MB"/>
- Максимальное количество архивных файлов, при его превышении наиболее старые файлы будут перезаписываться:
<Property name="maxCount" value="7"/>
- Базовая директория хранения логов:
<Property name="logDir" value="/var/log/eltex-pcrf"/>
- Блок настройки перенаправления логов в Graylog (уровень логирования, адрес, порт):
<Property name="gelfHost" value="udp:lab3-test.eltex.loc"/> <Property name="gelfPort" value="12201"/> <Property name="gelfLevel" value="OFF"/
- Уровень логирования:
<Root level="DEBUG">