Page tree
Skip to end of metadata
Go to start of metadata

Данное приложение может быть установлено в систему Debian виде пакета hex или hex-testing из репозитория deb.hydra-billing.com. Подключение данного репозитория может быть выполнено сотрудниками компании Латера в рамках услуги техподдержки.

Конфигурация агента HEX состоит из единственного файла /etc/hydra/hex/hex.yml (/etc/hydra-testing/hex-testing/hex.yml для тестового экземпляра) и также как и для остальных агентов и приложений объединяется с конфигурацией по умолчанию /opt/hydra/hex/conf/hex.yml (/opt/hydra/hex-testing/conf/hex.yml для тестового экземпляра).

Параметры подключения к ActiveMQ

Для получения агентом HEX команд из Гидры и передачи им обратно результатов их выполнения используется брокер ActiveMQ. Взаимодействие с ним осуществляется по протоколу OpenWire. В конфигурационном файле агента, в ключе activemq → url необходимо указать хост и порт брокера в формате tcp://<hostname_or_ip>:<port>.

Карту соответствия очередей для получения команд и отправки результатов их выполнения необходимо указать в виде списка пар ключ-значение в блоке hydra → command_queues. Формат списка позволяет использовать один экземпляр агента для обработки команд одновременно от нескольких филиалов в Гидре: для каждого филиала используется отдельная пара очередей команд и результатов их выполнения. В простейшем же случае данный список будет состоять лишь из одной пары. Указанная очередь команд должна быть связана в ActiveMQ с очередью HP_COMMANDS_* БД Гидры, а очередь результатов выполнения — с очередью HP_COM_RES_* БД Гидры.

Ограничение количества потоков выполнения команд

Команды агентом выполняются в многопоточном режиме, независимо друг от друга. Максимальное количество потоков определяется ключом конфигурации hydra → pipe_concurrency. Значение по умолчанию — 100. Фактическое количество потоков выполнения команд зависит от параметров шаблонов конфигурации, типов сессий и общего количества команд в очереди — данный параметр определяет только общее ограничение сверху.

Ограничение времени выполнения команд

Максимальное время выполнения отдельной команды ограничивается указанным в ключе hydra → execution_timeout количеством миллисекунд. Значение по умолчанию — 60000. Если команда не успевает выполниться за это время, агент принудительно завершает запущенный процесс путём отправки ему сигнала SIGKILL.

Пример конфигурации

/etc/hydra/hex/hex.yml
log:
  default:
    # Уровень логирования
    level: 'debug'
    # Полный путь к файлу лога
    path: '/var/log/hydra/hex/hex.log'
    # Параметры ротации лога
    rotate:
      # Максимальный размер одного файла в килобайтах
      size: 20480
      # Максимальное количество хранимых файлов
      count: 50

activemq:
  # Хост и порт для подключения к ActiveMQ по протоколу OpenWire
  url: 'failover:tcp://192.168.100.200:61616'
 
hydra:
  # Карта соответствия очередей команд и результатов их выполнения
  command_queues:

    # <Очередь для приёма команд>: <Очередь для отправки результата>
    - 'hydra_commands_offline-telecom': 'hydra_command_results_offline-telecom'
    - 'hydra_commands_vasilki-telecom': 'hydra_command_results_vasilki-telecom'

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

При установке включается автоматический запуск агента во время загрузки системы. Управлять состоянием агента вручную можно с помощью инициализационного скрипта /etc/init.d/hex (/etc/init.d/hex-testing для тестового экземпляра):

user@server:~$ sudo /etc/init.d/hex <command>

Вместо <command> следует использовать одну из команд:

  • start — запуск агента в нормальном режиме;
  • run — запуск агента в режиме отладки с выводом лога в консоль (останов выполняется по нажатию Ctrl+C),
  • stop — останов агента,
  • restart — перезапуск агента.

При останове агента необходимо учитывать, что этот процесс может занять продолжительное время. Сразу после получения сигнала остановки агент отключается от очереди команд, но при этом он продолжает выполнять те команды, которые уже были им получены. Фактическое завершение работы агента произойдёт после того как все полученные им команды будут выполнены, а соответствующие результаты отправлены.

Управление памятью приложения

Для изменения параметров выделенной HEX'у памяти необходимо в docker-compose.yml в блоке environment определить переменную JAVA_TOOL_OPTIONS. Пример настройки:

version: '3.6'
services:
  hex:
    volumes:
      - /etc/hydra/hex/hex.yml:/etc/hydra/hex/hex.yml:ro
    image: docker.dl.latera.ru:2000/hex
    container_name: hex
    environment:
      - TZ=Europe/Moscow
      - JAVA_TOOL_OPTIONS=-Xms64M -Xmx1G
  • No labels