Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

<div class="aui-message error aui-message-error">
<p class="title">
<span class="aui-icon icon-error"></span>
<strong>Comala Metadata License Details</strong>
</p>
<p>Invalid commercial evaluation license with a expired error. Please click <a href="https://marketplace.atlassian.com/plugins/org.andya.confluence.plugins.metadata" target="_blank">here</a> to purchase a commercial license.</p>
</div>

Описание


Модуль выполняет функции:

  • Авторизации, аутентификации Wi-Fi пользователей, подключающихся при помощи BRAS (позволяет обслуживать пользователей, используя точки доступа сторонних производителей).
  • Сбор аккаунтинга для всех механизмов авторизации и передача его в базу данных.
  • Контроль за количеством одновременных сессий Wi-Fi пользователей для всех механизмов авторизации.
  • Деаутентификация Wi-Fi пользователей, авторизующихся в режимах WPA-enterprise и через BRAS.


Доступ к технической консоли можно получить по ссылке 'http://<ip address pcrf>:7070/pcrf'.


Управление сервисом


Установка сервиса

apt-get install eltex-pcrf

Способ запуска/остановки

ДействиеКомандаОтвет
Проверка состояния
service eltex-pcrf status

Сервис работает

 * eltex-pcrf process is running

Сервис не работает

* eltex-pcrf process is not running
Запуск сервиса
service eltex-pcrf start

Сервис запустился

 * Starting eltex-pcrf

Сервис уже работает

 * eltex-pcrf is already running
Остановка сервиса
service eltex-pcrf stop

Сервис успешно остановлен

 * Stopping eltex-pcr

Сервис не остановлен, т.к. не был запущен

 * eltex-pcrf is not running
Перезапуск сервиса
service eltex-pcrf restart

Сервис успешно перезапущен

 * Stopping eltex-pcrf
 * Starting eltex-pcrf
 * eltex-pcrf is not running
 * Starting eltex-pcrf  



Конфигурация


/etc/default/eltex-pcrf

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

/etc/default/eltex-pcrf
# Eltex.PCRF Server daemon parameters
NAME="eltex-pcrf"

# Location of java binary
JAVA=/usr/bin/java

# Initial size of Java heap
JAVA_INIT_HEAP=256m
# Maximum size of Java heap
JAVA_MAX_HEAP=512m

# Options for Java Garbage Collector
GC_OPTS="-XX:+UseG1GC \
-XX:+PrintGCDateStamps \
-XX:+PrintGCDetails \
-XX:+UseGCLogFileRotation \
-XX:NumberOfGCLogFiles=7 \
-XX:GCLogFileSize=5M \
-XX:+UseStringDeduplication \
-XX:+PrintGCTimeStamps \
-XX:+PrintTenuringDistribution \
-Xloggc:/var/log/eltex-pcrf/gc.log"

# To monitor via JMX - jconsole to host:port
#JMX_OPTS="-Dcom.sun.management.jmxremote \
#-Dcom.sun.management.jmxremote.port=8085 \
#-Dcom.sun.management.jmxremote.authenticate=false \
#-Dcom.sun.management.jmxremote.ssl=false \
#-Djava.rmi.server.hostname=127.0.0.1"

HEAP_DUMP_OPTS="-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/eltex-pcrf"
VERTX_CACHE_DIR_OPT="-Dvertx.cacheDirBase=/var/lib/$NAME"

JVM_OPTS="$JMX_OPTS $GC_OPTS $HEAP_DUMP_OPTS -Xms$JAVA_INIT_HEAP -Xmx$JAVA_MAX_HEAP $VERTX_CACHE_DIR_OPT"
JAR="/usr/lib/$NAME/$NAME.jar"

# Send notification
#NOTIFICATION_ADDR="admin@mail.loc
ПараметрыОписание

JAVA=/usr/bin/java

Расположение Java-машины.
JAVA_INIT_HEAP
Количество памяти, выделяемое на работу сервиса при старте. Рекомендуется выставлять равное JAVA_MAX_HEAP.
JAVA_MAX_HEAP
Максимальное количество памяти, которое может зарезервировать сервис.

GC_OPTS="-XX:+UseG1GC \

. . .

Параметры сборщика мусора.

# To monitor via JMX - jconsole to host:port

. . .

Параметры для работы с JMX.
HEAP_DUMP_OPTSПараметры записи дапма памяти.
VERTX_CACHE_DIR_OPTРасположение кэша.
JVM_OPTSДополнительные опции для запуска jvm.
NOTIFICATION_ADDRАдрес для отправки уведомлений.


/etc/eltex-pcrf/eltex-pcrf.json

Содержит настройки взаимодействия с другими сервисами.

/etc/eltex-pcrf/eltex-pcrf.json
{
  "auth.address" : "0.0.0.0",
  "auth.port" : 31812,
  "auth.mac.open.timeout.s" : 3600,
  "auth.mac.welcome.service" : "WELCOME",

  "acct.address" : "0.0.0.0",
  "acct.ports" : [1813, 31813],

  "lease.saver.address" : "0.0.0.0",
  "lease.saver.port" : 4381,

  "aaa.instances" : 5,
  "aaa.host" : "127.0.0.1",
  "aaa.secret" : "testing123",
  "aaa.auth.port" : 1812,
  "aaa.acct.port" : 1813,
  "aaa.rest.port" : 7080,
  "aaa.timeout" : 10,
  "aaa.attempts" : 1,

  "web.monitoring.port" : 7070,

  "cluster.enable" : false,
  "cluster.eventBusPort" : 5801,

  "radius" : {
    "url": "jdbc:mysql://localhost/radius?useUnicode=true&characterEncoding=utf8&connectTimeout=5000&socketTimeout=5000&autoReconnect=true&useSSL=false",
    "user": "javauser",
    "password": "javapassword",
    "max_pool_size": 16
  },

  "mongo.pcrf" : {
    "connection_string": "mongodb://localhost:27017/pcrf?waitQueueMultiple=500&connectTimeoutMS=10000&socketTimeoutMS=0",
    "db_name": "pcrf"
  },

  "mongo.ott" : {
    "connection_string": "mongodb://localhost:27017/ott?waitQueueMultiple=500&connectTimeoutMS=10000&socketTimeoutMS=0",
    "db_name": "ott"
  },

  "session.storage" : {
    "session.check.period.s" : 300,
    "unauth.store.time.s" : 600,
    "interval.number.expired" : 3,
    "min.interval.s" : 45,
    "default.interval.s" : 600
  },

  "bras.coa" : {
    "coa.timeout" : 10,
    "coa.attempts" : 1,
    "coa.secret" : "testing123",
    "remote.coa.port" : 3799,
    "executor.size" : 100,
    "log.clean.period.s" : 600,
    "log.store.period" : {
      "period" : 14,
      "unit" : "D"
    }
  },

  "sql.ems" : {
    "url": "jdbc:mysql://localhost/eltex_ems?useUnicode=true&characterEncoding=utf8&connectTimeout=5000&socketTimeout=5000&autoReconnect=true&useSSL=false",
    "user": "javauser",
    "password": "javapassword",
    "max_pool_size": 16
  },

  "sql.wireless" : {
    "url": "jdbc:mysql://localhost/wireless?useUnicode=true&characterEncoding=utf8&connectTimeout=5000&socketTimeout=5000&autoReconnect=true&useSSL=false",
    "user": "javauser",
    "password": "javapassword",
    "max_pool_size": 16
  },

  "sql.auth.service" : {
    "url": "jdbc:mysql://localhost/eltex_auth_service?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8&connectTimeout=5000&socketTimeout=5000&useSSL=false",
    "user": "javauser",
    "password": "javapassword",
    "max_pool_size": 4
  },

  "language" : "en",

  "radius.nbi" : {
    "wdsl.url" : "http://localhost:8080/axis2/services/RadiusNbiService?wsdl",
    "username" : "softwlc_service",
    "password" : "softwlc",
    "connection.timeout.ms" : 30000,
    "request.timeout.ms" : 120000
  },

  "tariffs.update.interval" : {
    "interval" : 1,
    "unit" : "hours"
  },

  "bras.cron.update.interval": {
    "interval" : 1,
    "unit": "hours"
  },

  "filters.cache.dir" : "/var/lib/eltex-pcrf/filters/",

  "clickhouse": {
    "url": "jdbc:clickhouse://localhost:8123/radius",
    "user_name": "javauser",
    "user_password": "javapassword",
    "actualization_period_ms": 15000
  },

  "accounting.options": {
    "use_clickhouse": false,
    "use_mysql": true,
    "batch_interval_ms": 300000,
    "max_queue_load": 100
  },

  "generic.ap.registrar": {
    "max_aps_in_queue": 30,
    "ap_register_interval_ms": 600000,
    "added_ap_cache_ttl_ms": 600000,
    "host": "localhost",
    "port": 8080,
    "worker_pool_size": 8
  },

  "kafka": {
    "mcd.enabled": false,
    "circuit.breaker": {
      "timeout.ms": 30000,
      "reset.ms": 60000,
      "max.failures": 3
    },
    "producer": {
      "bootstrap.servers": "localhost:9092",
      "linger.ms": "1000",
      "topic": "mcd",
      "max.block.ms": "30000",
      "request.timeout.ms": "14000",
      "delivery.timeout.ms": "30000",
      "acks": "1",
      "retries": "1"
    }
  }
}


ПараметрыОписание
Настройки авторизации
auth.address
Интерфейс сервера, ожидающий запросы на авторизацию.
auth.port

Порт сервера, на который принимаются запросы на авторизацию.

auth.mac.open.timeout.s
Длительность "открытой авторизации", используемая, если не переопределено в настройках портала.
auth.mac.welcome.service
Сервис доступа, используемый если не переопределен в настройках тарифа.
Настройки сбора аккаунтинга
acct.address
Интерфейс сервера, ожидающий аккаунтинг.
acct.port
Порт сервера, на который принимаются пакеты аккаунтинга.
Настройки для проведения авторизации Wi-Fi пользователей через BRAS
aaa.host
Адрес сервиса Eltex.RADIUS.
aaa.secret
RADIUS key.
aaa.auth.port
Порт, на который отправляются запросы авторизации.
aaa.acct.port
Порт, на который отправляться пакеты аккаунтинга.
aaa.rest.port
Порт для обмена служебными командами с Eltex.RADIUS.
aaa.timeout
Время ожидания ответа.
aaa.attempts
Количество попыток отправки пакетов.
Порт мониторинга
web.monitoring.port
Порт для работы технологической консоли и мониторинга.
Включение кластеризации
cluster.enable
Запуск кластеризации.
cluster.eventBusPort
Порт для обмена данными с нодами в кластере.
Настройки коннектов к БД MySQL ('radius', 'eltex_ems', 'wireless', 'auth.service')
url
Строка подключения к базе данных Mysql.
user
Логин для подключения к БД.
password
Пароль для подключения к БД.
max_pool_size
Максимальное количество коннектов, которое можно открыть сервис для подключения.
Подключение к БД Mongo( 'pcrf', 'ott')
connection_string
URI для подключения к Mongo.
db_name

Название базы, к которой производится подключение.

Параметры хранения активных сессий в Mongo
session.check.period.s
Период проверки актуальности хранимых сессий. Если сессия закрыта во время проверки или время ее хранения истекло, она удаляется из базы.
unauth.store.time.s
Период хранения сессий пользователей, созданных на BRAS, авторизация которых не была выполнена.
interval.number.expired
Количество пропущенных интервалов аккаунтинга, после которого сессия считается "зависшей" и подлежит закрытию.
min.interval.s
Минимальное значение интервала аккаунтига, которое используется для расчета зависших сессий.
default.interval.s
Начальное значение интервала аккаунтига, которое сохраняется в сессию сразу после ее создания.
Параметры отправки CoA
coa.timeout

Время ожидания ответа на команду.

coa.attempts

Количество повторных отправок.

coa.secretСекретный ключ.
remote.coa.port
Порт, на который будут отправляться команды.
log.clean.period
Время хранения результатов.
log.store.period

period

unit

Время хранения логов выполнения команд.

Количественный период.

Единицы измерения (по дефолту - дни "D").

worker.pool.sizeРазмер пула потоков выделенного для вертикали CoA
Настройка языка для отображения ошибок
language
Язык, используемый пи логировании, дефолтное значение "en". Можно использовать "ru", однако логи переведены не все.
Настройка подключения к сервису NBI
wdsl.url
Адрес для обращения на сервис NBI.
username
Логин от учетной записи.
password
Пароль от учетной записи.
connection.timeout.ms
Время ожидания при подключении к сервису.
request.timeout.ms
Время ожидания ответа при выполнении запроса на сервис.
Интервал обновления тарифных планов
interval
Интервал обновления тарифных планов.
unit
Единицы измерения интервала (по дефолту измеряется в часах "hours").
Путь к директории с временными файлами  списков URL
filters.cache.dirРасположение директории.
Настройки коннектов к БД Yandex ClickHouse
urlСтрока подключения к базе данных Yandex ClickHouse.
user_nameЛогин от учетной записи.
user_passwordПароль от учетной записи.
actualization_period_msПериод проверки доступности БД.
Параметры сохранения аккаунтинга
use_clickhouseСохранять  аккаунтинг в базу данных Yandex ClickHouse.
use_mysqlСохранять  аккаунтинг в базу данных MySQL.
batch_interval_msИнтервал сохранения  аккаунтинга в базу данных.
max_queue_loadРазмер очереди при достижение которого запускается сохранение аккаунтинга в базу данных.
Параметры выгрузки generic AP, полученных из аккаунтинга по option 82
max_aps_in_queueМаксимальное число generic AP в очереди на добавление, по достижении которого начнется их выгрузка в EMS.
ap_register_interval_msИнтервал времени (мс), по достижении которого начнется выгрузка generic AP в EMS, находящихся в очереди.
added_ap_cache_ttl_msИнтервал времени (мс), в течение которого для выгруженных или обновленных generic AP не будет выполняться попытка выгрузить их в EMS.
hostIP-адрес, на котором находиться EMS-NBI.
portПорт, на котором находится EMS-NBI.
worker_pool_sizeКоличество выделенных потоков, задействованных для добавления GenericAP.
Параметры подключения к брокеру сообщений Apache Kafka
mcd.enabledВключение отправки сообщений в  брокер сообщений.

Параметры circuit.breaker


timeout.ms

Время, после которого попытка отправки сообщения считается неудачной

max.failures

Количество неудачных попыток для перехода в состояние игнорирования отправки сообщений.

В случае, когда количество неудачных отправок сообщений достигает значения max.failures, следующие попытки отправки будут игнорироваться в течение периода reset.ms.

reset.ms

Время, в течение которого будут игнорироваться следующие попытки отправки сообщений.

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

Параметры producer
bootstrap.serversАдресе сервера брокера сообщений.

linger.ms

Верхняя граница задержки для пакетной обработки сообщений.
topicИмя топика.
max.block.msВремя блокировки на отправку сообщений.
request.timeout.msМаксимальное время ожидания клиентом ответа на запрос.
delivery.timeout.msВремя ожидания ответа после отправки сообщения.
acksКоличество подтверждений чтобы считать запрос завершонным.
retriesКоличество попыток отправки в течение delivery.timeout.ms.


/etc/eltex-pcrf/hazelcast-cluster-network.xml

Конфигурация кластера Hazelcast, используемого для объединения отдельных нод PCRF.

/etc/eltex-pcrf/hazelcast-cluster-network.xml
<hazelcast xsi:schemaLocation="http://www.hazelcast.com/schema/config http://www.hazelcast.com/schema/config/hazelcast-config-3.6.xsd"
           xmlns="http://www.hazelcast.com/schema/config"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    <!-- You can separate your clusters in a simple way by specifying group names. -->
    <group>
        <name>dev</name>
    </group>

    <network>
        <!-- Write here public address of the node -->
        <public-address>192.168.0.1</public-address>
        <port auto-increment="false" port-count="100">5701</port>
        <outbound-ports>
            <ports>0</ports>
        </outbound-ports>
        <join>
            <multicast enabled="false"/>
            <tcp-ip enabled="true">
                <!-- Write here IP of all members of the cluster (including this) -->
                <member>192.168.0.1</member>
                <member>192.168.0.2</member>
            </tcp-ip>
            <discovery-strategies>
            </discovery-strategies>
        </join>
        <interfaces enabled="true">
            <!-- Write here IP of the interface to use for cluster -->
            <interface>192.168.0.1</interface>
        </interfaces>
        <ssl enabled="false"/>
        <socket-interceptor enabled="false"/>
        <symmetric-encryption enabled="false">
            <algorithm>PBEWithMD5AndDES</algorithm>
            <!-- salt value to use when generating the secret key -->
            <salt>thesalt</salt>
            <!-- pass phrase to use when generating the secret key -->
            <password>thepass</password>
            <!-- iteration count to use when generating the secret key -->
            <iteration-count>19</iteration-count>
        </symmetric-encryption>
    </network>
