Конфигурация
/etc/default/eltex-apb
Содержит параметры, необходимые для инициализации сервиса.
Блок кода |
---|
language | js |
---|
theme | RDark |
---|
title | /etc/default/eltex-apb |
---|
collapse | true |
---|
|
# Port for use by Access Point Binder service
PORT=8090
# Number of connection requests that can be queued
ACCEPT_QUEUE_SIZE=0
# Max text message buffer size, in bytes
MAX_TEXT_MESSAGE_BUFFER_SIZE=524288
# Path to Java executable
JAVA=/usr/bin/java
# Memory
JAVA_INIT_HEAP=128m
JAVA_MAX_HEAP=2048m
# To enable remote JMX monitoring uncomment the following line
#JMX_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8091 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.local.only=false -Djava.rmi.server.hostname=127.0.0.1" |
Без форматирования |
---|
PORT=8090 |
- Длина очереди запросов. При заполнении очереди, новые запросы будут игнорироваться сервером, пока старые запросы не будут обработаны (по дефолту очередь не будет накапливаться):
Без форматирования |
---|
ACCEPT_QUEUE_SIZE=0 |
- Максимальный размер буфера сообщения, в байтах:
Без форматирования |
---|
MAX_TEXT_MESSAGE_BUFFER_SIZE=262144 |
Настройка памяти, выделяемой на работу сервиса (память выделяется на сам процесс, а не на кэш, прописанный в /etc/eltex-apb/ehcache.xml):
Без форматирования |
---|
JAVA_INIT_HEAP=128m
JAVA_MAX_HEAP=2048m |
/etc/eltex-apb/apb.properties
Содержит основные настройки сервиса.
Блок кода |
---|
language | js |
---|
theme | RDark |
---|
title | /etc/eltex-apb/apb.properties |
---|
collapse | true |
---|
|
mercury.host=localhost
mercury.port=6565
mercury.pool.size=100
# Config filePath to cache
cache.config=/etc/eltex-apb/ehcache.xml
# list of permitted files to
hosts.file=/etc/eltex-apb/hosts.json
# Timeout waiting for subscribe-request after connecting the access point to the server, in seconds
subscribe.idle.timeout=60
# Timeout during that the session will stay opened without receiving any message
message.idle.timeout=90
# Interval of ping to be sent to the websocket session
ping.idle.timeout=30
# Maximum count of outgoing messages to queue for each session
session.outgoingQueue=100
nbi.client.login=admin
nbi.client.password=password
|
- Настройки для подключения к сервису Mercury:
Без форматирования |
---|
mercury.host=localhost
mercury.port=6565
mercury.pool.size=100
|
- Расположение необходимых файлов:
Без форматирования |
---|
# Config filePath to cache
cache.config=/etc/eltex-apb/ehcache.xml
# list of permitted files to
hosts.file=/etc/eltex-apb/hosts.json
|
- Время ожидания запроса подписки после подключения точки доступа к серверу, в секундах:
Без форматирования |
---|
# Timeout waiting for subscribe-request after connecting the access point to the server, in seconds
subscribe.idle.timeout=60 |
- Время, в течение которого сессия остается открытой без отправки сообщений:
Без форматирования |
---|
# Timeout during that the session will stay opened without receiving any message
message.idle.timeout=9 |
- Интервал отправки пингов:
Без форматирования |
---|
# Interval of ping to be sent to the websocket session
ping.idle.timeout=30 |
- Максимальное количество исходящих сообщений для очереди на каждый сеанс:
Без форматирования |
---|
# Maximum count of outgoing messages to queue for each session
session.outgoingQueue=100 |
- Данные для учетной записи NBI:
Без форматирования |
---|
nbi.client.login=admin
nbi.client.password=password |
/etc/eltex-apb/ehcache.xml
Содержит системные настройки хранения данных о Wi-Fi-пользователях, подключенных на портале. При необходимости название и расположение файла может быть изменено в /etc/eltex-apb/apb.properties.
Блок кода |
---|
language | xml |
---|
theme | RDark |
---|
title | /etc/eltex-apb/ehcache.xml |
---|
collapse | true |
---|
|
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://www.ehcache.org/ehcache.xsd" updateCheck="false" monitoring="autodetect"
dynamicConfig="true">
<!--cacheManagerPeerProviderFactory
class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
properties="peerDiscovery=manual,rmiUrls=//192.168.26.179:40001/users"/-->
<!--cacheManagerPeerListenerFactory
class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"
properties="hostName=192.168.26.205, port=40001, socketTimeoutMillis=2000"/-->
<defaultCache
maxEntriesLocalHeap="10000"
eternal="false"
timeToLiveSeconds="8600"
timeToIdleSeconds="120"
maxEntriesLocalDisk="10000000"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU">
<pinning store="inCache" />
<persistence strategy="localTempSwap"/>
</defaultCache>
<cache name="users"
maxBytesLocalHeap="1G"
eternal="false"
timeToLiveSeconds="43200"
memoryStoreEvictionPolicy="LRU">
<pinning store="inCache" />
<persistence strategy="none"/>
<searchable keys="true" values="false" allowDynamicIndexing="false">
<searchAttribute name="mobilityDomainBean" class="org.eltex.softwlc.apb.cache.MobilityDomainAttributeExtractor"/>
<searchAttribute name="account" class="org.eltex.softwlc.apb.cache.AccountAttributeExtractor"/>
</searchable>
<!--cacheEventListenerFactory
class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"
properties="replicateAsynchronously=true, replicatePuts=true, replicateUpdates=true,
replicateUpdatesViaCopy=false, replicateRemovals=true "/-->
</cache>
<cache name="hosts" maxBytesLocalHeap="128M" eternal="true">
<persistence strategy="none"/>
</cache>
</ehcache> |
- Количество оперативной памяти, выделяемое для хранения таблицы авторизованных пользователей настраивается параметром "maxBytesLocalHeap" в разделе:
Без форматирования |
---|
<cache name="users"
maxBytesLocalHeap="200M"
eternal="false"
timeToLiveSeconds="43200"
memoryStoreEvictionPolicy="LRU">
. . .
</cache> |
- Количество оперативной памяти, выделяемое для хранения таблицы с белыми списками настраивается параметром "maxBytesLocalHeap" в разделе:
Без форматирования |
---|
<cache name="hosts" maxBytesLocalHeap="128M" eternal="true">
<persistence strategy="none"/>
</cache> |
/etc/eltex-apb/hosts.json
Cодержит набор списков белых адресов. В данном конфигурационном файле выполняется настройка белых списков (списки IP-адресов, на который можно перейти до авторизации на портале). При необходимости название и расположение файла может быть изменено в /etc/eltex-apb/apb.properties. По умолчанию данный список является пустым.
Пример заполнения файла:
Без форматирования |
---|
[
{
"mobility-domain-list": [
{
"mobility-domain": "nsk.ru",
"radius-domain": "root",
"ssid": "Eltex-Local"
}
],
"permitted-ip-list": [
"eltex.nsk.ru",
"eltex.org"
]
},
{
"permitted-ip-list": [
"esia-portal1.test.gosuslugi.ru",
"esia.gosuslugi.ru",
]
}
] |
- Белый список, общий для всех подключенных точек задается в формате:
Без форматирования |
---|
[{
"permitted-ip-list": [
"esia-portal1.test.gosuslugi.ru",
"esia.gosuslugi.ru",
]
}] |
- Белый список, который назначается на точки с определенным SSID и доменом, записывается в следующем формате:
Без форматирования |
---|
[{
"mobility-domain-list": [
{
"mobility-domain": "nsk.ru",
"radius-domain": "root",
"ssid": "Eltex-Local"
}
],
"permitted-ip-list": [
"eltex.nsk.ru",
"eltex.org"
]
}] |
Запись в приведенном выше конфигурационном файле говорит о том, что если на сервис поступит информация о пользователе, чьим mobility-domain является nsk.ru, radius-domain является root, а ssid – Eltex-Local, то данному пользователю до авторизации на портале помимо адресов из общего белого списка, будут доступны адреса eltex.nsk.ru и eltex.org. Другими словами, адреса, находящиеся в «permitted-ip-list», будут доступны пользователю, в случае полного совпадения всех ключей, описанных в рамках одного «mobility-domain-list».
Если параметры пользователя удовлетворяют критериям нескольких правил, ему будут разрешены для доступа IP-адреса из всех таких правил.
Примечание |
---|
В параметр "mobility-domain" вносится значение параметра "ap-location" точки доступа, который находится в разделе сетевых настроек. |
/etc/eltex-apb/log4j2.xml
Содержит настройки логирования.
Блок кода |
---|
language | xml |
---|
theme | RDark |
---|
title | /etc/eltex-apb/log4j2.xml |
---|
collapse | true |
---|
|
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="OFF" monitorInterval="10">
<Properties>
<Property name="rootLevel">${env:LOG_LEVEL:-INFO}</Property>
<Property name="baseDir">/var/log/eltex-apb</Property>
<Property name="maxFileSize">20 MB</Property>
<Property name="accumulatedFileSize">100 MB</Property>
<Property name="lastModified">4d</Property>
<Property name="maxCount">7</Property>
<Property name="logPattern">%d{ISO8601} [%t] %-5p %logger{1} %C{1}.%M(line:%L). %m%n"</Property>
<Property name="dateSuffix">%d{yyyyMMdd}</Property>
<Property name="gelfLevel">${env:GELF_LEVEL:-OFF}</Property>
<Property name="gelfHost">${env:GELF_HOST:-udp:lab3-test.eltex.loc}</Property>
<Property name="gelfPort">${env:GELF_PORT:-12201}</Property>
</Properties>
<Appenders>
<Console name="STDERR" target="System.err">
<PatternLayout pattern="${logPattern}"/>
</Console>
<RollingFile name="RollingFile"
filename="${baseDir}/apb.log"
filepattern="${baseDir}/log/apb-${dateSuffix}-%i.log.gz">
<PatternLayout pattern="${logPattern}"/>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
<SizeBasedTriggeringPolicy size="${maxFileSize}"/>
<OnStartupTriggeringPolicy />
</Policies>
<DefaultRolloverStrategy max="${maxCount}">
<Delete basePath="${baseDir}" maxDepth="1">
<IfFileName glob="*/apb-*.log.gz">
<IfAny>
<IfAccumulatedFileSize exceeds="${accumulatedFileSize}"/>
<IfLastModified age="${lastModified}"/>
</IfAny>
</IfFileName>
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
<RollingFile name="CacheAppender"
filename="${baseDir}/apb-cache.log"
filepattern="${baseDir}/log/apb-cache-${dateSuffix}-%i.log.gz">
<PatternLayout pattern="${logPattern}"/>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
<SizeBasedTriggeringPolicy size="${maxFileSize}"/>
<OnStartupTriggeringPolicy />
</Policies>
<DefaultRolloverStrategy max="${maxCount}">
<Delete basePath="${baseDir}" maxDepth="1">
<IfFileName glob="*/apb-cache-*.log">
<IfAny>
<IfAccumulatedFileSize exceeds="${accumulatedFileSize}"/>
<IfLastModified age="${lastModified}"/>
</IfAny>
</IfFileName>
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
<Gelf name="Gelf" host="${gelfHost}" port="${gelfPort}" version="1.1" facility="eltex-apb"
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>
<Root level="${rootLevel}">
<AppenderRef ref="RollingFile"/>
<AppenderRef ref="STDERR" level="OFF"/>
<AppenderRef ref="Gelf" level="${gelfLevel}"/>
</Root>
<Logger name="org.springframework" level="ERROR"/>
<Logger name="org.apache" level="ERROR"/>
<Logger name="org.quartz" level="ERROR"/>
<Logger name="io.netty" level="ERROR"/>
<Logger name="io.grpc" level="ERROR"/>
<Logger name="net.sf.ehcache" additivity="false">
<AppenderRef ref="CacheAppender" level="DEBUG"/>
<AppenderRef ref="RollingFile" level="ERROR"/>
</Logger>
</Loggers>
</Configuration> |
- Автоматическое перечитывание конфигурации логгера:
Без форматирования |
---|
<Configuration status="OFF" monitorInterval="10"> |
Без форматирования |
---|
<Property name="rootLevel">${env:LOG_LEVEL:-INFO}</Property> |
- Базовая директория хранения логов:
Без форматирования |
---|
<Property name="baseDir">/var/log/eltex-apb</Property> |
- Максимально допустимый размер файла (при его превышении создается новый файл. а старый архивируется):
Без форматирования |
---|
<Property name="maxFileSize">20 MB</Property> |
- Суммарный размер логов (текущий файл + архивные). При его превышении наиболее старые файлы будут удаляться:
Без форматирования |
---|
<Property name="accumulatedFileSize">100 MB</Property> |
- Срок хранения логов, файлы модифицированные раннее этого срока будут удаляться:
Без форматирования |
---|
<Property name="lastModified">4d</Property> |
- Максимальное количество архивных файлов, при его превышении наиболее старые файлы будут перезаписываться:
Без форматирования |
---|
<Property name="maxCount">7</Property> |
- Блок настройки перенаправления логов в Graylog (уровень логирования, адрес, порт):
Без форматирования |
---|
<Property name="gelfLevel">${env:GELF_LEVEL:-OFF}</Property>
<Property name="gelfHost">${env:GELF_HOST:-udp:lab3-test.eltex.loc}</Property>
<Property name="gelfPort">${env:GELF_PORT:-12201}</Property> |