...
Оглавление |
---|
Описание
...
Сервис обеспечивает журналирование работы с портальными учётными записями (на данный момент используется только для журналирования работы сервиса eltex-mercury).
Межсервисный
...
обмен
...
реализован
...
на
...
базе
...
gRPC
...
API.
Logging-service
...
взаимодействует
...
с
...
базой
...
ЛК
...
wifi-customer-cab
...
и
...
фиксирует получаемые
...
данные
...
в
...
коллекцию
...
eventlog
...
(в
...
GUI
...
ЛК
...
это
...
таблица
...
"Журнал
...
событий
...
" -
...
"Журнал
...
модификаций
...
учетных
...
записей").
Конфигурационные файлы сервиса:
Управление сервисом
...
Установка
Блок кода | ||||
---|---|---|---|---|
| ||||
apt-get install eltex-logging-service |
Способы запуска/остановки
Действие | Команда | Ответ | ||||
---|---|---|---|---|---|---|
Проверка состояния | service eltex-logging-service status | Сервис запущен
Cервис не запущен
| ||||
Запуск сервиса | service eltex-logging-service start | Сервис успешно запущен
| ||||
Остановка сервиса | service eltex-logging-service stop | Сервис успешно остановлен
| ||||
Перезапуск сервиса | service eltex-logging-service restart | Сервис успешно перезапущен
|
Конфигурация
...
/etc/eltex-logging-service/application.conf
Основной конфигурационный файл.
Блок кода | ||||
---|---|---|---|---|
|
...
| ||||
server { port = 9099 } eventlog { |
...
enabled = |
...
true } |
...
sorm |
...
{ |
...
|
...
|
...
enabled |
...
= |
...
false dir = /var/log/eltex-logging-service/sorm3/ } database { |
...
uri = |
...
"mongodb://localhost:27017/wifi-customer-cab"
poolSize = 5
timeout = 5s
}
|
- Порт, на котором работает сервис:
Блок кода | ||
---|---|---|
| ||
server {
port = 9099
} |
- Активация записи событий в коллекцию eventlog:
Блок кода | ||
---|---|---|
| ||
eventlog {
enabled = true
} |
- Активация отправки данных в СОРМ:
Блок кода | ||
---|---|---|
| ||
sorm { enabled = false Активация dir = /var/log/eltex-logging-service/sorm3/ |
...
|
...
|
...
|
...
Путь к |
...
папке событий
} |
Настройка доступа к БД ЛК:
Блок кода | ||
---|---|---|
| ||
database { uri = "mongodb://localhost:27017/wifi-customer-cab" Адрес БД poolSize = 5 Количество возможных подключений timeout = 5s Время ожидания ответа от БД } |
/etc/eltex-logging-service/log4j2.xml
Файл настройки логирования сервиса.
Блок кода | ||||
---|---|---|---|---|
| ||||
<?xml version="1.0" encoding="UTF-8"?> <Configuration monitorInterval="600"> <Properties> <Property name="rootLevel">${env:LOG_LEVEL:-ERROR}</Property> <Property name="baseDir">/var/log/eltex-logging-service</Property> <Property name="maxFileSize">20 MB</Property> <Property name="accumulatedFileSize">10 GB</Property> <Property name="lastModified">4d</Property> <Property name="maxCount">20</Property> <Property name="logPattern">%d{ISO8601} [%t] %-5p %logger{12} %C{1}.%M(line:%L). %m%n</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="Console"> <PatternLayout pattern="${logPattern}" /> </Console> <RollingFile name="RollingFile" fileName="${baseDir}/logging-service.log" filePattern="${baseDir}/log/logging-service-%i.log.gz"> <PatternLayout pattern="${logPattern}" /> <Policies> <SizeBasedTriggeringPolicy size="${maxFileSize}" /> </Policies> <DefaultRolloverStrategy max="${maxCount}"> <Delete basePath="${baseDir}" maxDepth="3"> <IfFileName glob="*/logging-service-*.log.gz"> <IfAny> <IfAccumulatedFileSize exceeds="${accumulatedFileSize}" /> <IfLastModified age="${lastModified}" /> </IfAny> </IfFileName> </Delete> </DefaultRolloverStrategy> </RollingFile> <Gelf name="Gelf" host="${gelfHost}" port="${gelfPort}" version="1.1" facility="eltex-logging-service" 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="${rootLevel}"> <AppenderRef ref="RollingFile" /> </Root> <Logger name="org.springframework" level="ERROR" /> <Logger name="org.hibernate" level="ERROR" /> <Logger name="org.mongodb" level="ERROR" /> <Logger name="io.netty" level="ERROR" /> <Logger name="io.grpc" level="ERROR" /> </Loggers> </Configuration> |
- Интервал автоматического перечитывания конфигурации логгера:
Без форматирования |
---|
<Configuration monitorInterval="600"> |
- Базовая директория хранения логов:
Без форматирования |
---|
<Property name="baseDir">/var/log/eltex-logging-service</Property> |
- Максимально допустимый размер файла (при его превышении создается новый файл, а старый архивируется):
Без форматирования |
---|
<Property name="maxFileSize">20 MB</Property> |
- Суммарный размер логов (текущий файл + архивные). При его превышении наиболее старые файлы будут удаляться:
Без форматирования |
---|
<Property name="accumulatedFileSize">10 GB</Property> |
- Срок хранения логов, файлы модифицированные раннее этого срока будут удаляться:
Без форматирования |
---|
<Property name="lastModified">4d</Property> |
- Максимальное количество архивных файлов, при его превышении наиболее старые файлы будут перезаписываться:
Без форматирования |
---|
<Property name="maxCount">20</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> |
- Уровень логирования:
Без форматирования |
---|
<Root level="${rootLevel}"> |
/etc/default/eltex-logging-service
Файл, содержит параметры инициализации сервиса.
Блок кода | |
---|---|
|
...
|
...
| ||||
# Initial size of Java heap
JAVA_INIT_HEAP=4m
# Maximum size of Java heap
JAVA_MAX_HEAP=32m
# Additional arguments to pass to java
JAVA_OPTS="-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/eltex-logging-service" |
...
- Количество памяти, выделяемое приложению при старте сервиса:
Блок кода |
---|
JAVA_INIT_HEAP=4m |
- Максимальное количество памяти, которое может арендовать сервис:
Блок кода |
---|
JAVA_MAX_HEAP=32m |
- Дополнительный параметры запуска:
Блок кода |
---|
JAVA_OPTS="-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/eltex-logging-service" |
Докеризация сервиса
...
Сервис может быть запущен в docker-контейнере. Для этого необходимо подготовить файл с переменными окружения .env и docker-compose.yml
...
Описание переменных окружения
Запуск сервиса
LOGGING_SERVICE_PORT - порт, который будет слушать сервис.
JAVA_INIT_HEAP - Xms JVM опция.
JAVA_MAX_HEAP - Xmx JVM опция.
JAVA_OPTS – другие аргументы запуска JVM (может перезаписать любые другие аргументы).
Настройка лога событий
LOGGING_SERVICE_EVENTLOG - включить поддержку лога событий.
Настройка SORM3
LOGGING_SERVICE_SORM - включить поддержку sorm3.
LOGGING_SERVICE_SORM_DIR - директория sorm3.
Настройки взаимодействия с БД
LOGGING_SERVICE_DB_URI - URI БД.
LOGGING_SERVICE_DB_POOL_SIZE - количество соединений с БД.
LOGGING_SERVICE_DB_TIMEOUT - таймаут соединения с БД.