Импорт текстовых файлов

11    

Введение#

NetUP UTM5 поддерживает (посредством отдельных вспомогательных утилит) импорт текстовых файлов, содержащих информацию о трафике или телефонных звонках.

Импорт подклассов трафика в виде CSV-файлов описан в разделе Классы трафика.

Импорт организованной информации о некоторых объектах описан в разделе Импорт структурированных данных.

Утилиту utm5_send_traffic следует использовать для импорта информации о трафике в том случае, если эта информация не содержит данных об адресах отправителя или получателя трафика, но содержит информацию о количестве трафика, его классе, логине сервисной связки услуги передачи трафика, которой должен принадлежать данный трафик. Если поставщик информации о трафике поддерживает передачу данной информации по протоколу NetFlow, рекомендуется передавать информацию о трафике по протоколу NetFlow.

Утилиту utm5_send_cdr следует использовать для импорта информации о телефонных звонках в том случае, если поставщик информации не поддерживает ее передачу RADIUS-серверу посредством запросов на учет (Accounting-Request). Если поставщик информации о телефонных звонках поддерживает ее передачу посредством запросов на учет (Accounting-Request), рекомендуется непосредственно передавать ее RADIUS-серверу.

 

До версии UTM5.3-001 обе этих задачи решались единым приложением – UTM5 Unif. Формат импортируемых файлов и большинство конфигурационных параметров UTM5 Unif совместимы с описываемыми утилитами.

Схема работы#

Разбор файлов с информацией о трафике#

В случае разбора файла с информацией о трафике выполняются следующие действия:

1.Устанавливается соединение с ядром UTM5 по протоколу URFA.

2.Построчно считывается текстовый файл, каждая строка которого разбирается в соответствии со стандартным форматом.

3.Данные, содержащиеся в каждой строке, сохраняются во внутренней структуре хранения данных.

4.Структура с данными передается ядру UTM5 посредством вызова URFA-функции 0x5511.

5.Утилита utm5_send_traffic завершает работу.

Файл с информацией о трафике должен содержать данные, отвечающие следующим требованиям:

1.Каждая строка файла должна содержать данные формата:

<LOGIN> <BYTES> <TCLASS> <IP>

 
где

LOGIN

логин, указанный в свойствах услуги передачи трафика, которому должен принадлежать данный трафик;

BYTES

количество трафика в байтах (не должно превышать 2 Гб);

TCLASS

класс трафика, зарегистрированный в ядре UTM5, которому должен принадлежать трафик;

IP

IP-адрес, который будет указан для данного трафика при формировании отчета по трафику с группированием по IP. Поле IP-адреса может иметь произвольное значение в формате IP-адреса.

2.Файл не должен содержать строк с какой-либо другой информацией или в другом формате.

Разбор файлов с информацией о телефонных звонках#

В случае разбора файла с информацией о телефонных звонках выполняются следующие действия:

1.Устанавливается соединение с ядром UTM5 по протоколу URFA.

2.Построчно считывается текстовый файл, каждая строка которого разбирается в соответствии форматом, заданным в конфигурационном файле.

3.Данные, содержащиеся в каждой строке, сохраняются во внутренней структуре хранения данных.

4.Структура с данными передается ядру UTM5 посредством вызова URFA-функции 0x10310.

5.Утилита utm5_send_cdr завершает работу.

Файл с информацией о телефонных звонках должен содержать данные, отвечающие следующим требованиям:

1.Каждая запись о звонке должна находиться в отдельной строке.

2.Запись о каждом звонке должна занимать не более одной строки.

3.Каждая запись о звонке должна соответствовать формату записи, заданному в конфигурационном файле. Формат записи должен соответствовать общим требованиям к формату записи о звонке.

4.Файл не должен содержать строк с какой-либо другой информацией или в другом формате.

Требования к формату записи о звонке:

1.Каждая запись о звонке должна содержать данные в текстовом виде.

2.Каждая запись о звонке должна быть разделена одинаковыми разделителями на несколько полей. Обязательно присутствие следующих полей:

Идентификатор вызывающего абонента (телефонный номер);

Идентификатор вызываемого абонента (телефонный номер);

Длительность звонка в секундах без указания единицы измерения;

Дата и время начала звонка, если необходимо датировать звонок временем, отличным от времени передачи информации о нем;

Могут присутствовать также следующие необязательные поля:

Входящий транк;

Исходящий транк;

Идентификатор АТС (PBX ID);

Уникальный числовой идентификатор звонка (идентификатор сессии).

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

<чч>:<мм>:<сс>.<мск> <врз> <днл> <мес> <дт> <гггг>

 

Поле

Количество символов

Описание

чч

2

часы

мм

2

минуты

сс

2

секунды

мск

3

миллисекунды

врз

3

временная зона

днл

3

день недели

мес

3

месяц

дт

2

дата

гггг

4

год