</hazelcast>
ПараметрыОписание
<name>dev</name>

Имя ноды. Должно быть одинаковым на всех устройствах. Если узлы с разными именами, то в кластер не объединяются.

<public-address>192.168.0.1</public-address>
Собственный адрес ноды в кластере.
<member>192.168.0.1</member>
<member>192.168.0.2</member>

Список нод, состоящих в кластере. Необходимо указывать как собственный адрес, так и всех нод состоящих в кластере.

<interface>192.168.0.1</interface>
Адрес интерфейса ноды в кластере (как правило равен public-address).

/etc/eltex-pcrf/log4j.xml

Файл настроек логирования.

/etc/eltex-pcrf/log4j.xml
<?xml version="1.0" encoding="UTF-8"?>

<Configuration packages="biz.paluch.logging.gelf.log4j2">
    <Properties>
        <Property name="maxSize" value="5MB"/>
        <Property name="maxCount" value="7"/>
        <Property name="logDir" value="/var/log/eltex-pcrf"/>
        <Property name="defaultPattern" value="%d{ISO8601} [%t] %-5p %logger{1} %C{1}.%M(line:%L). %m%n"/>
        <Property name="gelfHost" value="udp:lab3-test.eltex.loc"/>
        <Property name="gelfPort" value="12201"/>
        <Property name="gelfLevel" value="OFF"/>
        <Property name="filenamePrefix" value="eltex-pcrf-"/>
    </Properties>

    <Appenders>
        <Console name="STDOUT" target="SYSTEM_OUT">
            <PatternLayout>
                <Pattern>${defaultPattern}</Pattern>
            </PatternLayout>
        </Console>

        <RollingFile name="SERVICE"
                     fileName="${logDir}/${filenamePrefix}service.log"
                     filePattern="${logDir}/service/%d{yyyyMMdd}.%i.log">
            <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout>
                <pattern>${defaultPattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <RollingFile name="DEFAULT"
                     fileName="${logDir}/${filenamePrefix}default.log"
                     filePattern="${logDir}/default/%d{yyyyMMdd}.%i.log">
            <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout>
                <pattern>${defaultPattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <RollingFile name="RADIUS"
                     fileName="${logDir}/${filenamePrefix}radius.log"
                     filePattern="${logDir}/radius/%d{yyyyMMdd}.%i.log">
            <ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout>
                <pattern>${defaultPattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <RollingFile name="GENERIC_AP"
                     fileName="${logDir}/${filenamePrefix}generic-ap.log"
                     filePattern="${logDir}/generic-ap/%d{yyyyMMdd}.%i.log">
            <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout>
                <pattern>${defaultPattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <RollingFile name="LEASE_SAVER"
                     fileName="${logDir}/${filenamePrefix}lease_saver.log"
                     filePattern="${logDir}/lease_saver/%d{yyyyMMdd}.%i.log">
            <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout>
                <pattern>${defaultPattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <RollingFile name="SHAPER"
                     fileName="${logDir}/${filenamePrefix}shaper.log"
                     filePattern="${logDir}/shaper/%d{yyyyMMdd}.%i.log">
            <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout>
                <pattern>${defaultPattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <RollingFile name="I18N"
                     fileName="${logDir}/${filenamePrefix}i18n.log"
                     filePattern="${logDir}/i18n/%d{yyyyMMdd}.%i.log">
            <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout>
                <pattern>${defaultPattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <RollingFile name="HAZELCAST"
                     fileName="${logDir}/${filenamePrefix}hazelcast.log"
                     filePattern="${logDir}/hazelcast/%d{yyyyMMdd}.%i.log">
            <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout>
                <pattern>${defaultPattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

<!--        На случай отслеживания утечек включить логгер и leakDetectionThreshold в обоих конфигах hikari-->

<!--        <RollingFile name="HIKARI" fileName="${logDir}/${filenamePrefix}hikariCP.log"-->
<!--                     filePattern="${logDir}/hazelcast/%d{yyyyMMdd}.%i.log">-->
<!--            <ThresholdFilter level="WARN" onMatch="ACCEPT" onMismatch="DENY"/>-->
<!--            <PatternLayout>-->
<!--                <pattern>${defaultPattern}</pattern>-->
<!--            </PatternLayout>-->
<!--            <Policies>-->
<!--                <SizeBasedTriggeringPolicy size="${maxSize}"/>-->
<!--            </Policies>-->
<!--            <DefaultRolloverStrategy max="${maxCount}"/>-->
<!--        </RollingFile>-->

        <Gelf name="Gelf"
              host="${gelfHost}"
              port="${gelfPort}"
              version="1.1"
              facility="eltex-pcrf"
              extractStackTrace="true"
              originHost="%host{fqdn}"
              maximumMessageSize="8192">
            <Field name="thread" pattern="%t"/>
            <Field name="level" pattern="%level"/>
            <Field name="severity" pattern="%-5level"/>
            <Field name="logger" pattern="%logger{1}"/>
            <Field name="location" pattern="%C{1}.%M(line:%L)"/>
        </Gelf>
    </Appenders>

    <Loggers>
<!--        Hikari logger на случай отслеживания утечек-->
<!--        <Logger name="com.zaxxer.hikari" level="WARN" additivity="false">-->
<!--            <appender-ref ref="HIKARI"/>-->
<!--        </Logger>-->

        <Logger name="org.eltex.softwlc.pcrf">
            <AppenderRef ref="SERVICE"/>
        </Logger>
        <Logger name="org.eltex.softwlc.pcrf">
            <AppenderRef ref="SERVICE"/>
        </Logger>
        <Logger name="io.vertx">
            <AppenderRef ref="SERVICE"/>
        </Logger>
        <Logger name="com.hazelcast"
                additivity="false">
            <AppenderRef ref="HAZELCAST"/>
        </Logger>

        <!-- Turn off debug messages about cluster from MongoDB driver -->
        <Logger name="org.mongodb.driver.cluster"
                level="INFO"/>

        <!-- This Logger writes only to radius.log -->
        <Logger name="org.eltex.softwlc.pcrf.vertx.radius"
                additivity="false">
            <AppenderRef ref="RADIUS"/>
        </Logger>
        <!-- This Logger also writes to radius.log -->
        <Logger name="net.jradius">
            <AppenderRef ref="RADIUS"/>
        </Logger>

        <!-- GenericAP Registrar logging -->
        <Logger name="org.eltex.softwlc.pcrf.vertx.radius.verticle.option82"
                additivity="false">
            <AppenderRef ref="GENERIC_AP"/>
        </Logger>

        <!-- This Logger writes only to lease_saver.log -->
        <Logger name="org.eltex.softwlc.pcrf.vertx.dhcp"
                additivity="false">
            <AppenderRef ref="LEASE_SAVER"/>
        </Logger>

        <!-- This Logger writes only to shaper.log -->
        <Logger name="org.eltex.softwlc.pcrf.vertx.shaper"
                additivity="false">
            <AppenderRef ref="SHAPER"/>
        </Logger>

        <Logger name="org.eltex.softwlc.pcrf.language"
                additivity="false">
            <AppenderRef ref="I18N"/>
        </Logger>

        <Root level="DEBUG">
            <AppenderRef ref="Gelf" level="${gelfLevel}"/>
        </Root>
    </Loggers>
</Configuration>

  • Максимально допустимый размер файла (при его превышении создается новый файл. а старый архивируется):
<Property name="maxSize" value="5MB"/>
  • Максимальное количество архивных файлов, при его превышении наиболее старые файлы будут перезаписываться:
<Property name="maxCount" value="7"/>
  • Базовая директория хранения логов:
<Property name="logDir" value="/var/log/eltex-pcrf"/>
  • Блок настройки перенаправления логов в Graylog (уровень логирования, адрес, порт):
<Property name="gelfHost" value="udp:lab3-test.eltex.loc"/>
<Property name="gelfPort" value="12201"/>
<Property name="gelfLevel" value="OFF"/
  • Уровень логирования:
<Root level="DEBUG">  
  • Нет меток