Сервис обеспечивает журналирование работы с портальными учётными записями (на данный момент используется только для журналирования работы сервиса 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 | Сервис успешно перезапущен
|
Основной конфигурационный файл.
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 { enabled = true } |
sorm { enabled = false Активация dir = /var/log/eltex-logging-service/sorm3/ Путь к папке событий } |
Настройка доступа к БД ЛК:
database { uri = "mongodb://localhost:27017/wifi-customer-cab" Адрес БД poolSize = 5 Количество возможных подключений timeout = 5s Время ожидания ответа от БД } |
Файл настройки логирования сервиса.
<?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> |
<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}"> |
Файл, содержит параметры инициализации сервиса.
# 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
version: "3" services: eltex-logging-service: container_name: eltex-logging-service image: hub.eltex-co.ru/softwlc/eltex-logging-service:1.19-<tag> network_mode: host ports: - 9099:${LOGGING_SERVICE_PORT} environment: - server.port=${LOGGING_SERVICE_PORT} - eventlog.enabled=${LOGGING_SERVICE_EVENTLOG} - sorm.enabled=${LOGGING_SERVICE_SORM} - sorm.dir=${LOGGING_SERVICE_SORM_DIR} - database.uri=${LOGGING_SERVICE_DB_URI} - database.poolSize=${LOGGING_SERVICE_DB_POOL_SIZE} - database.timeout=${LOGGING_SERVICE_DB_TIMEOUT} volumes: - /etc/eltex-logging-service/:/etc/eltex-logging-service/ |
Вместо <tag> необходимо указать актуальную версию, которую можно посмотреть по ссылке. |
LOGGING_SERVICE_PORT=9099 LOGGING_SERVICE_EVENTLOG=true LOGGING_SERVICE_SORM=false LOGGING_SERVICE_SORM_DIR=/var/log/eltex-logging-service/sorm3/ LOGGING_SERVICE_DB_URI=mongodb://localhost:27017/wifi-customer-cab LOGGING_SERVICE_DB_POOL_SIZE=5 LOGGING_SERVICE_DB_TIMEOUT=5s |
Запуск сервиса:
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 - таймаут соединения с БД