4. Настройка загрузки и обработки логов

Для каждой АТС на вкладке Источники модуля должен быть заведён свой источник. В зависимости от метода доступа к логам у источника устанавливается тип FTP, либо Локальная или сетевая папка.

При указании FTP-источника в поле Сервер вводится DNS-имя, либо IP-адрес FTP-сервера, его порт (если не указан, берётся 21) и каталог, в котором хранятся логи данного источника.

Формат адреса сервера: <HOST>[:<PORT>][PATH], параметры в квадратных скобках не обязательны к указанию.

Например: ftp.bitel.ru/pub/projects/bgbilling/phone/log/source_1. Это реальный каталог с логами, вы можете использовать их для тестирования.

В конфигурации источника может быть указана переменная resource.categories=<коды категорий ресурсов через запятую>. Про ресурсы номеров описано далее. Данная опция, по сути, определяет номерную ёмкость АТС. Обработчик выводит ошибки в журнал ошибок при установленной данной опции и обнаружении звонков в логах данного источника с номеров, относящихся к указанным категориям, но при этом не соотнесённых ни одному поинту. Таким образом можно осуществлять простой аудит.

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

Загрузку логов производит процесс DataLoader. Для его запуска на UNIX-системе выполните скрипт data_loader_start.sh, предварительно в файле data_loader.sh необходимо прописать путь к Java-машине, например:

cd ${0%${0##*/}}.

JAVA_HOME=/opt/java/jre

В Windows-системе выполните скрипт data_loader_install.bat для установки загрузчика в список служб и далее вы можете запускать службу BGDataLoader через оснастку Администрирование=>Службы.

В случае успешного старта загрузчика логов в log/dataloader.log должен быть примерно такой текст.

Checking port 9033...
Port is free starting the applicalion...
Starting DLProcessManager on 9033
Creating socket on 9033

Если лог пуст, проверьте лог log/dataloader.out на предмет ошибок.

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

Загрузка часового лога может быть инициирована вручную, либо автоматически. Для ручной инициации загрузки логов откройте вкладку Менеджер источников модуля.

По мере загрузки логов цвет часовых квадратов будет изменяться. Загрузка логов производится случайным образом, не по порядку часов. По мере загрузки логов загрузчик логов сам добавляет задания на обработку и производит обработку логов. Обработка логов выполняется по порядку часов. Для отслеживания изменения состояний логов нажимайте кнопку Обновить панели инструментов.

По завершению обработки сессии должны появится в ответах договоров. При этом производится учёт абонентского и операторского трафика и его тарификация. Про настройку абонентов, операторов и их тарифов описано далее.

Если этого не произошло, обратитесь в Сервис=>Журналы=>Журнал ошибок. В выпадающим списке выберите ваш модуль телефонии, установите месяц и нажмите кнопку с галочкой.

Найденные ошибки необходимо исправлять и запускать переобработку логов до полного исчезновения ошибок в журнале. Добавление логов в обработку производится в Менеджере источников путем выбора квадрата часов и активации пункта меню Добавить в обработку для выбранного источника.

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

1. По мере подготовки логов автоматически вызывать добавление задачи на загрузку лога запуском:

./data_loader.sh -eload=yyyy-MM-dd-HH-<source_id>
#Например, добавление задания на загрузку лога за 2006-12-14 10 часов для источника с кодом 15
./data_loader.sh -eload=2006-12-14-10-15 

Также можно передать команду через сокет управления dataloader по TCP в виде (9033 по умолчанию):

load=yyyy-MM-dd-HH-<source_id>\n

Этот путь более правильный, подходит для полной автоматизации процесса "подачи" логов в биллинг.

2. Раз в час задача Генератор заданий на загрузку, запускаемая планировщиком, создаёт задание на загрузку очередного часового лога для всех источников FTP, либо Сетевая папка. Запуск задачи необходимо настроить в Планировщике заданий на 15 минут каждого часа. Вполне возможно, что к этому моменту логи ещё не будут добавлены, тогда загрузчик будет пытаться загрузить недостающие логи в течении 3х суток. Этот метод подходит для режима, когда логи подготавливает отдельный специалист, не связанный с биллингом.

Результирующими данными обработки логов являются логи сессий в договорах клиентов и операторов, привязанные к поинтам, либо правилам (см. далее). Для того, чтобы наработка сессий перешла в баланс договора используется вкладка модуля Установка баланса. Единственным параметром выступает дата месяца, за который необходимо установить баланс.

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

Соответственно, необходимо настроить два экземпляра задачи в планировщике заданий. Одну - периодическую, например, каждый час. Другую - в 55 минут первого часа месяца для установки баланса за предыдущий месяц с учётом последнего загруженного часового лога. Примеры настройки периодической и единоразовой задач приведены на снимках ниже.

В параметрах запуска задачи должно быть установлено:

mid=<код модуля телефонии>