Установка RobotLogs
Last updated
Was this helpful?
Last updated
Was this helpful?
Базовая установка – это установка на той же машине, где развернута служба WebApi.
Сначала требуется установить RabbitMQ.
Разархивируйте C:\Install\RobotLogs.zip в C:\Primo\RobotLogs. Можно при помощи PowerShell:
Создайте системную переменную окружения (если не создана ранее). Для этого в PoweShell выполните команду:
Настройте конфигурационный файл: Настройте строку подключения в БД:
Если для Postgres используется схема, отличная от public, надо явно указать схему – SearchPath=schema1.
Настройте Host, UserName и Password сервера RabbitMQ:
Настройте секцию ScreenFileUpload – параметры сбора файлов со скринами рабочего стола на машине робота:
Остальные параметры рекомендуется оставить без изменения*:
MaxBatch – Максимальный размер пачки, извлекаемый из внутренней очереди ScreenFile за один раз, для отправки команды формирования Zip-архива файлов. Если больше нуля - файлы скринов запрашиваются асинхронно в виде Zip-архивов.
MaxBatchSended – Максимальный размер пачки, извлекаемый из внутренней очереди ScreenFilesSended за один раз. При превышении GetZipNonSeparationFactor команда отправится в очередь повторно.
ScreenFilePath – Путь до хранилища файлов скринов. Папку по этому пути желательно создать заранее. На неё должны быть настроены права на чтение и запись для всех. Из папки ScreenFilePath файлы скринов будет читать служба WebApi. Если служба RobotLogs (её экземпляры) находится не на одной машине с WebApi (см. п. 2. «Кластерный вариант»), то на машине с WebApi на эту сетевую папку (папки) должны быть настроены ссылки, или в качестве ScreenFilePath сразу использована общая сетевая папка. Или папки должна быть реплицированы по узлам с WebApi.
CreateZipThreadSleep – Время засыпания потока опроса очереди (в милисекундах) формирования команд создания Zip-архивов Агентом.
CountForDirectlyRequest – Кол-во команд, вычитанное из очереди, которое считается сильно маленьким, чтобы формировать запрос на архив. Запрос файлов по этим командам будет произведен напрямую.
GetZipThreadSleep – Время засыпания потока опроса (в милисекундах) Агента на отдачу готовых Zip-архивов.
GetZipNonSeparationFactor – Насколько отдельными будут обращения к одному агенту для получения Zip-архивов. Отдельное – в рамках разных итераций службы запросов. Чем выше значение, тем больше кол-во запросов (не превышая этот фактор) в рамках одной итерации.
AgentTimeOut – Таймаут (сек) запроса агента. Не стоит делать большим, чтобы не создать повышенную нагрузку на Агента.
ThumbFactor – Коэффициент уменьшения оригинального изображения скрина. Уменьшенные изображения показываются в журнале робота в UI Оркестратора.
* - Требуются для тонкой настройки производительности при высокой нагрузке
При наличии тенантов настройте в соответствии с конфигурацией WebApi их список:
Зарегистрируйте Primo.Orchestrator.RobotLogs.exe как службу Windows и сразу запустите её. Служба должна работать как локальная служба. Для этого в PowerShell последовательно выполните команды:
Откройте порт 56748 на файерволе (если служба RobotLogs не на одном сервере с nginx).
После чего созданная служба Primo.Orchestrator.RobotLogs будет отображаться в списке всех служб как запущенная.
Тонкая настройка производительности приема логов/событий оркестратора настраивается в секцииях InputBufferRobotLogs, InputBufferAttendedRobotLogs и InputBufferOrchEvents, соответственно:
MaxQueueLength – максимальный размер входного буфера приема логов от робота. Чем выше, тем больший размер пачек логов робот без потерь может слать в Оркестратор.
MaxBatchSize – максимальный размер пачки за один раз сбрасываемый сервисом в БД ltoolslogs. Чем выше, тем меньше обращений в БД потребуется, но тем большее количество данных за один раз должно быть передано.
ThreadSleep – время (мсек) опроса входного буфера. Для оптимизации таблицы OrchEvents из неё периодически удаляются старый события, связанные с внутренней очередью триггеров Оркестратора – значение поле Event 9016, 9017, 9018. В секции TriggerNativeEventsQueueLogs настраиваются параметры этого удаления:
Period – какие события считаются старыми (время в часах).
MaxEventCountForSleep – сколько событий внутренней очереди с последней чистки должен принять сервис RobotLogs, чтобы запустилась новая чистка. Чтобы с одной стороны не делать её излишне часто, и с другой, чтобы чистка не затронула большой объем записей.
Если развернуто несколько экземпляров службы RobotLogs на нескольких узлах для обеспечения масштабируемости, то требуется обеспечить возможность доступа WebApi к собранным RobotLogs файлам скринов.
Каждый узел RobotLogs пишет в БД абсолютный путь до файла скрина в соответствии со своей настройкой ScreenFileUpload:ScreenFilePath по Id записи лога. При отдаче файла скрина в UI Оркестратор определяет этот путь на основе Id записи лога.
Рассмотрим схемы развертывания RobotLogs на нескольких машинах. Обеспечить возможность доступа WebApi к собранным RobotLogs файлам скринов можно несколькими способами, в зависимости от схемы.
В этом случае на узлах с WebApi создается папка/папки с названием, как на узлах с RobotLogs, в которую реплицируются папки со всех узлов RobotLogs. Тогда не имеет значения, как называются папки на узлах RobotLogs, но репликация должна быть настроена во все такие одноименные (одноименные по абсолютному пути) папки на узлах WebApi.
В этом случае оптимально в ScreenFileUpload:ScreenFilePath использовать одинаковые пути для разных узлов RobotLogs, чтобы не создавать несколько папок на узлах WebApi.
В этом случае на узлах с WebApi папки для скринов не создаются. На узлах RobotLogs в ScreenFileUpload:ScreenFilePath обязательно используются разные папки, расшаренные по сети. На папки узлов RobotLogs на узлах WebApi создаются символические ссылки.
На отдельном узле создается расшаренная сетевая папка, на которую настраивается на каждом узле RobotLogs в ScreenFileUpload:ScreenFilePath путь до неё.