Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

Описание


Сервис eltex-jobs выполняет формирование задачи с необходимыми параметрами и отправку отчета пользователю по команде от сервиса bruce. Параметры задачи хранятся в базе данных mongo. 

Для корректной работы сервиса необходим доступ до сервиса eltex-ngw с настроенным email-шлюзом.

Установка


Сервис устанавливается с помощью пакетного менеджера командой

apt install eltex-jobs

Настройка


Конфигурационный файл для настройки доступен по пути /etc/eltex-jobs/application.properties

# порт используемый сервисом
server.port=9696
spring.batch.job.enabled=false

spring.datasource.jdbcUrl=jdbc:h2:mem:testdb;DB_CLOSE_ON_EXIT=FALSE
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.datasource.maximum-pool-size=200
spring.h2.console.enabled=true
# адрес базы данных ems и имя драйвера
spring.emsdatasource.jdbcUrl=jdbc:mysql://localhost/eltex_ems?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000
spring.emsdatasource.driverClassName=com.mysql.cj.jdbc.Driver
# логин для подключения к бд ems
spring.emsdatasource.username=javauser
# пароль для подключения к бд ems
spring.emsdatasource.password=javapassword
# ConnectionTimeout property controls the maximum number of milliseconds that a client (that's you) will wait for a connection from the pool.
spring.emsdatasource.connection-timeout=15000
# ValidationTimeout property controls the maximum amount of time that a connection will be tested for aliveness.
spring.emsdatasource.validation-timeout=3000
# IdleTimeout property controls the maximum amount of time that a connection is allowed to sit idle in the pool.
spring.emsdatasource.idle-timeout=30000
# MinimumIdle property controls the minimum number of idle connections that HikariCP tries to maintain in the pool.
spring.emsdatasource.minimum-idle=1
# Maximum size of connection pool
spring.emsdatasource.maximum-pool-size=48

# адрес сервиса ngw
services.ngw.host=localhost
# порт сервиса ngw
services.ngw.port=8040
services.ngw.retries=1
# ограничение размера сообщения для NGW в байтах
services.ngw.attachment.maxSize=10000000

services.report.allSessions.compress=true
# имя базы данных
services.mongo.database=jobs
# адрес базы данных
services.mongo.uri=mongodb://127.0.0.1:27017/jobs

# адрес базы данных radius для Clickhouse(раскоментировать при переходе на Clickhouse)
#spring.radiusdatasource.jdbcUrl=jdbc:clickhouse://localhost:8123/radius?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000
# имя драйвера для Clickhouse(раскоментировать при переходе на Clickhouse)
#spring.radiusdatasource.driverClassName=ru.yandex.clickhouse.ClickHouseDriver
# адрес базы данных radius для MySQL(закоментировать при переходе на MySQL)
spring.radiusdatasource.jdbcUrl=jdbc:mysql://localhost/radius?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000
# имя драйвера для MySQL(закоментировать при переходе на MySQL)
spring.radiusdatasource.driverClassName=com.mysql.cj.jdbc.Driver
# логин для подключения к бд radius
spring.radiusdatasource.username=javauser
# пароль для подключения к бд radius
spring.radiusdatasource.password=javapassword

Докеризация сервиса


Сервис может быть запущен в docker-контейнере. Для этого необходимо подготовить файл с переменными окружения .env и docker-compose.yml.

docker-compose.yml
version: "3"
services:
  eltex-jobs:
    ports:
      # Проброс порта из контейнера на хост. На этот порт обращается Eltex-Bruce.
      - "9696:${SERVER_PORT}"
    container_name: eltex-jobs
    image: hub.eltex-co.ru/softwlc/eltex-jobs:1.20-<tag>
    environment:
      # Порт на котором поднят сервис внутри контейнера. По-умолчанию 9696
      - SERVER_PORT=${SERVER_PORT}
      - SPRING_BATCH_JOB_ENABLED=${SPRING_BATCH_JOB_ENABLED}
      - SPRING_DATASOURCE_JDBCURL=${SPRING_DATASOURCE_JDBCURL}
      - SPRING_DATASOURCE_DRIVERCLASSNAME=${SPRING_DATASOURCE_DRIVERCLASSNAME}
      - SPRING_DATASOURCE_USERNAME=${SPRING_DATASOURCE_USERNAME}
      - SPRING_DATASOURCE_PASSWORD=${SPRING_DATASOURCE_PASSWORD}
      - SPRING_DATASOURCE_MAXIMUMPOOLSIZE=${SPRING_DATASOURCE_MAXIMUMPOOLSIZE}
      - SPRING_H2_CONSOLE_ENABLED=${SPRING_H2_CONSOLE_ENABLED}
      # JDBC-адрес подключения до БД eltex_ems
      - SPRING_EMSDATASOURCE_JDBCURL=${SPRING_EMSDATASOURCE_JDBCURL}
      - SPRING_EMSDATASOURCE_DRIVERCLASSNAME=${SPRING_EMSDATASOURCE_DRIVERCLASSNAME}
      # Логин от БД eltex_ems
      - SPRING_EMSDATASOURCE_USERNAME=${SPRING_EMSDATASOURCE_USERNAME}
      # Пароль от БД eltex_ems
      - SPRING_EMSDATASOURCE_PASSWORD=${SPRING_EMSDATASOURCE_PASSWORD}
      - SPRING_EMSDATASOURCE_CONNECTIONTIMEOUT=${SPRING_EMSDATASOURCE_CONNECTIONTIMEOUT}
      - SPRING_EMSDATASOURCE_VALIDATIONTIMEOUT=${SPRING_EMSDATASOURCE_VALIDATIONTIMEOUT}
      - SPRING_EMSDATASOURCE_IDLETIMEOUT=${SPRING_EMSDATASOURCE_IDLETIMEOUT}
      - SPRING_EMSDATASOURCE_MINIMUMIDLE=${SPRING_EMSDATASOURCE_MINIMUMIDLE}
      - SPRING_EMSDATASOURCE_MAXIMUMPOOLSIZE=${SPRING_EMSDATASOURCE_MAXIMUMPOOLSIZE}
      # Адрес хоста NGW
      - SERVICES_NGW_HOST=${SERVICES_NGW_HOST}
      # Адрес порта NGW
      - SERVICES_NGW_PORT=${SERVICES_NGW_PORT}
      - SERVICES_NGW_RETRIES=${SERVICES_NGW_RETRIES}
      - SERVICES_NGW_ATTACHMENT_MAXSIZE=${SERVICES_NGW_ATTACHMENT_MAXSIZE}
      - SERVICES_REPORT_ALLSESSIONS_COMPRESS=${SERVICES_REPORT_ALLSESSIONS_COMPRESS}
      - SERVICES_MONGO_DATABASE=${SERVICES_MONGO_DATABASE}
      # Адрес подключения к MongoDB
      - SERVICES_MONGO_URI=${SERVICES_MONGO_URI}
      # JDBC-адрес подключения до БД radius
      - SPRING_RADIUSDATASOURCE_JDBCURL=${SPRING_RADIUSDATASOURCE_JDBCURL}
      - SPRING_RADIUSDATASOURCE_DRIVERCLASSNAME=${SPRING_RADIUSDATASOURCE_DRIVERCLASSNAME}
      # Логин от БД radius
      - SPRING_RADIUSDATASOURCE_USERNAME=${SPRING_RADIUSDATASOURCE_USERNAME}
      # Пароль от БД radius
      - SPRING_RADIUSDATASOURCE_PASSWORD=${SPRING_RADIUSDATASOURCE_PASSWORD}

