UDR (Usage Detail Record) — агрегированные записи о том, сколько и какого трафика передал абонент за интервал времени, обогащенные данными его абонентской сессии: логин, IP-адрес, сервер доступа (NAS), а для мобильной сети — IMSI, IMEI, тип радиодоступа, местоположение и др.
UDR позволяют связать сетевую активность с конкретным абонентом и передавать полученные данные во внешние системы. В зависимости от источника сетевых данных формируются UDR двух видов:
Формирование UDR — необязательная функция, по умолчанию выключена.
Данные, поступающие с AAA-ресиверов, записываются в сырую таблицу aaaflow, она создается автоматически при настройке AAA-ресиверов. В процессе вставки данных с ресиверов в aaaflow дополнительно формируются следующие таблицы:
aaa_ip_login_bind — используется как справочник для связи и подмены поля Login в таблицах fullflow и clickstream.aaa_acc_state — состояние абонентских сессий. Из нее в UDR подставляются данные абонента.aaa_udr_fullflow — таблица UDR по сессиям. Необходима для формирования и экспорта SSL UDR (а также других типов UDR в зависимости от применяемых фильтров).aaa_udr_clickstream — таблица UDR по HTTP-запросам. Необходима для формирования и экспорта HTTP UDR, в том числе по запросам HTTPS.Как формируются записи:
aaa_acc_state по паре «логин, IP-адрес абонента».aaa_udr_fullflow_dist и aaa_udr_clickstream_dist.
Накопленные UDR выгружаются в файлы за один интервал, сжимаются (gzip) и помещаются в директории /var/qoestor/backend/dump/udr_fullflow/success/ и /var/qoestor/backend/dump/udr_clickstream/success/. Выгрузку запускает администратор вручную или по расписанию.
При заданном параметре UDR_SCP файлы дополнительно отправляются по SCP в заданную директорию на удаленном сервере. Файлы, которые не удалось отправить, переносятся в подкаталог error/.
Параметры UDR задаются в разделе Администратор → Конфигурация QoE Stor → Настройки журнала AAA или в файле /var/qoestor/backend/.env. При редактировании файла вручную изменения применяются по-разному:
FILL_*, UDR_FULLFLOW_TIME_INTERVAL, UDR_CLICKSTREAM_TIME_INTERVAL — выполнить fastor-reload-optionsUDR_FULLFLOW_CLICKSTREAM_JOIN, UDR_FULLFLOW_FILTER, UDR_CLICKSTREAM_FILTER, FILL_UDR_FULLFLOW_DIC_LIFETIME, FILL_UDR_FULLFLOW_DIC_LIMIT — выполнить fastor-db-aaa-schemeUDR_* — ничего, параметры читаются при каждом запуске выгрузкиПолный перечень параметров — в разделе Описание параметров.
Для функций формирования и экспорта UDR нужна специальная схема базы данных. Она устанавливается командой:
fastor-db-aaa-scheme
Команду нужно выполнять повторно после каждого изменения параметров схемы: режима получения объемов, условий отбора или параметров справочника.
Добавить AAA ресиверы: в разделе Администратор → Конфигурация QoE Stor создать ресивер с типом "AAA flow". Подробнее о создании ресиверов
В разделе Администратор → Конфигурация QoE Stor → Настройки журнала AAA задать настройки AAA-логов.
Параметры FILL_IP_LOGIN_BINDING_FROM_AAA и AAA_REPLACE_LOGIN_IP_LOGIN_BIND необходимо включать только если требуется привязка IP к Login на стороне QoE Stor.
Для формирования UDR должны быть включены:
FILL_ACC_STATE_FROM_AAA — всегда;FILL_UDR_FULLFLOW — для UDR по сессиям, а также для UDR по HTTP-запросам с объемами трафика (режимы 1 и 2 параметра UDR_FULLFLOW_CLICKSTREAM_JOIN);FILL_UDR_CLICKSTREAM — для UDR по HTTP-запросам. Если нужны только UDR по сессиям, параметр не включайте.
Объем трафика, длительность и протокол для UDR по HTTP-запросам берутся из UDR по сессиям. Способ задается параметром UDR_FULLFLOW_CLICKSTREAM_JOIN:
0 (по умолчанию) — объем, длительность и протокол не заполняются; время берется из времени запроса. Выбирать, когда нужны только сами запросы1 — данные берутся прямым соединением с UDR по сессиям. Выбирать, когда нужны объемы, UDR по сессиям включены2 — данные берутся из справочника, в который помещаются UDR по сессиям за текущий и предыдущий интервал. Выбирать, когда нужны объемы; обязательно задать размер и период обновления справочника
Для режимов 1 и 2 должен быть включен FILL_UDR_FULLFLOW. Для режима 2 дополнительно включается FILL_UDR_FULLFLOW_DIC и задаются FILL_UDR_FULLFLOW_DIC_LIMIT и FILL_UDR_FULLFLOW_DIC_LIFETIME: при значениях по умолчанию (0) справочник остается пустым.
Пример настройки режима 2:
UDR_FULLFLOW_CLICKSTREAM_JOIN=2 FILL_UDR_FULLFLOW_DIC=1 FILL_UDR_FULLFLOW_DIC_LIFETIME=60 FILL_UDR_FULLFLOW_DIC_LIMIT=5000000
Значения размера и периода обновления справочника в примере условные — они подбираются под объем трафика и память узла.
После изменения режима выполните fastor-db-aaa-scheme (см. Схема БД).
Инструкция ниже актуальна, только если нужен экспорт UDR
В разделе Администратор → Конфигурация QoE Stor → Настройки журнала AAA настроить связь QoE Stor c сервером хранения UDR, используя SSH-ключ.
UDR_SCPUDR_SCP_PORTUDR_SCP_DIRUDR_FULLFLOW_FORMAT и UDR_CLICKSTREAM_FORMAT
Файлы отправляются командой scp без запроса пароля, поэтому для пользователя, от имени которого запускается выгрузка, должен быть настроен вход на удаленный сервер по SSH-ключу. Проверить доступ:
ssh -p 22 udr@192.0.2.20 "ls /data/udr/"
Если отправка на удаленный сервер не нужна, не задавайте UDR_SCP — файлы будут оставаться в подкаталоге success/ на сервере QoE Stor.
Установка пакета расписание выгрузки не создает. Настроить расписание экспорта UDR в crontab пользователя root на сервере QoE Stor.
crontab -e и добавить две записи: */15 * * * * sh /var/qoestor/backend/app_bash/aaa_udr/make_udr_fullflow.sh > /dev/null 2>&1 */15 * * * * sh /var/qoestor/backend/app_bash/aaa_udr/make_udr_clickstream.sh > /dev/null 2>&1
UDR_FULLFLOW_TIME_INTERVAL и UDR_CLICKSTREAM_TIME_INTERVAL. Рекомендуется задавать оба интервала одинаковыми.UDR_FULLFLOW_PERIOD_FROM → UDR_FULLFLOW_PERIOD_TO и UDR_CLICKSTREAM_PERIOD_FROM → UDR_CLICKSTREAM_PERIOD_TOПериод запуска в crontab должен совпадать с интервалом UDR: при настройках по умолчанию каждый запуск выгружает один предыдущий завершенный интервал. Если интервал изменен, измените и период в crontab.
В случае если UDR файл не был создан или был сгенерирован с ошибкой или в других подобных ситуациях, есть возможность создания UDR файла в ручном режиме.
Файлы генерируются из таблиц aaa_udr_fullflow и aaa_udr_clickstream, поэтому сгенерировать UDR можно только за период, который еще хранится в этих таблицах (см. Хранение).
Скрипт создания UDR можно запустить вручную. Без параметров выгружается предыдущий завершенный интервал, произвольный период задается ключами --from и --to:
sh /var/qoestor/backend/app_bash/aaa_udr/make_udr_clickstream.sh --from '2025-11-19 14:30:00' --to '2025-11-19 14:45:00'
sh /var/qoestor/backend/app_bash/aaa_udr/make_udr_fullflow.sh --from '2025-11-19 14:45:00' --to '2025-11-19 15:00:00'
Скрипт ничего не выводит в консоль, результат записывается в журнал (см. Проверка и просмотр UDR).
Генерировать UDR можно только блоками, равными интервалу UDR (по умолчанию 15 минут), например:
Файл будет помещен в ту же папку, где хранятся автоматически сгенерированные UDR:
/var/qoestor/backend/dump/udr_clickstream/success/ — для UDR Clickstream;/var/qoestor/backend/dump/udr_fullflow/success/ — для UDR Fullflow.
Файл будет назван по времени начала интервала в формате YYYYMMDDHHMMSS: SSL_<начало>.dump.gz для UDR Fullflow и HTTP_<начало>.dump.gz для UDR Clickstream. Например, для периода с 19.11.2025 14:45:00 по 19.11.2025 15:00:00 файл Fullflow UDR будет называться SSL_20251119144500.dump.gz.
Ограничить хранение можно двумя параметрами:
QOESTOR_AAA_MAIN_LOG_PARTITIONS_LIFE_TIME_HOUR — задает время хранения сырого AAA-лога в часах. По умолчанию: 2 часа.QOESTOR_AAA_UDR_LOG_PARTITIONS_LIFE_TIME_HOUR — задает время хранения агрегированных UDR логов в часах. По умолчанию: 2 часа.
Файлы в каталогах success/ и error/ автоматически не удаляются — следите за свободным местом и настройте их очистку.
После включения наполнения дождитесь очередной загрузки данных (по умолчанию раз в 10 минут) и выполните:
clickhouse-client --query "select udr_time, count() from qoestor.aaa_udr_fullflow where udr_time > now() - 3600 group by udr_time order by udr_time" clickhouse-client --query "select udr_time, count() from qoestor.aaa_udr_clickstream where udr_time > now() - 3600 group by udr_time order by udr_time"
Должны появиться строки за последние интервалы. Если их нет, проверьте, что поступают события AAA и данные Fullflow и Clickstream.
tail -n 20 /var/qoestor/backend/logs/udr_fullflow.log tail -n 20 /var/qoestor/backend/logs/udr_clickstream.log
Признаки успешной выгрузки — строки Dump made …, Dump gzip made … и Dump was sended to … (или Dump … to …/success/, если UDR_SCP не задан). Строки с уровнем ERROR означают сбой запроса или сжатия.
Каталог error/ должен быть пуст: в него попадают файлы, которые не удалось отправить на удаленный сервер. После устранения причины их можно отправить вручную.
Для просмотра UDR файлов необходимо перейти в директорию с нужным типом UDR на сервере QoE Stor:
cd /var/qoestor/backend/dump/udr_clickstream/success/
Просмотр осуществляется при помощи zcat, zgrep, zless и других утилит для работы со сжатыми файлами:
zcat HTTP_20260205150000.dump.gz
где HTTP_20260205150000.dump.gz — название UDR файла, время начала интервала в формате YYYYMMDDHHMMSS.
Вывод команды:
В данном примере в качестве делимитера (разделителя) используется символ
|. Делимитер можно поменять в настройках — подробнее про этот параметр в таблице Описание параметров
[vasexpertsmnt@qoe02 success]$ zgrep 11223344550 HTTP_2026020515* HTTP_20260205150000.dump.gz:|dpi02|11223344550||speedtest.tele2.net/10MB.zip|11198323|300628|117|GET|482129275|10.20.30.40|PGW-01-431|random-apn|192.168.111.123|6||10.0.2.112|speedtest.tele2.net|123456789012345|200|20260205151435|200|200|Mozilla/5.0 (iPhone CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/144.0.7559.95 Mobile/15E148 Safari/604.1|9876543212345678|11111|http://speedtest.tele2.net/|application/zip|||
Одна запись формируется на сочетание «абонент, IP-адрес абонента, IP-адрес сервера, хост» за интервал UDR.
| Столбец | Описание |
|---|---|
| MSISDN | Логин абонента (в мобильной сети — MSISDN) |
| Subscriber IP | IP-адрес абонента, назначенный в мобильной сети |
| StartTime | Время начала сессии. По умолчанию в формате Unix Timestamp, формат задается параметром UDR_FULLFLOW_DATE_TIME_FORMAT |
| HostIP | IP-адрес сервера |
| Uplink Byte | Объем трафика, переданного абонентом (Uplink), в байтах |
| Downlink Byte | Объем трафика, полученного абонентом (Downlink), в байтах |
| Domain name of SSL Cert | Доменное имя (Common Name или SNI), извлеченное из SSL/TLS сертификата или TLS ClientHello |
| EndTime | Время конца сессии. По умолчанию в формате Unix Timestamp, формат задается параметром UDR_FULLFLOW_DATE_TIME_FORMAT |
| Protocol ID | Числовой идентификатор протокола согласно справочнику |
| Application protocol | Наименование протокола, определенного DPI, согласно справочнику |
| Столбец | Описание |
|---|---|
| CDR entity | Источник формирования записи |
| Rec entity | Имя (hostname) узла DPI, сформировавшего запись |
| MSISDN | MSISDN абонента |
| User ID | Внутренний идентификатор абонента или пользовательской сессии |
| Dest | Полный URL запрашиваемого ресурса |
| Content size from term | Размер контента, переданного от сервера к абоненту (Downlink), в байтах |
| Content size to term | Размер контента, переданного от абонента к серверу (Uplink), в байтах |
| URL duration | Время обработки HTTP-запроса или отклика в миллисекундах |
| Method | HTTP-метод запроса |
| Charging ID | Уникальный идентификатор тарификационной (Charging/GTP) сессии |
| NAS IP | IP-адрес NAS, PGW, BNG или другого сетевого узла, обслуживающего сессию абонента |
| NAS ID | Идентификатор NAS или шлюза доступа |
| APN | Access Point Name, через который установлена мобильная сессия |
| SGSN IP | IP-адрес SGSN или SGW, обслуживающего мобильную сессию |
| RAT Type | Тип радиодоступа, через который обслуживается абонент |
| URL trigger | Причина формирования записи Clickstream |
| Src IP | IP-адрес источника |
| Request Domain | Доменное имя из URL |
| IMSI | Международный идентификатор мобильного абонента (International Mobile Subscriber Identity) |
| Status | HTTP-статус ответа. Для получения значения необходимо включить парсинг HTTP-ответов (http_parse_reply=1) |
| Timestamp | Время формирования записи DPI |
| Return code | Числовой код HTTP-ответа. Требует включенного парсинга HTTP-ответов (http_parse_reply=1) |
| Failure reason | Причина ошибки HTTP-запроса или ответа. Требует включенного парсинга HTTP-ответов (http_parse_reply=1) |
| User Agent | Значение HTTP-заголовка User-Agent, переданное клиентским устройством |
| IMEI | Международный идентификатор мобильного устройства (International Mobile Equipment Identity) |
| RoamingOperatorID | Идентификатор сети оператора в роуминге (MCC+MNC гостевой сети) |
| httpReqReferrer | Значение HTTP-заголовка Referer |
| Content Type | MIME-тип передаваемого контента из HTTP-ответа |
| Zoneid | Идентификатор логической зоны, региона или кластера DPI |
| TrafficUsage | Категория использования трафика, определенная DPI |
| RoamingPlan | Идентификатор или название подключенного роумингового тарифного плана |
Объемы трафика и длительность заполняются, только если параметр UDR_FULLFLOW_CLICKSTREAM_JOIN равен 1 или 2 (см. Объемы трафика в UDR по HTTP-запросам).
При UDR_CLICKSTREAM_TPL=1 UDR по HTTP-запросам формируются в компактном составе:
По умолчанию UDR файлы генерируются по шаблонам, указанным выше. Дополнительные поля можно добавить по запросу в техническую поддержку.
| Параметр | Описание | Значения |
|---|---|---|
FILL_IP_LOGIN_BINDING_FROM_AAA | Параметр включает формирование словаря IP–Login из AAA-потока. | 1 — Включено 0 — Выключено (по умолчанию) |
AAA_REPLACE_LOGIN_IP_LOGIN_BIND | Параметр включает подмену поля Login в сырых логах fullflow и clickstream на основе данных из AAA. Параметр FILL_IP_LOGIN_BINDING_FROM_AAA должен быть включен. | 1 — Заменять всегда 2 — Заменять, только если Login пустой 0 — Выключено (по умолчанию) |
FILL_ACC_STATE_FROM_AAA | Включает формирование таблицы состояний абонентских сессий по данным из AAA. Таблица необходима для заполнения таблиц UDR для fullflow и clickstream. | 1 — Включено 0 — Выключено (по умолчанию) |
FILL_UDR_FULLFLOW | Включает формирование таблицы UDR на основе fullflow. Параметр FILL_ACC_STATE_FROM_AAA должен быть включен. | 1 — Включено 0 — Выключено (по умолчанию) |
FILL_UDR_CLICKSTREAM | Включает формирование таблицы UDR на основе clickstream. Параметр FILL_ACC_STATE_FROM_AAA должен быть включен, а для режимов 1 и 2 параметра UDR_FULLFLOW_CLICKSTREAM_JOIN — также FILL_UDR_FULLFLOW. | 1 — Включено 0 — Выключено (по умолчанию) |
UDR_FULLFLOW_CLICKSTREAM_JOIN | Способ получения объема трафика, длительности и протокола для UDR по HTTP-запросам. После изменения необходимо выполнить fastor-db-aaa-scheme. При смене режима накопленные UDR могут быть удалены. | 0 — Не заполнять (по умолчанию) 1 — Соединение с UDR по сессиям 2 — Через справочник UDR по сессиям |
FILL_UDR_FULLFLOW_DIC | Помещать последние UDR по сессиям в справочник. Нужен для режима UDR_FULLFLOW_CLICKSTREAM_JOIN=2. | 1 — Включено 0 — Выключено (по умолчанию) |
FILL_UDR_FULLFLOW_DIC_LIMIT | Максимальный размер справочника UDR по сессиям, в строках. При значении 0 справочник остается пустым. После изменения необходимо выполнить fastor-db-aaa-scheme. | Число строк По умолчанию — 0 |
FILL_UDR_FULLFLOW_DIC_LIFETIME | Период обновления справочника UDR по сессиям, в секундах. После изменения необходимо выполнить fastor-db-aaa-scheme. | Секунды По умолчанию — 0 |
REFRESH_UDR_FULLFLOW_DIC_BEFORE_CS | Обновлять справочник UDR по сессиям перед каждой загрузкой данных Clickstream. Применяется без дополнительных команд. | 1 — Включено По умолчанию не задан |
UDR_FULLFLOW_FILTER | При создании UDR на основе fullflow предусмотрен фильтр для отсева лишних данных, например по протоколам. Фильтр заполняется только специалистом через обращение в техническую поддержку. Внимание! После изменения фильтра необходимо выполнить fastor-db-aaa-scheme. | По умолчанию не задан |
UDR_CLICKSTREAM_FILTER | При создании UDR на основе clickstream предусмотрен фильтр для отсева лишних данных, например по протоколам. Фильтр заполняется только специалистом через обращение в техническую поддержку. Внимание! После изменения фильтра необходимо выполнить fastor-db-aaa-scheme. | По умолчанию не задан |
UDR_FULLFLOW_PROTOCOL_FILTERUDR_CLICKSTREAM_PROTOCOL_FILTER | Отбор записей по протоколу при выгрузке UDR. | Условие вида having …Пример: UDR_FULLFLOW_PROTOCOL_FILTER='having maxMerge(protocol_code) in (443)'По умолчанию не задан |
UDR_SCP | Сервер в формате login@host. Если параметр заполнен, все создаваемые UDR будут отправлены по SCP на указанный сервер. Для отправки необходимо предварительно настроить авторизацию на удаленном сервере по ключу. Если параметр не задан, файлы остаются на сервере QoE Stor. | Пример:UDR_SCP="root@192.168.1.216" |
UDR_SCP_PORT | Порт SSH удаленного сервера. | Значение по умолчанию — 22 |
UDR_SCP_DIR | Папка на удаленном сервере, куда складывать UDR. | Пример:UDR_SCP_DIR=/data/udr/ |
UDR_FULLFLOW_FORMAT | Формат итоговых файлов UDR на основе Fullflow. | TabSeparated — поля разделяются символами табуляции (по умолчанию) CSV — поля разделяются запятыми CustomSeparated — пользовательский разделитель, задается в параметре UDR_FULLFLOW_FORMAT_CUSTOM_FIELD_DELIMETERТакже доступны другие форматы вывода ClickHouse |
UDR_CLICKSTREAM_FORMAT | Формат итоговых файлов UDR на основе Clickstream. | TabSeparated — поля разделяются символами табуляции (по умолчанию) CSV — поля разделяются запятыми CustomSeparated — пользовательский разделитель, задается в параметре UDR_CLICKSTREAM_FORMAT_CUSTOM_FIELD_DELIMETERТакже доступны другие форматы вывода ClickHouse |
UDR_FULLFLOW_FORMAT_CUSTOM_FIELD_DELIMETER | Разделитель полей в файлах UDR на основе Fullflow. Используется, только если в параметре UDR_FULLFLOW_FORMAT задано значение CustomSeparated. | Символ или последовательность символов в одинарных кавычках. По умолчанию — , (запятая)Пример: UDR_FULLFLOW_FORMAT_CUSTOM_FIELD_DELIMETER='|' |
UDR_CLICKSTREAM_FORMAT_CUSTOM_FIELD_DELIMETER | Разделитель полей в файлах UDR на основе Clickstream. Используется, только если в параметре UDR_CLICKSTREAM_FORMAT задано значение CustomSeparated. | Символ или последовательность символов в одинарных кавычках. По умолчанию — , (запятая)Пример: UDR_CLICKSTREAM_FORMAT_CUSTOM_FIELD_DELIMETER='|' |
UDR_FULLFLOW_DATE_TIME_FORMAT | Формат даты и времени в файлах UDR на основе Fullflow. В интерфейсе: UDR fullflow export date time format. | timestamp — Unix Timestamp (по умолчанию)Пользовательский формат, заданный шаблоном. Пример: UDR_FULLFLOW_DATE_TIME_FORMAT='%Y%m%d%H%i%S'Результат: 20251119144500 |
UDR_CLICKSTREAM_DATE_TIME_FORMAT | Формат даты и времени в файлах UDR на основе Clickstream. В интерфейсе: UDR clickstream export date time format. | timestamp — Unix Timestamp (по умолчанию)Пользовательский формат, заданный шаблоном. Пример: UDR_CLICKSTREAM_DATE_TIME_FORMAT='%Y%m%d%H%i%S'Результат: 20251119144500 |
UDR_CLICKSTREAM_TPL | Компактный состав записи UDR по HTTP-запросам (см. Компактный шаблон). | 1 — Компактный шаблон По умолчанию не задан — основной шаблон |
UDR_FULLFLOW_DIST_MODEUDR_CLICKSTREAM_DIST_MODE | Использование кластерного режима формирования UDR. В кластерном режиме итоговые UDR формируются путем выполнения распределенного запроса, агрегирующего данные со всех узлов кластера. | 1 — Все узлы кластера 0 — Только текущий узел (по умолчанию) |
UDR_FULLFLOW_TIME_INTERVAL | Интервал UDR в минутах: до него округляется время записей UDR обоих видов, по нему же выравнивается период выгрузки UDR по сессиям. | Значение по умолчанию — 15 минут |
UDR_CLICKSTREAM_TIME_INTERVAL | Интервал в минутах, по которому выравнивается период выгрузки UDR по HTTP-запросам. Рекомендуется задавать равным UDR_FULLFLOW_TIME_INTERVAL. | Значение по умолчанию — 15 минут |
UDR_FULLFLOW_PERIOD_FROM → UDR_FULLFLOW_PERIOD_TOUDR_CLICKSTREAM_PERIOD_FROM → UDR_CLICKSTREAM_PERIOD_TO | Временной интервал, за который необходимо выгружать записи UDR. | Начало периода (С): now()-30*60 (по умолчанию: 30 минут назад)Конец периода (ПО): now()-15*60 (по умолчанию: 15 минут назад) |