Настройка InetAccounting сервера

Пример типовой настройки, которая идет в дистрибутиве:

Код
<application context="accounting">
    <!-- Уникальное имя приложения -->
    <param name="app.name" value="InetAccounting"/>
    <!-- Уникальный числовой 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/abilling?useUnicode=true&amp;characterEncoding=UTF-8&amp;allowUrlInLocalInfile=true&amp;zeroDateTimeBehavior=convertToNull&amp;jdbcCompliantTruncation=false&amp;queryTimeoutKillsConnection=true&amp;connectTimeout=1000"/>
    <param name="db.user" value="bill"/>
    <param name="db.pswd" value="abilling"/>
    <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="abilling"/>

    <!-- 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.avantis.abilling.modules.inet.accounting.Accounting"/>

    <context name="radius">
        <!-- Cоздание процессора RADIUS-пакетов -->
        <bean name="radiusProcessor" class="ru.avantis.abilling.modules.inet.radius.InetRadiusProcessor"/>

        <!-- Служебный ScheduledExecutorService, необходимый для dataLogger -->
        <scheduledExecutorService name="hrlydtlggr" corePoolSize="1"/>

        <!-- Cоздание dataLogger, сохраняющего RADIUS-пакеты на диск (только один экземпляр) -->
        <bean name="radiusDataLogger" class="ru.avantis.abilling.modules.inet.radius.RadiusHourlyDataLogger">
            <param name="scheduledExecutor">hrlydtlggr</param>
        </bean>

        <!-- Cоздание слушателя radius-пакетов на порту с передачей ему процессора и dataLogger -->
        <bean name="radiusListener" class="ru.avantis.abilling.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.avantis.abilling.modules.inet.collector.IPHourlyDataLogger">
            <param name="scheduledExecutor">hrlydtlggr</param>
        </bean>

        <!-- Cоздание слушателя flow-пакетов на порту с передачей ему dataLogger -->
        <bean name="flowListener" class="ru.avantis.abilling.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.avantis.abilling.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.avantis.abilling.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.avantis.abilling.modules.inet.accounting.detail.InetDetailWorker"/>
        </context>
    </context>


</application>