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


Описание


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


Установка


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

apt install eltex-bruce

Настройка


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

# порт используемый сервисом
server.port=8008

# ip-адрес сервиса eltex-jobs
server.address.jobs=http://localhost:9696

spring.quartz.job-store-type=memory

# название базы данных, в которой ELTEX-BRUCE будет хранить данные
spring.data.mongodb.database=scheduler

# адрес базы данных
spring.data.mongodb.uri=mongodb://localhost/scheduler

spring.quartz.properties.org.quartz.scheduler.instanceName=jobs-quartz
spring.quartz.properties.org.quartz.scheduler.instanceId=AUTO
spring.quartz.properties.org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool
spring.quartz.properties.org.quartz.threadPool.threadCount=10
spring.quartz.properties.org.quartz.threadPool.threadPriority=5
spring.quartz.properties.org.quartz.jobStore.misfireThreshold=12000000000


Файл настройки инициализации сервиса /etc/default/eltex-bruce

# Scheduling service

# HTTP Port for use by Eltex Bruce  -- порт, использующийся сервисом
PORT=8008

# Initial size of Java heap -- выделение оперативной памяти для инициализации
JAVA_INIT_HEAP=32m
# Maximum size of Java heap -- ограничение потребления оперативной памяти для java-приложения
JAVA_MAX_HEAP=256m

# Additional arguments to pass to java -- Дополнительные аргументы для запуска java-приложения
JAVA_OPTS="-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/eltex-bruce

Управление сервисом


ДействиеКомандаОтвет
Проверка состоянияservice eltex-bruce status

Сервис запущен:

Active: active (running)

Cервис не запущен:

Active: failed

Запуск сервисаservice eltex-bruce start

Сервис успешно запущен:

Active: active (running)

Остановка сервисаservice eltex-bruce stop

Сервис успешно остановлен:

Active: failed

Перезапуск сервисаservice eltex-bruce restart

Сервис успешно перезапущен:

Active: active (running)

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


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

docker-compose.yaml
version: "3"
services:
  eltex-bruce:
    ports:
      # Проброс порта из контейнера на хост. На этот порт обращается ЛК B2B.
      - "8008:${SERVER_PORT}"
    container_name: eltex-bruce
    image: ${ELTEX_HUB}/eltex-bruce:${SWLC_VERSION}
    environment:
      # Настроить порт внутри контейнера. По-умолчанию 8008
      - SERVER_PORT=${SERVER_PORT}
      # Настроить адрес сервиса Jobs. Можно также объединить в один compose и создать одну сеть для сервисов.
      - SERVER_ADDRESS_JOBS=${SERVER_ADDRESS_JOBS}
      - SPRING_QUARTZ_JOBSTORETYPE=${SPRING_QUARTZ_JOBSTORETYPE}
      - SPRING_DATA_MONGODB_DATABASE=${SPRING_DATA_MONGODB_DATABASE}
      # Настроить адрес MongoDB.
      - SPRING_DATA_MONGODB_URI=${SPRING_DATA_MONGODB_URI}
      - SPRING_QUARTZ_PROPERTIES_ORG_QUARTZ_SCHEDULER_INSTANCENAME=${SPRING_QUARTZ_PROPERTIES_ORG_QUARTZ_SCHEDULER_INSTANCENAME}
      - SPRING_QUARTZ_PROPERTIES_ORG_QUARTZ_SCHEDULER_INSTANCEID=${SPRING_QUARTZ_PROPERTIES_ORG_QUARTZ_SCHEDULER_INSTANCEID}
      - SPRING_QUARTZ_PROPERTIES_ORG_QUARTZ_THREADPOOL_CLASS=${SPRING_QUARTZ_PROPERTIES_ORG_QUARTZ_THREADPOOL_CLASS}
      - SPRING_QUARTZ_PROPERTIES_ORG_QUARTZ_THREADPOOL_THREADCOUNT=${SPRING_QUARTZ_PROPERTIES_ORG_QUARTZ_THREADPOOL_THREADCOUNT}
      - SPRING_QUARTZ_PROPERTIES_ORG_QUARTZ_THREADPOOL_THREADPRIORITY=${SPRING_QUARTZ_PROPERTIES_ORG_QUARTZ_THREADPOOL_THREADPRIORITY}
      - SPRING_QUARTZ_PROPERTIES_ORG_QUARTZ_JOBSTORE_MISFIRETHRESHOLD=${SPRING_QUARTZ_PROPERTIES_ORG_QUARTZ_JOBSTORE_MISFIRETHRESHOLD}
      # Настройка логгирования
      - BRUCE_LOG_LEVEL=${BRUCE_LOG_LEVEL}
      - BRUCE_CONSOLE_LEVEL=${BRUCE_CONSOLE_LEVEL}
      # Настройка перенаправления логов в Graylog
      - GELF_HOST=${GELF_HOST}
      - GELF_PORT=${GELF_PORT}
      - GELF_LEVEL=${GELF_PORT}
	  - TZ=${TZ}
