Сервис обеспечивает журналирование работы с портальными учётными записями (на данный момент используется только для журналирования работы сервиса 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 {
jdbcUrl = "jdbc:mysql://localhost:3306/eltex_wifi_customer_cab"
username = "javauser"
password = "javapassword"
}
|
server {
port = 9099
} |
eventlog {
enabled = true
} |
sorm {
enabled = false Активация
dir = /var/log/eltex-logging-service/sorm3/ Путь к папке событий
} |
Настройка доступа к БД ЛК:
database {
jdbcUrl = "jdbc:mysql://localhost:3306/eltex_wifi_customer_cab" #адрес БД
username = "javauser" #имя пользователя БД
password = "javapassword" #пароль пользователя БД
} |
Файл настройки логирования сервиса.
<?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="consoleLevel">${env:CONSOLE_LEVEL:-OFF}</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. В блоке "environment" необходимо указывать названия переменных в соответствии с названием переменных в конфигурационных файлах. В случае, если переменные не будут заданы или названия переменных будут заданы некорректно, то применятся значения по умолчанию.
version: "3"
services:
eltex-logging-service:
container_name: eltex-logging-service
image: ${ELTEX_HUB}/eltex-logging-service:${SWLC_VERSION}
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.jdbcUrl=${LOGGING_SERVICE_DB_URI}
- database.poolSize=${LOGGING_SERVICE_DB_POOL_SIZE}
- database.username=${LOGGING_SERVICE_DB_USERNAME}
- database.password=${LOGGING_SERVICE_DB_PASSWORD}
- database.timeout=${LOGGING_SERVICE_DB_TIMEOUT}
- LOGGING_SERVICE_CONSOLE_LEVEL=${LOGGING_SERVICE_CONSOLE_LEVEL}
- LOGGING_SERVICE_LOG_LEVEL=${LOGGING_SERVICE_LOG_LEVEL}
- GELF_LEVEL=${GELF_LEVEL}
- GELF_HOST=${GELF_HOST}
- GELF_PORT=${GELF_PORT}
- TZ=${TZ}
|
ELTEX_HUB=hub.eltex-co.ru/softwlc SWLC_VERSION=1.30-<tag> LOGGING_SERVICE_PORT=9099 #Настройка лога событий LOGGING_SERVICE_EVENTLOG=true LOGGING_SERVICE_LOG_LEVEL=INFO LOGGING_SERVICE_CONSOLE_LEVEL=INFO #Настройка SORM3 LOGGING_SERVICE_SORM=false LOGGING_SERVICE_SORM_DIR=/var/log/eltex-logging-service/sorm3/ #Настройка взаимодействия с БД LOGGING_SERVICE_DB_URI=jdbc:mysql://<ip mysql>:3306/eltex_wifi_customer_cab LOGGING_SERVICE_DB_USERNAME=javauser LOGGING_SERVICE_DB_PASSWORD=javapassword LOGGING_SERVICE_DB_POOL_SIZE=5 LOGGING_SERVICE_DB_TIMEOUT=5s #Настройка перенаправления логов на сервер Graylog GELF_LEVEL=OFF GELF_HOST=udp:<ip_graylog_server> GELF_PORT=12201 #Настройка часового пояса TZ=Asia/Novosibirsk |
Вместо <tag> необходимо указать актуальную версию, которую можно посмотреть по ссылке. Вместо <ip mysql> необходимо указать ip-адрес сервера MariaDB. Вместо <ip_graylog_server> необходимо указать ip-адрес сервера Graylog. |
LOGGING_SERVICE_PORT - порт, который будет слушать сервис;
ELTEX_HUB - URL репозитория Элтекс;
SWLC_VERSION - версия образа;
Настройка лога событий:
LOGGING_SERVICE_EVENTLOG - включить поддержку лога событий;
LOGGING_SERVICE_LOG_LEVEL - уровень логгирования сервиса;
LOGGING_SERVICE_CONSOLE_LOG_LEVEL - уровень логгирования сервиса в консоль;
Настройка SORM3:
LOGGING_SERVICE_SORM - включить поддержку sorm3;
LOGGING_SERVICE_SORM_DIR - директория sorm3;
Настройки взаимодействия с БД:
LOGGING_SERVICE_DB_URI - URI БД;
LOGGING_SERVICE_DB_POOL_SIZE - количество соединений с БД;
LOGGING_SERVICE_DB_TIMEOUT - таймаут соединения с БД;
Настройка перенаправления логов на сервер Graylog
GELF_LEVEL - уровень логов, перенаправляемых в Graylog;
GELF_HOST - адрес хоста Graylog;
GELF_PORT - порт хоста Graylog.
Настройка часового пояса
Файлы .env и docker-compose.yml должны находиться в одной папке. Контейнер запускается командой:
docker-compose up -d |