/etc/eltex-ngw/log4j2.xml
Содержит параметры логирования.
Блок кода |
---|
language | xml |
---|
theme | RDark |
---|
title | /etc/eltex-ngw/log4j2.xml |
---|
collapse | true |
---|
|
<?xml version="1.0" encoding="UTF-8"?>
<Configuration monitorInterval="600">
<Properties>
<Property name="baseDir">/var/log/eltex-ngw</Property>
<Property name="maxFileSize">20 MB</Property>
<Property name="accumulatedFileSize">100 GB</Property>
<Property name="lastModified">4d</Property>
<Property name="maxCount">10</Property>
<Property name="logPattern">%d{ISO8601} [%t] %-5p %logger{12} %C{1}.%M(line:%L). %m%n</Property>
<Property name="gelfLevel">OFF</Property>
<Property name="gelfHost">udp:lab3-test.eltex.loc</Property>
<Property name="gelfPort">12201</Property>
</Properties>
<Appenders>
<RollingFile name="RollingFile" filename="${baseDir}/notification-gateway.log"
filepattern="${baseDir}/notification-gateway-%i.log.gz">
<PatternLayout pattern="${logPattern}"/>
<Policies>
<SizeBasedTriggeringPolicy size="${maxFileSize}"/>
<OnStartupTriggeringPolicy/>
</Policies>
<!-- Ограничение на кол-во файлов. для боевой реализации - не более 20 штук. -->
<DefaultRolloverStrategy max="3">
<Delete basePath="${baseDir}" maxDepth="1">
<IfFileName glob="notification-gateway-*.log.gz">
<IfLastModified age="${lastModified}"/>
<IfAny>
<IfAccumulatedFileSize exceeds="${accumulatedFileSize}"/>
<IfAccumulatedFileCount exceeds="${maxCount}"/>
</IfAny>
</IfFileName>
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
<Gelf name="Gelf" host="${gelfHost}" port="${gelfPort}" version="1.1" facility="notification-gateway"
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{12}"/>
<Field name="location" pattern="%C{1}.%M(line:%L)"/>
</Gelf>
</Appenders>
<Loggers>
<Root level="ERROR">
<AppenderRef ref="RollingFile"/>
<AppenderRef ref="Gelf" level="${gelfLevel}"/>
</Root>
<Logger name="org.eclipse.jetty" level="WARN"/>
<Logger name="org.mongodb" level="ERROR"/>
<Logger name="org.jsmpp" level="ERROR"/>
<Logger name="org.springframework" level="ERROR"/>
<logger name="jndi" level="OFF"/>
<!--log4j configuration logger-->
<Logger name="EventLogger" additivity="false" level="ERROR">
<AppenderRef ref="console"/>
</Logger>
</Loggers>
</Configuration>
|
- Интервал автоматического перечитывания конфигурации логгера:
Без форматирования |
---|
<Configuration monitorInterval="600"> |
- Базовая директория хранения логов:
Без форматирования |
---|
<Property name="baseDir">/var/log/eltex-ngw</Property> |
- Максимально допустимый размер файла (при его превышении создается новый файл. а старый архивируется):
Без форматирования |
---|
<Property name="maxFileSize">20 MB</Property> |
- Суммарный размер логов (текущий файл + архивные). При его превышении наиболее старые файлы будут удаляться:
Без форматирования |
---|
<Property name="accumulatedFileSize">100 GB</Property> |
- Срок хранения логов, файлы модифицированные раннее этого срока будут удаляться:
Без форматирования |
---|
<Property name="lastModified">4d</Property> |
- Максимальное количество архивных файлов, при его превышении наиболее старые файлы будут перезаписываться:
Без форматирования |
---|
<Property name="maxCount">10</Property> |
- Блок настройки перенаправления логов в Graylog (уровень логирования, адрес, порт):
Без форматирования |
---|
<Property name="gelfLevel">OFF</Property>
<Property name="gelfHost">udp:lab3-test.eltex.loc</Property>
<Property name="gelfPort">12201</Property> |
Без форматирования |
---|
<Root level="ERROR"> |
Замечания по настройке взаимодействия с почтовым сервером
NGW обеспечивает взаимодействие с почтовым сервером по протоколу SMTP и используется для отправки уведомлений и отчетов на email. Для корректной работы требуется включить и настроить взаимодействие с почтовым сервером.
В файле /etc/eltex-ngw/application.conf, в разделе email указывается файл настроек взаимодействия с почтовым сервером:
Раскрыть |
---|
title | /etc/eltex-ngw/application.conf |
---|
|
Без форматирования |
---|
email {
// Outgoing (service to user) email config
outgoing.config = "email.conf" # выбор конфигурации для электронной почты
} |
|
Для настройки взаимодействия с почтовым сервером используется файл /etc/eltex-ngw/gateway.d/email.conf:
Раскрыть |
---|
title | /etc/eltex-ngw/gateway.d/email.conf |
---|
|
Без форматирования |
---|
connection {
login = "example@example.com" # Логин
password = "" # Пароль
host = example.com # Адрес почтового сервера
port = 587 # Порт почтового сервера (по умолчанию для нешифрованного соединения 25, для шифрованного 587)
sendpartial = true
starttls = false # Использовать шифрование: false - "Нет", true - "Да"
tlsVersion = "TLSv1.2" # Протокол шифрования
timeout = 5s
pool {
min = 1
max = 20
waitTimeout = 10s
}
} |
|
Примечание |
---|
|
Возможность указать версию протокола шифрования "tlsVersion" реализована с версии 1.21 SoftWLC. Для возможности использования "TLSv1.0" или "TLSv1.1" требуется установить Java 8 версии 291 или ранее. |
Докеризация сервиса
Сервис может быть запущен в docker-контейнере. Для этого необходимо подготовить файл docker-compose.yml
Блок кода |
---|
language | xml |
---|
theme | RDark |
---|
title | docker-compose.yml |
---|
|
version: "2.4"
volumes:
softwlc_logs:
driver: local
services:
ngw:
container_name: ngw
image: hub.eltex-co.ru/softwlc/eltex-ngw:1.21-<tag>
network_mode: host
ports:
- 1814:1814
- 8040:8040
volumes:
- "/etc/eltex-ngw:/etc/eltex-ngw" |
Подсказка |
---|
Вместо <tag> необходимо указать актуальную версию, которую можно посмотреть по ссылке. |
На данный момент нельзя конфигурировать настройки смс-шлюза через переменные окружения, то для применения необходимых настроек нужно сделать маппинг конфигурационных файлов ранее установленной deb-версии.
Некоторые параметры можно сконфигурировать через переменные окружения представленные ниже. Для этого необходимо создать файл .env и разместить его рядом с docker-compose.yml, указав в последнем необходимые переменные. В блоке "environment" необходимо указывать названия переменных в соответствии с названием переменных в конфигурационных файлах. В случае, если переменные не будут заданы или названия переменных будут заданы некорректно, то применятся значения по умолчанию.
Блок кода |
---|
language | xml |
---|
theme | RDark |
---|
title | .env |
---|
|
NGW_PORT=8040
NGW_SMS_INCOMING_CONF=smsc.conf
NGW_SMS_OUTGOING_CONF=smsc.conf
NGW_CALL_INCOMING_CONF=
NGW_CALL_OUTGOING_CONF=
NGW_EMAIL_OUTGOING_CONF=
NGW_DB_HOST=<IP-address>
NGW_DB_PORT=3306
NGW_DB_NAME=eltex_ngw
NGW_DB_USER=javauser
NGW_DB_PASSWORD=javapassword
NGW_DB_POOL_CONNECTION_TIMEOUT=10s
NGW_DB_POOL_MIN_IDLE=1
NGW_DB_POOL_SIZE=10
NGW_DB_CLEANUP_EVENTS=365d
NGW_DB_CLEANUP_MESSAGES=365d
NGW_DB_CLEANUP_EMAILS=365d
NGW_DB_CLEANUP_FILES=7d
NGW_DB_CLEANUP_LIMIT=0
NGW_DB_CLEANUP_CRON=-
|
Возможные переменные окружения
Запуск сервиса- NGW_PORT - Grpc порт, который будет слушать сервис.
- JAVA_INIT_HEAP - Xms JVM опция.
- JAVA_MAX_HEAP - Xmx JVM опция.
- JAVA_OPTS - JVM опции (может переопределить все остальные параметры по умолчанию).
Настройки SMS- NGW_SMS_INCOMING_CONF - конфигурационный файл для идентификации пользователя по входящему SMS (от пользователя).
- NGW_SMS_OUTGOING_CONF - конфигурационный файл для идентификации пользователя по исходящему SMS (пользователю).
- sms.pool.waitTimeout - таймаут получения соединения из пула.
- sms.pool.min - минимальное число idle соединений.
- sms.pool.max - размер пула соединений.
Настройки звонков
- NGW_CALL_INCOMING_CONF - конфигурационный файл для идентификации пользователя по входящему звонку (от пользователя).
- NGW_CALL_OUTGOING_CONF - конфигурационный файл для идентификации пользователя по исходящему звонку (пользователю).
- call.pool.waitTimeout - таймаут получения соединения из пула.
- call.pool.min - минимальное число idle соединений.
- call.pool.max - размер пула соединений.
Настройки email
- NGW_EMAIL_OUTGOING_CONF - конфигурационный файл для исходящей почты.
- email.pool.waitTimeout - таймаут получения соединения из пула.
- email.pool.min - минимальное число idle соединений.
- email.pool.max - размер пула соединений.
Настройки взаимодействия с БД
- NGW_DB_HOST - хост подключения к БД.
- NGW_DB_PORT - порт подключения к БД.
- NGW_DB_NAME - имя БД.
- NGW_DB_USER - имя пользователя БД.
- NGW_DB_PASSWORD - пароль пользователя БД.
- NGW_DB_POOL_CONNECTION_TIMEOUT - таймаут получения соединения из пула.
- NGW_DB_POOL_MIN_IDLE - минимальное число idle соединений.
- NGW_DB_POOL_SIZE - размер пула соединений с БД.
- NGW_DB_CLEANUP_EVENTS - время жизни событий в БД.
- NGW_DB_CLEANUP_MESSAGES - время жизни сообщений в БД.
- NGW_DB_CLEANUP_EMAILS - время жизни email в БД.
- NGW_DB_CLEANUP_FILES - время жизни файлов, отправленных по email, в БД.
- NGW_DB_CLEANUP_LIMIT - лимит удалений за раз.
- NGW_DB_CLEANUP_CRON - расписание очистки cron.