Например, 00:35:05.000 UTC Tue Jul 19 2016.

Миллисекунды и день недели игнорируются.

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

Запуск утилит#

Запуск утилит производится командами:

/netup/utm5/bin/utm5_send_traffic

и

/netup/utm5/bin/utm5_send_cdr

В командной строке можно передавать обеим утилитам следующие параметры:

-c <путь>

Путь к конфигурационному файлу.

-s <путь>

Путь к файлу с импортируемой информацией. Если задан символ “ - ”, то читается стандартный поток ввода.
По умолчанию используется файл /netup/utm5/source.dat

-v

Вывод информации о версии и допустимых параметрах командной строки.

Конфигурационные файлы#

Утилиты используют конфигурационные файлы utm5_send_traffic.cfg и utm5_send_cdr.cfg, расположенные на UNIX-системах в директории /netup/utm5/, а в сборке UTM5 под Windows – в директории установки (по умолчанию C:\Program Files\NetUP\UTM5\).

Формат конфигурационных файлов:

параметр=значение

Набор символов, находящийся до знака равенства, является названием параметра, после – значением параметра. Пробелы учитываются. Пустые строки игнорируются. Строка, начинающаяся с символа #, считается комментарием.

Ниже следует список возможных параметров.

Параметры соединения с ядром UTM5 (общие для обеих утилит):

Параметр

Возможные значения

Значение по умолчанию

Описание

core_host

IP-адрес

127.0.0.1

IP-адрес хоста, на котором запущено ядро UTM5.

core_port

натуральное число от 1 до 65534

11758

Порт, на котором ядро UTM5 слушает URFA (параметр urfa_bind_port в конфигурационном файле ядра).

core_login

строка

init

Логин пользователя для доступа к ядру UTM5.

core_password

строка

init

Пароль пользователя для доступа к ядру UTM5.

Параметры разбора файлов c информацией о телефонных звонках (актуально для utm5_send_cdr.cfg):

Параметр

Возможные значения

Значение по умолчанию

Описание

pbx_calling_sid

натуральное число

0

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

pbx_called_sid

натуральное число

1

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

pbx_duration

натуральное число

2

Номер позиции в импортируемом файле, которая содержит запись о длительности звонка.

pbx_duration_format

строка формата

формат по умолчанию

Формат записи времени звонка (a).

pbx_session_id

натуральное число

3

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

pbx_date_time

натуральное число

4

Номер позиции в импортируемом файле, которая содержит запись о дате и времени начала звонка.

pbx_date_format

строка формата

формат по умолчанию

Формат даты и времени начала звонка (a).

pbx_time

натуральное число

не задано

Номер позиции в импортируемом файле, которая содержит запись о времени звонка (если время хранится отдельно от даты).

pbx_time_format

строка формата

не задано

Формат времени начала звонка (a).

pbx_accounting_code

натуральное число

не задано

Номер позиции в импортируемом файле, которая содержит запись об имени пользователя (если она есть).

pbx_incoming_trunk

натуральное число

не задано

Номер позиции в импортируемом файле, которая содержит запись о входящем транке (если она есть).

pbx_outgoing_trunk

натуральное число

не задано

Номер позиции в импортируемом файле, которая содержит запись об исходящем транке (если она есть).

pbx_id

натуральное число

не задано

Номер позиции в импортируемом файле, которая содержит запись об идентификаторе АТС (если она есть).

pbx_delimiter

строка

пробел

Символ-разделитель между полями.

pbx_quote

строка

пустая строка

Символ, в который заключены поля.

a.В строке формата времени допускается использование спецификаторов %H, %h, %M, %m, %S и %s (см. ниже).

Спецификаторы для задания даты и времени:

Спецификатор

Описание

%Y

год (1970...)

%y

последние два разряда года (00..99)

%N

месяц (01..12)

%n

месяц без нулей слева (1..12)

%H

час (00..23)

%h

час без нулей слева (0..23)

%D

день месяца (01..31)

%d

день месяца без нулей слева (1..31)

%M

минуты (00..59)

%m

минуты без нулей слева (0..59)

%S

секунды (00..60)

%s

секунды без нулей слева (0..60)

%b

сокращенное название месяца (Jan..Dec)

%U

время в формате unix timestamp

%z

временная зона (например MSK) – только для ОС FreeBSD и Linux

%

любой символ

Параметры журналирования (подробнее см. в разделе Журналирование):

Параметр

Возможные значения

Значение по умолчанию

Описание

log_level

число от 0 до 3

1

Определяет уровень сообщений, которые пишутся в основной поток сообщений (если при запуске не задан параметр -d).

log_file_main

имя файла

стандартный поток ошибок

Файл основного потока сообщений.

log_file_debug

имя файла

стандартный поток ошибок

Файл отладочного потока сообщений.

log_file_critical

имя файла

стандартный поток ошибок

Файл критического потока сообщений.