You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Источник данных типа ScriptCallDatasource (доступен с версии 4.0.1405) позволяет вызывать внешние скрипты, реагируя на наступления некоторых событий в биллинге. Этот тип источника на самом деле не является "источником", то есть он не представляет никаких данных в биллинг, а служит только для "обратной реакции". Это связано с существующей реализацией внутреннего механизма обмена информацией между ядром биллинга, и источниками данных (двухсторонний обмен типа "данные" <--> "команды"). Данный источник одинаково хорошо работает под Windows и Linux/FreeBSD. Конечно, вы должны применять только платформо-зависимые скрипты (CMD, shell). Также возможен вызов любых исполняемых операционной системой файлов. Вызов осуществляется на том же сервере, который исполняет код биллинга (для вызова скрипта на удаленном сервере применяйте RemoteAgentDataSource).

Источних данных ScriptCallDatasource, будучи настроенным и запущенным, выполняет две функции (обе, или любую одну):

  • реагирование на наступление события изменения статуса Учетного Объекта - блокировка, разблокировка (биллингом), логин, логаут (службой авторизации)
  • периодическое сохранение текущего состояния всех Учетных Объектов 

В первом случае скрипту передаются (в виде аргументов командной строки) набор параметров, отвечающих указанным в настройках вариантов. При вызове каждый из агрументов параметра "параметры скрипта" заменяется на актуальное значение. Возможные варианты:

  • action - действие (PERMIT, DENY, LOGIN, LOGOUT), переданное биллингом
  • ip - IP-адрес учетного объекта
  • mask - сетевая маска учетного объекта
  • au_id - идентификатор учетного объекта
  • ds_id - идентификатор данного источника данных
  • timestamp - метка времени, момент наступления события (unit time в секундах с 1970 года)

По умолчанию набор параметров таков: "action ip mask au_id timestamp". Он Приводит к вызову указанного скрипта с такими аргументами: "BLOCK 192.168.1.100 32 1 1335683133

Можно также опционально указать имя лог-файла, в который при каждом вызове скрипта будут записываться передаваемые ему параметры. Внимание: результаты работы (успешность вызова, выводимый им текст) никуда не сохраняются. Внимание! Данный скрипт, обрабатывающий результаты передачи ему команд, вы должны написать сами (пользуясь примерами из дистрибутива)

Во втором случае представляется возможным периодическое создание "файла состояний", в который каждый раз будут записываться текущие состояния всех зарегистрированных в биллинге Учетных Объектов. Строка состояний формируется согласно правилам "строки параметров", указанных выше. По окончании формирования файла может быть вызван другой скрипт, который вы можете использовать для обработки данного файла (например, создания таблицы фильтрования, или пересылки access-list в роутер). Данный скрипт получает имя файла состояний как агрумент командной строки.

Параметрами настроек источника данных являются:


 

 

  • No labels