Описание
Модуль выполняет функции:
- Пересылка копии RADIUS трафика в региональные съемники с учетом регионального признака;
- Формирование выгрузки по соединениям абонентов (RADIUS accounting) для СОРМ-3,
- Загрузка данных по соединениям абонентов (RADIUS accounting) на FTP сервер для системы ИС СОРМ «Январь» (МФИ-СОФТ);
- Обогащение трафика - в RADIUS трафик добавляется флаг "Eltex-DPI-Step-Logic" со значением 0 или 1, который сообщает о том что трафик установлен на контроль.
Подробное описание интеграции: v1.33_Интеграция с системами СОРМ
Управление сервисом
Установка сервиса
apt install eltex-sorm2-replicator
Способ запуска/остановки
Действие | Команда | Ответ |
---|
Проверка состояния | systemctl status eltex-sorm2-replicator | |
Запуск сервиса | systemctl start eltex-sorm2-replicator | |
Остановка сервиса | systemctl stop eltex-sorm2-replicator | |
Перезапуск сервиса | systemctl restart eltex-sorm2-replicator | |
Конфигурация
/etc/default/eltex-sorm2-replicator
Содержит базовые параметры для запуска приложения. Пример дефолтной конфигурации:
# Eltex.SORM2.replicator Server daemon parameters
# 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
# 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"
# Options for Java Garbage Collector
GC_OPTS="-XX:+UseParallelGC \
-XX:+PrintGCDateStamps \
-XX:+PrintGCDetails \
-XX:+UseGCLogFileRotation \
-XX:NumberOfGCLogFiles=7 \
-XX:GCLogFileSize=5M \
-Xloggc:/var/log/eltex-sorm2-replicator/gc.log"
# Without log
#GC_OPTS="-XX:+UseParallelGC"
# Additional arguments to pass to java
HEAP_DUMP_OPTS="-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/eltex-sorm2-replicator"
# Summary JAVA_OPTS used by daemon
JAVA_OPTS="$JMX_OPTS $GC_OPTS $HEAP_DUMP_OPTS"
# Send notification
#NOTIFICATION_ADDR="admin@mail.loc"
Параметры | Описание |
---|
| Расположение 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 | Параметры записи дапма памяти. |
JVM_OPTS | Дополнительные опции для запуска jvm. |
NOTIFICATION_ADDR | Адрес для отправки уведомлений. |
/etc/eltex-sorm2-replicator/eltex-sorm2-replicator.json
Содержит настройки взаимодействия с другими сервисами.
{
"acct.address" : "0.0.0.0",
"acct.port" : [41813],
"acct.receive.buffer.byte" : 134217728,
"web.monitoring.port" : 7071,
"cluster.enable" : false,
"cluster.eventBusPort" : 5802,
"radius" : {
"url": "jdbc:mysql://localhost/radius?useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000&socketTimeout=5000&autoReconnect=true&useSSL=false",
"user": "javauser",
"password": "javapassword",
"max_pool_size": 16
},
"sql.ems" : {
"url": "jdbc:mysql://localhost/eltex_ems?useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&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&relaxAutoCommit=true&connectTimeout=5000&socketTimeout=5000&autoReconnect=true&useSSL=false",
"user": "javauser",
"password": "javapassword",
"max_pool_size": 16
},
"sql.sorm2" : {
"url": "jdbc:mysql:///eltex_sorm2?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000&socketTimeout=5000&useSSL=false",
"user": "javauser",
"password": "javapassword",
"max_pool_size": 16
},
"sql.pcrf" : {
"url": "jdbc:mysql:///eltex_pcrf?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000&socketTimeout=5000&useSSL=false",
"user": "javauser",
"password": "javapassword",
"max_pool_size": 16
},
"global.clients" : {
"enabled" : false,
"clients" : [
{ "host" : "127.0.0.1", "port" : 11813, "secret": "eltex" }
]
},
"sorm3" : {
"enabled" : true,
"host" : "127.0.0.1",
"port" : 21,
"period_s" : 900,
"user" : "ftp",
"pass" : "ftp",
"acct_dir" : null,
"node_id" : null
},
"sorm2" : {
"enabled" : true,
"federated" : false
},
"dpi.step.logic" : {
"enabled" : false,
"verbose" : false
}
}
Параметры | Описание |
---|
Настройки сбора аккаунтинга |
---|
acct.address | Адрес интерфейса сервера, на котором слушается входящий трафик аккаунтинга (0.0.0.0 включает прослушивание на всех интерфейсах). |
acct.port | Порт сервера, на котором прослушивается входящий трафик аккаунтинга. |
acct.receive.buffer.byte | Размер буфера приема. |
Порт мониторинга |
---|
web.monitoring.port | Порт для работы технологической консоли и мониторинга. |
Включение кластеризации |
---|
cluster.enable | Запуск кластеризации. |
cluster.eventBusPort | Порт для обмена данными с нодами в кластере. |
Настройки коннектов к БД MariaDB ('radius', 'eltex_ems', 'wireless', 'eltex_sorm2', 'eltex-pcrf') |
---|
url | Строка подключения к базе данных MariaDB. |
user | Логин для подключения к БД. |
password | Пароль для подключения к БД. |
max_pool_size | Максимальное количество коннектов, которое можно открыть сервис для подключения. |
Перенаправления RADIUS-аккаунтинга на внешний сервер (global.clients) |
---|
enabled | Включает перенаправление аккаунтинга на внешний сервер. |
host | Адрес внешнего сервера. |
port | Порт внешнего сервера |
secret | Пароль radius. |
Выгрузка информации на FTP-сервер (sorm3) |
---|
enabled | Включает выгрузку информации на FTP-сервер. |
host | Адрес FTP-сервера. |
port | Порт FTP-сервера. |
period_s | Интервал выгрузки информации. |
user | Логин для входа на FTP-сервер. |
pass | Пароль для входа на FTP-сервер. |
acct_dir | Директория для выгрузки информации. |
node_id | Идентификатор (IP адрес) хоста съемника, используется в формировании имени выгружаемого по ftp файла с данными. |
Перенаправление RADIUS-аккаунтинга на региональный съемник (sorm2) |
---|
enabled | Глобально включает возможность пернаправления аккаунтинга. |
federated | Включает поиск съемников, которые были включены в "Личном кабинете" в разделе "Настройки" → "Дерево доменов" в колонке "СОРМ-2". |
Обогащение RADIUS-аккаунтинга для DPI (dpi.step.logic) |
---|
enabled | Активирует обогащение трафика для DPI: enabled=false - не вычитывает SSID, высылает все пакеты, не подставляет новые статусы enabled=true - вычитывает SSID, подcтавляет аргументы dpi и cms в radius
|
verbose | Определяет режим пересылки пакетов: - verbose=false - высылает пакет только если dpi = 1 (точка и SSID)
- verbose=true - всегда высылает пакет, в пакете значения dpi 0 или 1
|
/etc/eltex-sorm2-replicator/hazelcast-cluster.xml
Конфигурация кластера Hazelcast, используемого для объединения отдельных нод SORM2-replicator.
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2008-2016, Hazelcast, Inc. All Rights Reserved.
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
-->
<hazelcast xsi:schemaLocation="http://www.hazelcast.com/schema/config hazelcast-config-3.12.xsd"
xmlns="http://www.hazelcast.com/schema/config"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<config-replacers>
<replacer class-name="org.eltex.softwlc.hazelcast.configuration.EnvironmentConfigReplacer"></replacer>
</config-replacers>
<group>
<name>eltex-sorm2-replicator</name>
<password>eltex-sorm2-replicator</password>
</group>
<management-center enabled="false">http://localhost:8080/mancenter</management-center>
<network>
<!-- Write here public address of the node -->
<public-address>$env{REPLICATOR_PUBLIC_ADDRESS:-192.168.0.1}</public-address>
<port auto-increment="false" port-count="100">$env{REPLICATOR_PUBLIC_PORT:-5702}</port>
<outbound-ports>
<ports>0</ports>
</outbound-ports>
<join>
<multicast enabled="true">
<trusted-interfaces>
<interface>192.168.26.*</interface>
</trusted-interfaces>
</multicast>
<tcp-ip enabled="false">
<!-- 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>$env{REPLICATOR_PUBLIC_ADDRESS:-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>
<partition-group enabled="false"/>
<map name="__vertx.subs">
<backup-count>1</backup-count>
<time-to-live-seconds>0</time-to-live-seconds>
<max-idle-seconds>0</max-idle-seconds>
<eviction-policy>NONE</eviction-policy>
<max-size policy="PER_NODE">0</max-size>
<eviction-percentage>25</eviction-percentage>
<merge-policy>com.hazelcast.map.merge.LatestUpdateMapMergePolicy</merge-policy>
</map>
<semaphore name="__vertx.*">
<initial-permits>1</initial-permits>
</semaphore>
<map name="sorm2profiles">
<map-store enabled="true">
<class-name>org.eltex.softwlc.sorm2.hazelcast.profile.ProfileLoader</class-name>
<properties>
<property name="configPath">$env{REPLICATOR_MAP_CONFIG_FILE:-/etc/eltex-sorm2-replicator/eltex-sorm2-replicator.json}</property>
<property name="environmentPrefix">REPLICATOR</property>
</properties>
</map-store>
<in-memory-format>BINARY</in-memory-format>
<backup-count>0</backup-count>
<async-backup-count>0</async-backup-count>
<time-to-live-seconds>1200</time-to-live-seconds>
<max-idle-seconds>0</max-idle-seconds>
<eviction-policy>LRU</eviction-policy>
<max-size policy="FREE_HEAP_PERCENTAGE">5</max-size>
<eviction-percentage>25</eviction-percentage>
<min-eviction-check-millis>5000</min-eviction-check-millis>
<merge-policy>com.hazelcast.map.merge.PutIfAbsentMapMergePolicy</merge-policy>
<cache-deserialized-values>INDEX-ONLY</cache-deserialized-values>
</map>
<map name="sorm2links">
<map-store enabled="true">
<class-name>org.eltex.softwlc.sorm2.hazelcast.link.LinkLoader</class-name>
<properties>
<property name="configPath">$env{REPLICATOR_MAP_CONFIG_FILE:-/etc/eltex-sorm2-replicator/eltex-sorm2-replicator.json}</property>
<property name="environmentPrefix">REPLICATOR</property>
</properties>
</map-store>
<in-memory-format>BINARY</in-memory-format>
<backup-count>0</backup-count>
<async-backup-count>0</async-backup-count>
<time-to-live-seconds>1200</time-to-live-seconds>
<max-idle-seconds>0</max-idle-seconds>
<eviction-policy>LRU</eviction-policy>
<max-size policy="FREE_HEAP_PERCENTAGE">5</max-size>
<eviction-percentage>25</eviction-percentage>
<min-eviction-check-millis>5000</min-eviction-check-millis>
<merge-policy>com.hazelcast.map.merge.PutIfAbsentMapMergePolicy</merge-policy>
<cache-deserialized-values>INDEX-ONLY</cache-deserialized-values>
</map>
<map name="mysqlNas">
<map-store enabled="true">
<class-name>org.eltex.softwlc.sorm2.hazelcast.nas.SormNasLoader</class-name>
<properties>
<property name="configPath">$env{REPLICATOR_MAP_CONFIG_FILE:-/etc/eltex-sorm2-replicator/eltex-sorm2-replicator.json}</property>
<property name="environmentPrefix">REPLICATOR</property>
</properties>
</map-store>
<in-memory-format>BINARY</in-memory-format>
<backup-count>0</backup-count>
<async-backup-count>0</async-backup-count>
<time-to-live-seconds>600</time-to-live-seconds>
<max-idle-seconds>0</max-idle-seconds>
<eviction-policy>LRU</eviction-policy>
<max-size policy="FREE_HEAP_PERCENTAGE">5</max-size>
<eviction-percentage>25</eviction-percentage>
<min-eviction-check-millis>5000</min-eviction-check-millis>
<merge-policy>com.hazelcast.map.merge.PutIfAbsentMapMergePolicy</merge-policy>
<cache-deserialized-values>INDEX-ONLY</cache-deserialized-values>
</map>
<map name="mysqlDomains">
<map-store enabled="true">
<class-name>org.eltex.softwlc.hazelcast.mysql.DomainLoader</class-name>
<properties>
<property name="configPath">$env{REPLICATOR_MAP_CONFIG_FILE:-/etc/eltex-sorm2-replicator/eltex-sorm2-replicator.json}</property>
<property name="environmentPrefix">REPLICATOR</property>
</properties>
</map-store>
<in-memory-format>BINARY</in-memory-format>
<backup-count>0</backup-count>
<async-backup-count>0</async-backup-count>
<time-to-live-seconds>600</time-to-live-seconds>
<max-idle-seconds>0</max-idle-seconds>
<eviction-policy>LRU</eviction-policy>
<max-size policy="FREE_HEAP_PERCENTAGE">5</max-size>
<eviction-percentage>25</eviction-percentage>
<min-eviction-check-millis>5000</min-eviction-check-millis>
<merge-policy>com.hazelcast.map.merge.PutIfAbsentMapMergePolicy</merge-policy>
<cache-deserialized-values>INDEX-ONLY</cache-deserialized-values>
</map>
<map name="subnets">
<map-store enabled="true">
<class-name>org.eltex.softwlc.hazelcast.mysql.SubnetLoader</class-name>
<properties>
<property name="configPath">$env{REPLICATOR_MAP_CONFIG_FILE:-/etc/eltex-sorm2-replicator/eltex-sorm2-replicator.json}</property>
<property name="environmentPrefix">REPLICATOR</property>
</properties>
</map-store>
<in-memory-format>BINARY</in-memory-format>
<backup-count>0</backup-count>
<async-backup-count>0</async-backup-count>
<time-to-live-seconds>600</time-to-live-seconds>
<max-idle-seconds>0</max-idle-seconds>
<eviction-policy>LRU</eviction-policy>
<max-size policy="FREE_HEAP_PERCENTAGE">10</max-size>
<eviction-percentage>25</eviction-percentage>
<min-eviction-check-millis>5000</min-eviction-check-millis>
<merge-policy>com.hazelcast.map.merge.PutIfAbsentMapMergePolicy</merge-policy>
<cache-deserialized-values>INDEX-ONLY</cache-deserialized-values>
</map>
<map name="mysqlSsid">
<map-store enabled="true">
<class-name>org.eltex.softwlc.sorm2.hazelcast.ssid.SormSsidLoader</class-name>
<properties>
<property name="configPath">$env{REPLICATOR_MAP_CONFIG_FILE:-/etc/eltex-sorm2-replicator/eltex-sorm2-replicator.json}</property>
<property name="environmentPrefix">REPLICATOR</property>
</properties>
</map-store>
<in-memory-format>BINARY</in-memory-format>
<backup-count>0</backup-count>
<async-backup-count>0</async-backup-count>
<time-to-live-seconds>600</time-to-live-seconds>
<max-idle-seconds>0</max-idle-seconds>
<eviction-policy>LRU</eviction-policy>
<max-size policy="FREE_HEAP_PERCENTAGE">5</max-size>
<eviction-percentage>25</eviction-percentage>
<min-eviction-check-millis>5000</min-eviction-check-millis>
<merge-policy>com.hazelcast.map.merge.PutIfAbsentMapMergePolicy</merge-policy>
<cache-deserialized-values>INDEX-ONLY</cache-deserialized-values>
</map>
<serialization>
<portable-version>0</portable-version>
</serialization>
<services enable-defaults="true"/>
<lite-member enabled="false"/>
<properties>
<property name="hazelcast.logging.type">slf4j</property>
</properties>
</hazelcast>
Параметры | Описание |
---|
<name>eltex-sorm2-replicator</name> | Имя ноды. Должно быть одинаковым на всех устройствах. |
<public-address>$env{REPLICATOR_PUBLIC_ADDRESS:-192.168.0.1}</public-address> | Собственный адрес ноды в кластере. |
<member>192.168.0.1</member> <member>192.168.0.2</member> | Список нод, состоящих в кластере. Необходимо указывать как собственный адрес, так и всех нод состоящих в кластере. Так же требуется указать следующим образом параметры: <multicast enabled="false"> <tcp-ip enabled="true"> |
<interface>$env{REPLICATOR_PUBLIC_ADDRESS:-192.168.0.1}</interface> | Адрес интерфейса ноды в кластере (как правило равен public-address). |
/etc/eltex-sorm2-replicator/log4j.xml
Файл настроек логирования:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration packages="org.eltex.softwlc.sorm2.logger">
<Properties>
<Property name="maxSize" value="5MB"/>
<Property name="maxCount" value="7"/>
<Property name="logDir" value="/var/log/eltex-sorm2-replicator"/>
<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-sorm2-replicator-"/>
</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/%{filenamePrefix}service.%i.log">
<ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout>
<pattern>${defaultPattern}</pattern>
</PatternLayout>
<Policies>
<SizeBasedTriggeringPolicy size="${maxSize}"/>
</Policies>
<DefaultRolloverStrategy max="${maxCount}"/>
</RollingFile>
<RollingFile name="FTP"
fileName="${logDir}/${filenamePrefix}ftp.log"
filePattern="${logDir}/ftp/${filenamePrefix}ftp.%i.log">
<ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout>
<pattern>${defaultPattern}</pattern>
</PatternLayout>
<Policies>
<SizeBasedTriggeringPolicy size="${maxSize}"/>
</Policies>
<DefaultRolloverStrategy max="${maxCount}"/>
</RollingFile>
<RollingFile name="SORM3_ACCT"
fileName="${logDir}/${filenamePrefix}export_acct.csv"
filePattern="${logDir}/export_acct/IP_ACC_%d{yyyyMMdd_HHmm}.csv">
<ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>
<CsvCustomParameterLayout format="Excel" delimiter=";" quote="" escape="^" quoteMode="NONE" nullString=""/>
<Policies>
<TimeBasedTriggeringPolicy />
</Policies>
</RollingFile>
<RollingFile name="DEFAULT"
fileName="${logDir}/${filenamePrefix}default.log"
filePattern="${logDir}/default/${filenamePrefix}default.%i.log">
<ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout>
<pattern>${defaultPattern}</pattern>
</PatternLayout>
<Policies>
<SizeBasedTriggeringPolicy size="${maxSize}"/>
</Policies>
<DefaultRolloverStrategy max="${maxCount}"/>
</RollingFile>
<RollingFile name="HAZELCAST"
fileName="${logDir}/${filenamePrefix}hazelcast.log"
filePattern="${logDir}/hazelcast/${filenamePrefix}hazelcast.%i.log">
<ThresholdFilter level="INFO" 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-sorm2-replicator"
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>
<!-- These loggers write to service.log -->
<Logger name="org.eltex.softwlc.sorm2.ftp">
<AppenderRef ref="FTP"/>
</Logger>
<Logger name="org.eltex.softwlc">
<AppenderRef ref="SERVICE"/>
</Logger>
<Logger name="io.vertx">
<AppenderRef ref="SERVICE" />
</Logger>
<Logger name="com.hazelcast" additivity="false">
<AppenderRef ref="HAZELCAST" />
</Logger>
<Logger name="net.jradius">
<AppenderRef ref="SERVICE"/>
</Logger>
<Logger name="SORM3_ACCT">
<AppenderRef ref="SORM3_ACCT"/>
</Logger>
<Root level="INFO">
<AppenderRef ref="Gelf" level="${gelfLevel}"/>
</Root>
</Loggers>
</Configuration>
- Максимально допустимый размер файла (при его превышении создается новый файл, а старый архивируется):
- Максимальное количество архивных файлов, при его превышении наиболее старые файлы будут перезаписываться:
- Базовая директория хранения логов:
- Блок настройки перенаправления логов в Graylog (уровень логирования, адрес, порт):
/etc/eltex-sorm2-replicator/sorm3-columns.json
Файл настроек списка колонок в выгружаемой на FTP-сервер информации. При изменении файла требуется перезапустить сервис eltex-sorm2-replicator.
{
"CONNECTION_TIME": true,
"REGION_ID": true,
"POINT_ID": true,
"LOGIN_TYPE": true,
"SESSION_ID": true,
"ALLOCATED_IPV4": true,
"ALLOCATED_IPV6": true,
"USER_NAME": true,
"CONNECT_TYPE": true,
"CALLING_NUMBER": true,
"CALLED_NUMBER": true,
"NAS_IPV4": true,
"NAS_IPV6": true,
"NAS_IP_PORT": true,
"IN_BYTES_COUNT": true,
"OUT_BYTES_COUNT": true,
"USER_PASSWORD": true,
"USER_EQ_MAC": true,
"USER_EQ_VPI": true,
"USER_EQ_VCI": true,
"APN": true,
"SGSN_IPV4": true,
"SGSN_IPV6": true,
"GGSN_IPV4": true,
"GGSN_IPV6": true,
"SERVICE_AREA_CODE": true,
"LAC_START": true,
"CELL_START": true,
"TA_START": true,
"WL_CELL_START": true,
"WL_MAC_START": true,
"LAC_END": true,
"CELL_END": true,
"TA_END": true,
"WL_CELL_END": true,
"WL_MAC_END": true,
"PHONE_CARD_NUMBER": true,
"IMSI": true,
"IMEI": true,
"ESN": true,
"POOL": true,
"L2_INTERFACE": false
}
Докеризация сервиса
С версии ПО 1.23 сервис может быть запущен в docker-контейнере. Для этого необходимо подготовить файл с переменными окружения .env и docker-compose.yml
docker-compose.yml
version: "3"
services:
eltex-sorm2-replicator:
container_name: eltex-sorm2-replicator
image: ${ELTEX_HUB}/eltex-sorm2-replicator:${SWLC_VERSION}
ports:
# Публичный порт Hazelcast
- "${REPLICATOR_PUBLIC_PORT}:${REPLICATOR_PUBLIC_PORT}"
# Порт аккаунтинга
- "${REPLICATOR_ACCT_PORT}:${REPLICATOR_ACCT_PORT}/udp"
# Порт WEB-API Sorm Replicator
- "${REPLICATOR_WEB_MONITORING_PORT}:${REPLICATOR_WEB_MONITORING_PORT}"
# Порт EventBus Vert.x
- "${REPLICATOR_CLUSTER_EVENT_BUS_PORT}:${REPLICATOR_CLUSTER_EVENT_BUS_PORT}"
volumes:
# eltex-sorm2-replicator-export_acct.csv будет писаться в эту директорию
- "./export:${REPLICATOR_LOG_DIR}"
# Проброс таймзоны хоста для корректного именования файлов
- "/etc/timezone:/etc/timezone:ro"
environment:
# Можно также переопределить параметры запуска сервиса
# Но это нужно делать, только если есть необходимость, пока в закомментированном виде
#- REPLICATOR_MAP_CONFIG_FILE=${REPLICATOR_MAP_CONFIG_FILE}
#- REPLICATOR_LOG_DIR=${REPLICATOR_LOG_DIR}
#- REPLICATOR_DOCKER=${REPLICATOR_DOCKER}
#- REPLICATOR_MULTICAST_ENABLED=${REPLICATOR_MULTICAST_ENABLED}
#- DEBUG_PORT=${REPLICATOR_DEBUG_PORT}
#- REPLICATOR_JAVA_INIT_HEAP=${REPLICATOR_JAVA_INIT_HEAP}
#- REPLICATOR_JAVA_MAX_HEAP=${REPLICATOR_JAVA_MAX_HEAP}
#- REPLICATOR_HEAP_DUMP_PATH=${REPLICATOR_HEAP_DUMP_PATH}
#- REPLICATOR_CONFIG_DIR=${REPLICATOR_CONFIG_DIR}
#
# Конфигурация логирования
- REPLICATOR_LOG_LEVEL=${REPLICATOR_LOG_LEVEL}
- REPLICATOR_CONSOLE_LOG_LEVEL=${REPLICATOR_CONSOLE_LOG_LEVEL}
- REPLICATOR_FILE_LOG_LEVEL=${REPLICATOR_FILE_LOG_LEVEL}
- GELF_HOST=${REPLICATOR_GELF_HOST}
- GELF_PORT=${REPLICATOR_GELF_PORT}
- GELF_LEVEL=${REPLICATOR_GELF_LEVEL}
#
# Конфигурация режима кластера
- REPLICATOR_cluster.enable=${REPLICATOR_CLUSTER_ENABLED}
- REPLICATOR_cluster.eventBusPort=${REPLICATOR_CLUSTER_EVENT_BUS_PORT}
- REPLICATOR_PUBLIC_ADDRESS=${REPLICATOR_PUBLIC_ADDRESS}
- REPLICATOR_PUBLIC_PORT=${REPLICATOR_PUBLIC_PORT}
- REPLICATOR_TCP_IP_ENABLED=${REPLICATOR_TCP_IP_ENABLED}
# REPLICATOR_TCP_IP_NODE_1=${REPLICATOR_TCP_IP_NODE_1}
# REPLICATOR_TCP_IP_NODE_2=${REPLICATOR_TCP_IP_NODE_2}
#
# Настройки приложения из eltex-sorm2-replicator.json
- REPLICATOR_acct.address=${REPLICATOR_ACCT_ADDRESS}
- REPLICATOR_acct.port__0=${REPLICATOR_ACCT_PORT}
- REPLICATOR_acct.receive.buffer.byte=${REPLICATOR_ACCT_RECEIVE_BUFFER_BYTE}
#
- REPLICATOR_web.monitoring.port=${REPLICATOR_WEB_MONITORING_PORT}
#
- REPLICATOR_radius__url=${REPLICATOR_RADIUS_URL}
- REPLICATOR_radius__user=${REPLICATOR_RADIUS_USER}
- REPLICATOR_radius__password=${REPLICATOR_RADIUS_PASSWORD}
- REPLICATOR_radius__max_pool_size=${REPLICATOR_RADIUS_MAX_POOL_SIZE}
#
- REPLICATOR_sql.ems__url=${REPLICATOR_SQL_EMS_URL}
- REPLICATOR_sql.ems__user=${REPLICATOR_SQL_EMS_USER}
- REPLICATOR_sql.ems__password=${REPLICATOR_SQL_EMS_PASSWORD}
- REPLICATOR_sql.ems__max_pool_size=${REPLICATOR_SQL_EMS_MAX_POOL_SIZE}
#
- REPLICATOR_sql.wireless__url=${REPLICATOR_SQL_WIRELESS_URL}
- REPLICATOR_sql.wireless__user=${REPLICATOR_SQL_WIRELESS_USER}
- REPLICATOR_sql.wireless__password=${REPLICATOR_SQL_WIRELESS_PASSWORD}
- REPLICATOR_sql.wireless__max_pool_size=${REPLICATOR_SQL_WIRELESS_MAX_POOL_SIZE}
#
- REPLICATOR_sql.pcrf__url=${REPLICATOR_SQL_PCRF_URL}
- REPLICATOR_sql.pcrf__user=${REPLICATOR_SQL_PCRF_USER}
- REPLICATOR_sql.pcrf__password=${REPLICATOR_SQL_PCRF_PASSWORD}
- REPLICATOR_sql.pcrf__max_pool_size=${REPLICATOR_SQL_PCRF_MAX_POOL_SIZE}
#
- REPLICATOR_sql.sorm2__url=${REPLICATOR_SQL_SORM2_URL}
- REPLICATOR_sql.sorm2__user=${REPLICATOR_SQL_SORM2_USER}
- REPLICATOR_sql.sorm2__password=${REPLICATOR_SQL_SORM2_PASSWORD}
- REPLICATOR_sql.sorm2__max_pool_size=${REPLICATOR_SQL_SORM2_MAX_POOL_SIZE}
#
- REPLICATOR_global.clients__enabled=${REPLICATOR_GLOBAL_CLIENTS_ENABLED}
- REPLICATOR_global.clients__clients__0__host=${REPLICATOR_GLOBAL_CLIENTS_CLIENTS_1_HOST}
- REPLICATOR_global.clients__clients__0__port=${REPLICATOR_GLOBAL_CLIENTS_CLIENTS_1_PORT}
- REPLICATOR_global.clients__clients__0__secret=${REPLICATOR_GLOBAL_CLIENTS_CLIENTS_1_SECRET}
#
- REPLICATOR_sorm3__enabled=${REPLICATOR_SORM3_ENABLED}
- REPLICATOR_sorm3__host=${REPLICATOR_SORM3_HOST}
- REPLICATOR_sorm3__port=${REPLICATOR_SORM3_PORT}
- REPLICATOR_sorm3__period_s=${REPLICATOR_SORM3_PERIOD_S}
- REPLICATOR_sorm3__user=${REPLICATOR_SORM3_USER}
- REPLICATOR_sorm3__pass=${REPLICATOR_SORM3_PASS}
- REPLICATOR_sorm3__acct_dir=${REPLICATOR_SORM3_ACCT_DIR}
- REPLICATOR_sorm3__node_id=${REPLICATOR_SORM3_NODE_ID}
#
- REPLICATOR_sorm2__enabled=${REPLICATOR_SORM2_ENABLED}
- REPLICATOR_sorm2__federated=${REPLICATOR_SORM2_FEDERATED}
#
- REPLICATOR_dpi.step.logic__enabled=${REPLICATOR_DPI_STEP_LOGIC_ENABLED}
- REPLICATOR_dpi.step.logic__verbose=${REPLICATOR_DPI_STEP_LOGIC_VERBOSE}
#
# Также можно настроить поля из sorm3-columns.json
- SORM3_FIELD_CONNECTION_TIME=${SORM3_FIELD_CONNECTION_TIME}
- SORM3_FIELD_REGION_ID=${SORM3_FIELD_REGION_ID}
- SORM3_FIELD_POINT_ID=${SORM3_FIELD_POINT_ID}
- SORM3_FIELD_LOGIN_TYPE=${SORM3_FIELD_LOGIN_TYPE}
- SORM3_FIELD_SESSION_ID=${SORM3_FIELD_SESSION_ID}
- SORM3_FIELD_ALLOCATED_IPV4=${SORM3_FIELD_ALLOCATED_IPV4}
- SORM3_FIELD_ALLOCATED_IPV6=${SORM3_FIELD_ALLOCATED_IPV6}
- SORM3_FIELD_USER_NAME=${SORM3_FIELD_USER_NAME}
- SORM3_FIELD_CONNECT_TYPE=${SORM3_FIELD_CONNECT_TYPE}
- SORM3_FIELD_CALLING_NUMBER=${SORM3_FIELD_CALLING_NUMBER}
- SORM3_FIELD_CALLED_NUMBER=${SORM3_FIELD_CALLED_NUMBER}
- SORM3_FIELD_NAS_IPV4=${SORM3_FIELD_NAS_IPV4}
- SORM3_FIELD_NAS_IPV6=${SORM3_FIELD_NAS_IPV6}
- SORM3_FIELD_NAS_IP_PORT=${SORM3_FIELD_NAS_IP_PORT}
- SORM3_FIELD_IN_BYTES_COUNT=${SORM3_FIELD_IN_BYTES_COUNT}
- SORM3_FIELD_OUT_BYTES_COUNT=${SORM3_FIELD_OUT_BYTES_COUNT}
- SORM3_FIELD_USER_PASSWORD=${SORM3_FIELD_USER_PASSWORD}
- SORM3_FIELD_USER_EQ_MAC=${SORM3_FIELD_USER_EQ_MAC}
- SORM3_FIELD_USER_EQ_VPI=${SORM3_FIELD_USER_EQ_VPI}
- SORM3_FIELD_USER_EQ_VCI=${SORM3_FIELD_USER_EQ_VCI}
- SORM3_FIELD_APN=${SORM3_FIELD_APN}
- SORM3_FIELD_SGSN_IPV4=${SORM3_FIELD_SGSN_IPV4}
- SORM3_FIELD_SGSN_IPV6=${SORM3_FIELD_SGSN_IPV6}
- SORM3_FIELD_GGSN_IPV4=${SORM3_FIELD_GGSN_IPV4}
- SORM3_FIELD_GGSN_IPV6=${SORM3_FIELD_GGSN_IPV6}
- SORM3_FIELD_SERVICE_AREA_CODE=${SORM3_FIELD_SERVICE_AREA_CODE}
- SORM3_FIELD_LAC_START=${SORM3_FIELD_LAC_START}
- SORM3_FIELD_CELL_START=${SORM3_FIELD_CELL_START}
- SORM3_FIELD_TA_START=${SORM3_FIELD_TA_START}
- SORM3_FIELD_WL_CELL_START=${SORM3_FIELD_WL_CELL_START}
- SORM3_FIELD_WL_MAC_START=${SORM3_FIELD_WL_MAC_START}
- SORM3_FIELD_LAC_END=${SORM3_FIELD_LAC_END}
- SORM3_FIELD_CELL_END=${SORM3_FIELD_CELL_END}
- SORM3_FIELD_TA_END=${SORM3_FIELD_TA_END}
- SORM3_FIELD_WL_CELL_END=${SORM3_FIELD_WL_CELL_END}
- SORM3_FIELD_WL_MAC_END=${SORM3_FIELD_WL_MAC_END}
- SORM3_FIELD_PHONE_CARD_NUMBER=${SORM3_FIELD_PHONE_CARD_NUMBER}
- SORM3_FIELD_IMSI=${SORM3_FIELD_IMSI}
- SORM3_FIELD_IMEI=${SORM3_FIELD_IMEI}
- SORM3_FIELD_ESN=${SORM3_FIELD_ESN}
- SORM3_FIELD_POOL=${SORM3_FIELD_POOL}
- SORM3_FIELD_L2_INTERFACE=${SORM3_FIELD_L2_INTERFACE}
.env
# Docker HUB
ELTEX_HUB= hub.eltex-co.ru/softwlc
# Common version number
SWLC_VERSION=1.30-<tag>
# ! Настройки запуска приложения. Лучше не менять! !
# Путь до файла конфигурации внутри контейнера, рекомендуется не менять
REPLICATOR_MAP_CONFIG_FILE=/etc/eltex-sorm2-replicator/eltex-sorm2-replicator.json
# Директория для записи логов внутри контейнера, рекомендуется не менять
REPLICATOR_LOG_DIR=/var/log/eltex-sorm2-replicator
# Запущен ли eltex-sorm2-replicator в контейнере
REPLICATOR_DOCKER=TRUE
# Включено ли обнаружение через Multicast, пока что не поддерживается
REPLICATOR_MULTICAST_ENABLED=FALSE
# Порт для отладки JVM в контейнере. Пока установлено значение 0, отладка выключена.
REPLICATOR_DEBUG_PORT=0
# Изначальный размер хипа
REPLICATOR_JAVA_INIT_HEAP=256m
# Максимальный размер хипа
REPLICATOR_JAVA_MAX_HEAP=512m
# Путь, куда нужно складывать heap-dump в случае падения приложения
REPLICATOR_HEAP_DUMP_PATH=/var/log/eltex-sorm2-replicator
# Внутренний путь до конфигурации сервиса
REPLICATOR_CONFIG_DIR=/etc/eltex-sorm2-replicator
# ! Настройки приложения ! #
# ! Настройки логирования ! #
# Основной уровень логирования
REPLICATOR_LOG_LEVEL=INFO
REPLICATOR_CONSOLE_LOG_LEVEL=INFO
# Логирование в файл. Выключено по-умолчанию.
REPLICATOR_FILE_LOG_LEVEL=OFF
# Настройки GELF
REPLICATOR_GELF_HOST=udp:localhost
REPLICATOR_GELF_PORT=12201
REPLICATOR_GELF_LEVEL=OFF
# ! Настройки репликации ! #
#Включение режима кластера
REPLICATOR_CLUSTER_ENABLED=FALSE
# Порт Vert.x EventBus внутри кластера
REPLICATOR_CLUSTER_EVENT_BUS_PORT=5802
# Публичный адрес узла SORM2-Replicator
REPLICATOR_PUBLIC_ADDRESS=192.168.0.1
# Публичный порт узла SORM2-Replicator
REPLICATOR_PUBLIC_PORT=5702
# Механизм обнаружения через прямое указание адресов соседей, выключен по-умолчанию и пока поддерживается
# только этот вариант. Необходимо включить, если используется репликация
REPLICATOR_TCP_IP_ENABLED=FALSE
# Как указать адреса соседних узлов
# 1. Объявить переменную окружения REPLICATOR_TCP_IP_NODE_1=x.x.x.x, где x.x.x.x адрес узла кластера
# Свой адрес
# Такой же как и в REPLICATOR_PUBLIC_ADDRESS
#REPLICATOR_TCP_IP_NODE_1=192.168.0.1
# Адрес соседней ноды
#REPLICATOR_TCP_IP_NODE_2=192.168.0.2
# ! Настройки приложения из eltex-sorm2-replicator.json ! #
REPLICATOR_ACCT_ADDRESS=0.0.0.0
REPLICATOR_ACCT_PORT=41813
REPLICATOR_ACCT_RECEIVE_BUFFER_BYTE=134217728
REPLICATOR_WEB_MONITORING_PORT=7071
REPLICATOR_RADIUS_URL=jdbc:mysql://localhost/radius?useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000&socketTimeout=5000&autoReconnect=true&useSSL=false
REPLICATOR_RADIUS_USER=javauser
REPLICATOR_RADIUS_PASSWORD=javapassword
REPLICATOR_RADIUS_MAX_POOL_SIZE=16
REPLICATOR_SQL_EMS_URL=jdbc:mysql://localhost/eltex_ems?useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000&socketTimeout=5000&autoReconnect=true&useSSL=false
REPLICATOR_SQL_EMS_USER=javauser
REPLICATOR_SQL_EMS_PASSWORD=javapassword
REPLICATOR_SQL_EMS_MAX_POOL_SIZE=16
REPLICATOR_SQL_WIRELESS_URL=jdbc:mysql://localhost/wireless?useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000&socketTimeout=5000&autoReconnect=true&useSSL=false
REPLICATOR_SQL_WIRELESS_USER=javauser
REPLICATOR_SQL_WIRELESS_PASSWORD=javapassword
REPLICATOR_SQL_WIRELESS_MAX_POOL_SIZE=16
REPLICATOR_SQL_PCRF_URL=jdbc:mysql://localhost/eltex_pcrf?useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000&socketTimeout=5000&autoReconnect=true&useSSL=false
REPLICATOR_SQL_PCRF_USER=javauser
REPLICATOR_SQL_PCRF_PASSWORD=javapassword
REPLICATOR_SQL_PCRF_MAX_POOL_SIZE=16
REPLICATOR_SQL_SORM2_URL=jdbc:mysql://localhost/eltex_sorm2?useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000&socketTimeout=5000&autoReconnect=true&useSSL=false
REPLICATOR_SQL_SORM2_USER=javauser
REPLICATOR_SQL_SORM2_PASSWORD=javapassword
REPLICATOR_SQL_SORM2_MAX_POOL_SIZE=16
REPLICATOR_GLOBAL_CLIENTS_ENABLED=FALSE
REPLICATOR_GLOBAL_CLIENTS_CLIENTS_1_HOST=127.0.0.1
REPLICATOR_GLOBAL_CLIENTS_CLIENTS_1_PORT=11813
REPLICATOR_GLOBAL_CLIENTS_CLIENTS_1_SECRET=eltex
REPLICATOR_SORM3_ENABLED=TRUE
REPLICATOR_SORM3_HOST=127.0.0.1
REPLICATOR_SORM3_PORT=21
REPLICATOR_SORM3_PERIOD_S=900
REPLICATOR_SORM3_USER=ftp
REPLICATOR_SORM3_PASS=ftp
REPLICATOR_SORM3_ACCT_DIR=null
REPLICATOR_SORM3_NODE_ID=172.16.0.162
REPLICATOR_SORM2_ENABLED=TRUE
REPLICATOR_SORM2_FEDERATED=FALSE
REPLICATOR_DPI_STEP_LOGIC_ENABLED=FALSE
REPLICATOR_DPI_STEP_LOGIC_VERBOSE=FALSE
# ! Настройки из sorm3-columns.json ! #
SORM3_FIELD_CONNECTION_TIME=true
SORM3_FIELD_REGION_ID=true
SORM3_FIELD_POINT_ID=true
SORM3_FIELD_LOGIN_TYPE=true
SORM3_FIELD_SESSION_ID=true
SORM3_FIELD_ALLOCATED_IPV4=true
SORM3_FIELD_ALLOCATED_IPV6=true
SORM3_FIELD_USER_NAME=true
SORM3_FIELD_CONNECT_TYPE=true
SORM3_FIELD_CALLING_NUMBER=true
SORM3_FIELD_CALLED_NUMBER=true
SORM3_FIELD_NAS_IPV4=true
SORM3_FIELD_NAS_IPV6=true
SORM3_FIELD_NAS_IP_PORT=true
SORM3_FIELD_IN_BYTES_COUNT=true
SORM3_FIELD_OUT_BYTES_COUNT=true
SORM3_FIELD_USER_PASSWORD=true
SORM3_FIELD_USER_EQ_MAC=true
SORM3_FIELD_USER_EQ_VPI=true
SORM3_FIELD_USER_EQ_VCI=true
SORM3_FIELD_APN=true
SORM3_FIELD_SGSN_IPV4=true
SORM3_FIELD_SGSN_IPV6=true
SORM3_FIELD_GGSN_IPV4=true
SORM3_FIELD_GGSN_IPV6=true
SORM3_FIELD_SERVICE_AREA_CODE=true
SORM3_FIELD_LAC_START=true
SORM3_FIELD_CELL_START=true
SORM3_FIELD_TA_START=true
SORM3_FIELD_WL_CELL_START=true
SORM3_FIELD_WL_MAC_START=true
SORM3_FIELD_LAC_END=true
SORM3_FIELD_CELL_END=true
SORM3_FIELD_TA_END=true
SORM3_FIELD_WL_CELL_END=true
SORM3_FIELD_WL_MAC_END=true
SORM3_FIELD_PHONE_CARD_NUMBER=true
SORM3_FIELD_IMSI=true
SORM3_FIELD_IMEI=true
SORM3_FIELD_ESN=true
SORM3_FIELD_POOL=true
SORM3_FIELD_L2_INTERFACE=false
В папке с docker-compose.yml также необходимо создать папку export. По умолчанию в эту папку складываются логи и выгрузки SORM2.
Путь до папки, либо способ выгрузки можно поменять через конфигурацию docker-compose.yml.
Возможные переменные окружения .env
Запуск сервиса
- REPLICATOR_PUBLIC_PORT - порт, на котором будет стартовать сервис внутри контейнера
- REPLICATOR_JAVA_INIT_HEAP - аргумент запуска JVM
-Xms
- REPLICATOR_JAVA_MAX_HEAP - аргумент запуска JVM
-Xmx
- REPLICATOR_ACCT_ADDRESS - адрес интерфейса сервера, на котором слушается входящий трафик аккаунтинга
- REPLICATOR_ACCT_PORT - порт сервера, на котором прослушивается входящий трафик аккаунтинга
- REPLICATOR_ACCT_RECEIVE_BUFFER_BYTE - размер буфера приема
- REPLICATOR_WEB_MONITORING_PORT - порт для работы технологической консоли и мониторинга
Логирование
- REPLICATOR_LOG_LEVEL - уровень Root логера
- REPLICATOR_CONSOLE_LOG_LEVEL - уровень логирования при выводе в консоль
- REPLICATOR_FILE_LOG_LEVEL - уровень логирования при выводе в файл
- REPLICATOR_GELF_HOST - хост подключения к Gelf
- REPLICATOR_GELF_PORT - порт подключения к Gelf
- REPLICATOR_GELF_LEVEL - уровень Gelf логера
Подключение к БД
- REPLICATOR_RADIUS_URL - хост подключения к БД MariaDB radius
- REPLICATOR_RADIUS_USER - имя пользователя для подключения к БД MariaDB radius
- REPLICATOR_RADIUS_PASSWORD - пароль пользователя для подключения к БД MariaDB radius
- REPLICATOR_RADIUS_MAX_POOL_SIZE - максимальное число коннектов к БД MariaDB radius
- REPLICATOR_SQL_EMS_URL - хост подключения к БД MariaDB eltex_ems
- REPLICATOR_SQL_EMS_USER - имя пользователя для подключения к БД MariaDB eltex_ems
- REPLICATOR_SQL_EMS_PASSWORD - пароль пользователя для подключения к БД MariaDB eltex_ems
- REPLICATOR_SQL_EMS_MAX_POOL_SIZE - максимальное число коннектов к БД MariaDB eltex_ems
- REPLICATOR_SQL_WIRELESS_URL - хост подключения к БД MariaDB wireless
- REPLICATOR_SQL_WIRELESS_USER - имя пользователя для подключения к БД MariaDB wireless
- REPLICATOR_SQL_WIRELESS_PASSWORD - пароль пользователя для подключения к БД MariaDB wireless
- REPLICATOR_SQL_WIRELESS_MAX_POOL_SIZE - максимальное число коннектов к БД MariaDB wireless
- REPLICATOR_SQL_PCRF_URL - хост подключения к БД MariaDB eltex_pcrf
- REPLICATOR_SQL_PCRF_USER - имя пользователя для подключения к БД MariaDB eltex_pcrf
- REPLICATOR_SQL_PCRF_PASSWORD - пароль пользователя для подключения к БД MariaDB eltex_pcrf
- REPLICATOR_SQL_PCRF_MAX_POOL_SIZE - максимальное число коннектов к БД MariaDB eltex_pcrf
- REPLICATOR_SQL_SORM2_URL - хост подключения к БД MariaDB eltex_sorm2
- REPLICATOR_SQL_SORM2_USER - имя пользователя для подключения к БД MariaDB eltex_sorm2
- REPLICATOR_SQL_SORM2_PASSWORD - пароль пользователя для подключения к БД MariaDB eltex_sorm2
- REPLICATOR_SQL_SORM2_MAX_POOL_SIZE - максимальное число коннектов к БД MariaDB eltex_sorm2
Конфигурация настроек кластеризации
- REPLICATOR_CLUSTER_ENABLED - включение кластеризации
- REPLICATOR_CLUSTER_EVENT_BUS_PORT - порт для обмена данными с нодами в кластере
- REPLICATOR_PUBLIC_ADDRESS - продолжительность блокировки после достижения максимального числа попыток входа
- REPLICATOR_PUBLIC_PORT - собственный адрес ноды в кластере
- REPLICATOR_TCP_IP_ENABLED - включение юникастового режима работы кластера (в докере поддержан только этот режим работы)
- REPLICATOR_TCP_IP_NODE_1 - адрес ноды 1 в кластере
- REPLICATOR_TCP_IP_NODE_2 - адрес ноды 2 в кластере
Конфигурация настроек перенаправления RADIUS-аккаунтинга на внешний сервер
- REPLICATOR_GLOBAL_CLIENTS_ENABLED - включает перенаправление аккаунтинга на внешний сервер
- REPLICATOR_GLOBAL_CLIENTS_CLIENTS_1_HOST - адрес внешнего сервера
- REPLICATOR_GLOBAL_CLIENTS_CLIENTS_1_PORT - порт внешнего сервера
- REPLICATOR_GLOBAL_CLIENTS_CLIENTS_1_SECRET - пароль radius
Конфигурация настроек выгрузки информации на внешний FTP-сервер
- REPLICATOR_SORM3_ENABLED - включает выгрузку информации на FTP-сервер
- REPLICATOR_SORM3_HOST - адрес FTP-сервера
- REPLICATOR_SORM3_PORT - порт FTP-сервера
- REPLICATOR_SORM3_PERIOD_S - интервал выгрузки информации
- REPLICATOR_SORM3_USER - логин для входа на FTP-сервер
- REPLICATOR_SORM3_PASS - пароль для входа на FTP-сервер
- REPLICATOR_SORM3_ACCT_DIR - директория для выгрузки информации
- REPLICATOR_SORM3_NODE_ID - идентификатор (IP адрес) хоста съемника, используется в формировании имени выгружаемого по ftp файла с данными.
Конфигурация настроек перенаправления RADIUS-аккаунтинга на региональный съемник
- REPLICATOR_SORM2_ENABLED - глобально включает возможность пернаправления аккаунтинга
- REPLICATOR_SORM2_FEDERATED - включает поиск съемников, которые были включены в "Личном кабинете" в разделе "Настройки" → "Дерево доменов" в колонке "СОРМ-2"
Конфигурация настроек обогащения RADIUS-аккаунтинга для DPI
- REPLICATOR_DPI_STEP_LOGIC_ENABLED - активирует обогащение трафика для DPI
- REPLICATOR_DPI_STEP_LOGIC_VERBOSE - определяет режим пересылки пакетов
Конфигурация настроек списка колонок выгружаемой на FTP-сервер информации
- SORM3_FIELD_<название колонки> - включает/отключает выгрузку информации указанной колонки (полный список возможных названий приведен выше в описании файла .env)
TZ - часовой пояс в формате Asia/Novosibirsk (список существующих можно посмотреть командой timedatectl list-timezones)
Файлы .env и docker-compose.yml должны находиться в одной папке. Контейнер запускается командой: