Описание
Сервис обеспечивает журналирование работы с портальными учётными записями (на данный момент используется только для журналирования работы сервиса eltex-mercury).
Межсервисный обмен реализован на базе gRPC API.
Logging-service взаимодействует с базой ЛК wifi-customer-cab и фиксирует получаемые данные в коллекцию eventlog (в GUI ЛК это таблица "Журнал событий" - "Журнал модификаций учетных записей").
Управление сервисом
Установка
apt-get install eltex-logging-service
Способы запуска/остановки
Действие | Команда | Ответ |
---|---|---|
Проверка состояния | service eltex-logging-service status | Сервис запущен Active: active (running) Cервис не запущен Active: failed |
Запуск сервиса | service eltex-logging-service start | Сервис успешно запущен Active: active (running) |
Остановка сервиса | service eltex-logging-service stop | Сервис успешно остановлен Active: failed |
Перезапуск сервиса | service eltex-logging-service restart | Сервис успешно перезапущен Active: active (running) |
Конфигурация
/etc/eltex-logging-service/application.conf
Основной конфигурационный файл.
- Порт, на котором работает сервис:
server { port = 9099 }
- Активация записи событий в коллекцию eventlog:
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" #пароль пользователя БД }
/etc/eltex-logging-service/log4j2.xml
Файл настройки логирования сервиса.
- Интервал автоматического перечитывания конфигурации логгера:
<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
Файл, содержит параметры инициализации сервиса.
- Количество памяти, выделяемое приложению при старте сервиса:
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_USERNAME - имя пользователя для подключения к БД;
- LOGGING_SERVICE_DB_PASSWORD - пароль для подключения к БД;
LOGGING_SERVICE_DB_POOL_SIZE - количество соединений с БД;
LOGGING_SERVICE_DB_TIMEOUT - таймаут соединения с БД;
Настройка перенаправления логов на сервер Graylog
GELF_LEVEL - уровень логов, перенаправляемых в Graylog;
GELF_HOST - адрес хоста Graylog;
GELF_PORT - порт хоста Graylog.
Настройка часового пояса
- TZ - часовой пояс в формате Asia/Novosibirsk (список существующих можно посмотреть командой timedatectl list-timezones).
Файлы .env и docker-compose.yml должны находиться в одной папке. Контейнер запускается командой:
docker-compose up -d