Вместо <tag> необходимо указать актуальную версию, которую можно посмотреть по ссылке.
.env
SERVER_PORT=9696
SERVICES_MONGO_DATABASE=jobs
SERVICES_MONGO_URI=mongodb://127.0.0.1:27017/jobs
SERVICES_NGW_ATTACHMENT_MAXSIZE=10000000
SERVICES_NGW_HOST=localhost
SERVICES_NGW_PORT=8040
SERVICES_NGW_RETRIES=1
SERVICES_REPORT_ALLSESSIONS_COMPRESS=true
SPRING_BATCH_JOB_ENABLED=false
SPRING_DATASOURCE_DRIVERCLASSNAME=org.h2.Driver
SPRING_DATASOURCE_JDBCURL=jdbc:h2:mem:testdb;DB_CLOSE_ON_EXIT=FALSE
SPRING_DATASOURCE_MAXIMUMPOOLSIZE=200
SPRING_DATASOURCE_PASSWORD=
SPRING_DATASOURCE_USERNAME=sa
SPRING_EMSDATASOURCE_CONNECTIONTIMEOUT=15000
SPRING_EMSDATASOURCE_DRIVERCLASSNAME=com.mysql.cj.jdbc.Driver
SPRING_EMSDATASOURCE_IDLETIMEOUT=30000
SPRING_EMSDATASOURCE_JDBCURL=jdbc:mysql://localhost/eltex_ems?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000
SPRING_EMSDATASOURCE_MAXIMUMPOOLSIZE=48
SPRING_EMSDATASOURCE_MINIMUMIDLE=1
SPRING_EMSDATASOURCE_PASSWORD=javapassword
SPRING_EMSDATASOURCE_USERNAME=javauser
SPRING_EMSDATASOURCE_VALIDATIONTIMEOUT=3000
SPRING_H2_CONSOLE_ENABLED=true
SPRING_RADIUSDATASOURCE_DRIVERCLASSNAME=com.mysql.cj.jdbc.Driver
SPRING_RADIUSDATASOURCE_JDBCURL=jdbc:mysql://localhost/radius?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000
SPRING_RADIUSDATASOURCE_PASSWORD=javapassword
SPRING_RADIUSDATASOURCE_USERNAME=javauser

Описание переменных (environment)

Запуск сервиса

  • SERVER_PORT - порт, на котором сервис будет работать внутри контейнера;

Подключение к БД jobs (MongoDB)

  • SERVICES_MONGO_URI - URI для подключения к БД;

Подключение к сервису NGW

  • SERVICES_NGW_HOST - ip-адрес сервиса NGW;
  • SERVICES_NGW_PORT - порт, на котором работает сервис NGW;

Подключение к БД eltex_ems (MySQL)

  • SPRING_EMSDATASOURCE_JDBCURL - jdbc-адрес подключекния к БД eltex_ems;
  • SPRING_EMSDATASOURCE_USERNAME - Логин подключения к БД;
  • SPRING_EMSDATASOURCE_PASSWORD - Пароль подключения к БД;

Подключение к БД radius (MySQL)

  • SPRING_RADIUSDATASOURCE_JDBCURL - jdbc-адрес для подключекния к БД radius;
  • SPRING_RADIUSDATASOURCE_USERNAME - Логин подключения к БД;
  • SPRING_RADIUSDATASOURCE_PASSWORD - Пароль подключения к БД;

Файлы .env и docker-compose.yml должны находиться в одной папке. Контейнер запускается командой:

command
docker-compose up -d


  • Нет меток