Для чего нужна база buff_traf.gdb
В базе агрегируются данные по объёмам трафика, они могут быть получены от системы сбора статистики или из Accounting-Update для подключений по RADIUS.
Данные обрабатываются ядром биллинга и отражаются в расходе абонента в таблицах "Расход" и "Интернет-трафик". Эти данные особенно важны для тарифов с помегабайтной оплатой.
Структура базы данных
В buff_traf.gdb всего две таблицы: в одной содержится сам трафик, в другой описание кодов ошибок его обработки:
# sqlexec /var/db/buff_traf.gdb "show tables" ERRORS TRAFFIC
Таблица TRAFFIC
Структура таблицы
# sqlexec /var/db/buff_traf.gdb "show table traffic" ID (ID) INTEGER Not Null USER_ID (DINT) INTEGER Nullable USER_IP (IP) INTEGER Nullable V_IN (DBIGINT) NUMERIC(18, 0) Nullable V_OUT (DBIGINT) NUMERIC(18, 0) Nullable T_START (DUNIXTIME) INTEGER Nullable T_END (DUNIXTIME) INTEGER Nullable SUBNET (DINT) INTEGER Nullable TTYPE (DINT) INTEGER Nullable STATUS (DINT) INTEGER Nullable RESOLVED (DINT) INTEGER Nullable DEFAULT 0 ERROR_CODE_ID (DINT) INTEGER Nullable CONSTRAINT FK_TRAFFIC_ERROR: Foreign key (ERROR_CODE_ID) References ERRORS (ID) On Delete Set Null CONSTRAINT PK_TRAFFIC: Primary key (ID) Triggers on Table TRAFFIC: TRAFFIC_BI, Sequence: 0, Type: BEFORE INSERT, Active
Пример записи с комментариями
# sqlexec /var/db/buff_traf.gdb "set list; select first 1 * from traffic" ID 107752 ----------------- Идентификатор записи в таблице USER_ID 316 -------------------- ID учетной записи USER_IP 16843009 --------------- IP учетной записи в десятичном формате V_IN 585 -------------------- Объём входящего трафика в байтах V_OUT 0 ---------------------- Объём исходящего трафика в байтах T_START 1539335253 ------------- Время начала потока трафика T_END 1539335262 ------------- Время окончания потока трафика SUBNET 2 ---------------------- Подсеть (статья документации "Правила и сети") TTYPE <null> ----------------- Входящий или исходящий STATUS 1 ---------------------- Статус обработки воркером: 0 - необработан, 1 - обработан RESOLVED 0 ---------------------- Флаг обработки записи в веб-интерфейсе, если она была ERROR_CODE_ID 2 ---------------------- Код ошибки: null если ошибки нет, ID ошибки если есть
Таблица ERRORS
Структура таблицы
# sqlexec /var/db/buff_traf.gdb "show table errors" ID (ID) INTEGER Not Null NAME (VAR32) VARCHAR(32) Nullable CONSTRAINT PK_ERRORS: Primary key (ID) Triggers on Table ERRORS: ERRORS_BI, Sequence: 0, Type: BEFORE INSERT, Active
Коды ошибок с описанием
# sqlexec /var/db/buff_traf.gdb "set heading off; select * from errors" 1 Найдено несколько абонентов ------------- Если IP-адрес невозможно отнести какой-то учетной записи, так как в NAS используется опция "Разрешить дублирующие IP" 2 Не найден абонент ----------------------- Если не удалось найти учетную запись с IP-адресом из статистики или у абонента нет активных услуг для тарификации трафика подсети (SUBNET)