Настройка BGInetAccounting сервера
Пример типовой настройки, которая идет в дистрибутиве:
Код
<
application
context
=
"accounting"
>
<!-- Уникальное имя приложения -->
<
param
name
=
"app.name"
value
=
"BGInetAccounting"
/>
<!-- Уникальный числовой id приложения -->
<
param
name
=
"app.id"
value
=
""
/>
<!-- Параметры подключения к БД -->
<
param
name
=
"db.driver"
value
=
"com.mysql.jdbc.Driver"
/>
<
param
name
=
"db.url"
value
=
"jdbc:mysql://127.0.0.1/bgbilling?useUnicode=true&characterEncoding=UTF-8&allowUrlInLocalInfile=true&zeroDateTimeBehavior=convertToNull&jdbcCompliantTruncation=false&queryTimeoutKillsConnection=true&connectTimeout=1000"
/>
<
param
name
=
"db.user"
value
=
"bill"
/>
<
param
name
=
"db.pswd"
value
=
"bgbilling"
/>
<
param
name
=
"db.validationTimeout"
value
=
"10"
/>
<!-- Параметры подключения к MQ -->
<
param
name
=
"mq.url"
value
=
"failover:(tcp://localhost:61616)"
/>
<
param
name
=
"mq.user"
value
=
"bill"
/>
<
param
name
=
"mq.pswd"
value
=
"bgbilling"
/>
<!-- id модуля -->
<
param
name
=
"moduleId"
value
=
""
/>
<!-- id корневого устройства -->
<
param
name
=
"rootDeviceId"
value
=
""
/>
<!-- Внутренняя переменная приложения, не изменять -->
<
param
name
=
"commonIdentifierName"
value
=
"rootDeviceId"
/>
<!-- Параметры сохранения radius-пакетов в файлы логов -->
<!-- Директория, в которую сохранять radius логи -->
<
param
name
=
"datalog.radius.dir"
value
=
"data/radius"
/>
<!-- Размер блока данных в файле лога, также размер буфера на лог файл -->
<
param
name
=
"datalog.radius.chunk.size"
value
=
"524288"
/>
<!-- Сжимать radius логи: 0 - не сжимать, 1 - zlib -->
<
param
name
=
"datalog.radius.compression.type"
value
=
"1"
/>
<!-- Параметры сохранения flow-пакетов в файлы логов -->
<!-- Директория, в которую сохранять flow логи -->
<
param
name
=
"datalog.flow.dir"
value
=
"data/flow"
/>
<!-- Размер блока данных в файле лога, также размер буфера на лог файл и поток слушателя -->
<
param
name
=
"datalog.flow.chunk.size"
value
=
"524288"
/>
<!-- Сжимать flow логи: 0 - не сжимать, 1 - zlib -->
<
param
name
=
"datalog.flow.compression.type"
value
=
"1"
/>
<!-- Создание Accounting -->
<
bean
name
=
"accounting"
class
=
"ru.bitel.bgbilling.modules.inet.accounting.Accounting"
/>
<
context
name
=
"radius"
>
<!-- Cоздание процессора RADIUS-пакетов -->
<
bean
name
=
"radiusProcessor"
class
=
"ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor"
/>
<!-- Служебный ScheduledExecutorService, необходимый для dataLogger -->
<
scheduledExecutorService
name
=
"hrlydtlggr"
corePoolSize
=
"1"
/>
<!-- Cоздание dataLogger, сохраняющего RADIUS-пакеты на диск (только один экземпляр) -->
<
bean
name
=
"radiusDataLogger"
class
=
"ru.bitel.bgbilling.modules.inet.radius.RadiusHourlyDataLogger"
>
<
param
name
=
"scheduledExecutor"
>hrlydtlggr</
param
>
</
bean
>
<!-- Cоздание слушателя radius-пакетов на порту с передачей ему процессора и dataLogger -->
<
bean
name
=
"radiusListener"
class
=
"ru.bitel.bgbilling.modules.inet.radius.InetRadiusListener"
>
<
constructor
>
<!-- Хост (интерфейс), на котором будет открыт сокет. Если пусто - на всех -->
<
param
name
=
"host"
value
=
""
/>
<!-- Порт, на котором будет открыт сокет -->
<
param
name
=
"port"
value
=
"1813"
/>
<!-- Размер буфера приема слушателя -->
<
param
name
=
"recvBufferSize"
>1 * 1024 * 1024</
param
>
<!-- Рекомендуемый SO_RCVBUF сокета -->
<
param
name
=
"soRCVBUF"
></
param
>
<!-- Количество потоков-обработчиков -->
<
param
name
=
"threadCount"
>10</
param
>
<!-- Максимальное количество пакетов в очереди на обработку -->
<
param
name
=
"maxQueueSize"
>200</
param
>
<!-- Передача процессора -->
<
param
name
=
"processor"
>radiusProcessor</
param
>
<!-- Режим работы, RadiusListener.Mode.accounting -->
<
param
name
=
"mode"
>RadiusListener.Mode.accounting</
param
>
<!-- Передача setup -->
<
param
name
=
"setup"
>setup</
param
>
<!-- Передача dataLogger -->
<
param
name
=
"dataLogger"
>radiusDataLogger</
param
>
</
constructor
>
</
bean
>
</
context
>
<!-- Cоздание процессора flow-пакетов -->
<
context
name
=
"collector"
>
<!-- Служебный ScheduledExecutorService, необходимый для dataLogger -->
<
scheduledExecutorService
name
=
"hrlydtlggr"
corePoolSize
=
"1"
/>
<!-- Cоздание dataLogger, сохраняющего flow-пакеты на диск (только один экземпляр) -->
<
bean
name
=
"flowDataLogger"
class
=
"ru.bitel.bgbilling.modules.inet.collector.IPHourlyDataLogger"
>
<
param
name
=
"scheduledExecutor"
>hrlydtlggr</
param
>
</
bean
>
<!-- Cоздание слушателя flow-пакетов на порту с передачей ему dataLogger -->
<
bean
name
=
"flowListener"
class
=
"ru.bitel.bgbilling.modules.inet.collector.InetFlowListener"
>
<
constructor
factoryMethod
=
"newInstance"
>
<!-- Тип слушателя, netflow, netflow9 или sflow -->
<
param
name
=
"type"
value
=
"netflow"
/>
<!-- Хост (интерфейс), на котором будет открыт сокет. Если пусто - на всех -->
<
param
name
=
"host"
value
=
""
/>
<!-- Порт, на котором будет открыт сокет -->
<
param
name
=
"port"
value
=
"2001"
/>
<!-- Размер буфера приема слушателя -->
<
param
name
=
"recvBufferSize"
>4 * 1024 * 1024</
param
>
<!-- Рекомендуемый SO_RCVBUF сокета -->
<
param
name
=
"soRCVBUF"
>512 * 1024</
param
>
<!-- Количество потоков-обработчиков -->
<
param
name
=
"threadCount"
value
=
"10"
/>
<!-- id устройств-источников, если на данном порту нужно обрабатывать данные только у определенных источников -->
<
param
name
=
"agentDeviceIds"
value
=
""
/>
<!-- Передача dataLogger -->
<
param
name
=
"dataLogger"
>flowDataLogger</
param
>
</
constructor
>
</
bean
>
<!--
<
bean
name
=
"flowListener"
class
=
"ru.bitel.bgbilling.modules.inet.collector.InetFlowListener"
>
<
constructor
factoryMethod
=
"newInstance"
>
<
param
name
=
"type"
value
=
"netflow9"
/>
<
param
name
=
"host"
value
=
""
/>
<
param
name
=
"port"
value
=
"9367"
/>
<
param
name
=
"recvBufferSize"
>4 * 1024 * 1024</
param
>
<
param
name
=
"soRCVBUF"
>512 * 1024</
param
>
<
param
name
=
"threadCount"
value
=
"8"
/>
<
param
name
=
"agentDeviceIds"
value
=
"4"
/>
<
param
name
=
"dataLogger"
>flowDataLogger</
param
>
</
constructor
>
</
bean
>
<
bean
name
=
"flowListener"
class
=
"ru.bitel.bgbilling.modules.inet.collector.InetFlowListener"
>
<
constructor
factoryMethod
=
"newInstance"
>
<
param
name
=
"type"
value
=
"netflow"
/>
<
param
name
=
"host"
value
=
""
/>
<
param
name
=
"port"
value
=
"9368"
/>
<
param
name
=
"recvBufferSize"
>4 * 1024 * 1024</
param
>
<
param
name
=
"soRCVBUF"
>512 * 1024</
param
>
<
param
name
=
"threadCount"
value
=
"8"
/>
<
param
name
=
"agentDeviceIds"
value
=
"20"
/>
<
param
name
=
"dataLogger"
>flowDataLogger</
param
>
</
constructor
>
</
bean
>
-->
<
context
name
=
"detail"
>
<!-- Cоздание обработчика flow-детализации -->
<
bean
name
=
"detailWorker"
class
=
"ru.bitel.bgbilling.modules.inet.accounting.detail.InetDetailWorker"
/>
</
context
>
</
context
>
</
application
>