.env
ELTEX_HUB=hub.eltex-co.ru/softwlc
SWLC_VERSION=1.21-<tag>
 
SERVER_PORT=8008
SERVER_ADDRESS_JOBS=http://<ip_jobs-service>:9696
SPRING_QUARTZ_JOBSTORETYPE=memory
SPRING_DATA_MONGODB_DATABASE=scheduler
SPRING_DATA_MONGODB_URI=mongodb://<ip_mongodb_server>/scheduler
 
SPRING_QUARTZ_PROPERTIES_ORG_QUARTZ_SCHEDULER_INSTANCENAME=jobs-quartz
SPRING_QUARTZ_PROPERTIES_ORG_QUARTZ_JOBSTORE_MISFIRETHRESHOLD=12000000000
SPRING_QUARTZ_PROPERTIES_ORG_QUARTZ_THREADPOOL_CLASS=org.quartz.simpl.SimpleThreadPool
SPRING_QUARTZ_PROPERTIES_ORG_QUARTZ_SCHEDULER_INSTANCEID=AUTO
SPRING_QUARTZ_PROPERTIES_ORG_QUARTZ_THREADPOOL_THREADPRIORITY=5
SPRING_QUARTZ_PROPERTIES_ORG_QUARTZ_THREADPOOL_THREADCOUNT=10
 
# Настройка логгирования
BRUCE_LOG_LEVEL=INFO
BRUCE_CONSOLE_LEVEL=INFO
 
# Настройка перенаправления логов в Graylog
GELF_HOST=udp:<ip_graylog_server>
GELF_PORT=12201
GELF_LEVEL=INFO

#Настройка TIMEZONE
TZ=Asia/Novosibirsk

Вместо <tag> необходимо указать актуальную версию, которую можно посмотреть по ссылке.

Вместо <ip_jobs_service> необходимо указать ip-адрес сервиса eltex-jobs.

Вместо <ip_mongodb_server> необходимо указать ip-адрес сервера MongoDB.

Вместо <ip_graylog_server> необходимо указать ip-адрес сервера Graylog.

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

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

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

  • ELTEX_HUB - URL репозитория Элтекс;

  • SWLC_VERSION - версия образа;

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

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

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

  • SERVER_ADDRESS_JOBS - URL для подключения к сервису Jobs;

Параметры логгирования

  • BRUCE_CONSOLE_LOG_LEVEL - уровень логгирования сервиса в консоль;

  • BRUCE_LOG_LEVEL - уровень логгирования сервиса;

Настройка перенаправления логов на сервер Graylog

  • GELF_LEVEL - уровень логов, перенаправляемых в Graylog;

  • GELF_HOST - адрес хоста Graylog;

  • GELF_PORT - порт хоста Graylog.

Настройка часового пояса

  • TZ - часовой пояс в формате Asia/Novosibirsk (список существующих можно посмотреть командой timedatectl list-timezones)


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

command
 docker-compose up -d
  • Нет меток