Подключение к Оркестратору
Подключение к Оркестратору позволяет Idea Hub получать информацию о:
- проектах и их запусках — дату, среднюю длительность, общее количество запусков, количество успешных запусков, количество бизнес-ошибок и количество технических ошибок;
- очередях, статистику обработки элементов — дату, среднюю длительность, общее количество обработанных элементов, количество успешно обработанных элементов, количество элементов, обработка которых завершилась с бизнес-ошибкой или технической ошибкой;
- лицензиях и типах лицензий;
- роботах;
- машинах роботов.
Подключение к Оркестратору осуществляется с помощью скрипта get_data из комплекта поставки Idea Hub. Для ОС Linux используется скрипт bash-скрипт get_data.sh;
для ОС Windows — PowerShell-скрипт get_data.ps1.
О том, как скачать и настроить каждый из скриптов, будет рассказано ниже.
С версии Idea Hub 25.4 стало доступным подключение к БД Оркестратора напрямую, без использования скрипта get_data. Если вы хотите использовать этот способ, то пропустите данный раздел и переходите сразу к созданию и настройке контуров.
Работа со скриптом get_data.sh
Общий процесс получения данных из Оркестратора выглядит так:
- Скрипт
get_data.shзапускается стандартным планировщиком задач cron, входящим во все дистрибутивы Linux. Скрипт создает каталоги контуров (экземпляров Оркестратора) и складывает в них полученные данные из БД Оркестратора. - Idea Hub запускается по cron и забирает данные из каталогов контуров. Важно: время запуска Idea Hub должно быть позже, чем время запуска
get_data.sh. - Idea Hub готов к отображению актуальных данных.
Требования к машине для запуска get_data.sh
По умолчанию машина, на которой будет запускаться скрипт get_data.sh, это та же машина сервера, на которой установлен Idea Hub. Скрипт get_data.sh может запускаться на любой машине, но файлы, которые он создаст, должны быть доступны на сервере Idea Hub.
Скрипт запускается по расписанию с помощью утилиты cron, позволяющей выполнять скрипты на сервере в назначенное время с заранее определенной периодичностью. Дополнительная информация по работе с cron содержится в документе Инструкция по работе с cron.
При подключении к БД Оркестратора могут использоваться пароли, зашифрованные с помощью утилиты pass. Дополнительная информация по установке и настройке pass содержится в этом разделе.
Требования:
- psql — утилита, которая позволяет взаимодействовать с базой данных PostgreSQL через командную строку;
- cron — поставляется по умолчанию во всех системах Linux;
- pass — менеджер паролей в ОС Linux;
- Доступ к серверам, на которых размещены базы данных Оркестратора;
- Пользователь, от имени которого будут выполняться запросы, должен иметь права только на чтение БД Оркестратора, к которым будет обращаться скрипт. Потребуется доступ к следующим базам и таблицам:
ltools:ltools.ExchangeQueues ltools.ExchangeQueueStatistics ltools.ExchangeQueueStatisticAvgs ltools.Robots ltools.RpaProjects ltools.Workers ltools.RpaProjectLaunchesltoolslicense:ltoolslicense.Licenses
Загрузка скрипта get_data.sh
Скрипт доступен на официальном сайте в папке scripts:
- Скачайте архив
orc-data-fetch.XX.XX.X.linux.tar.gzна машину сервера. - Распакуйте архив в папку
./scripts/orc-data-fetch/командой:tar -xzf orc-data-fetch.XX.XX.X.linux.tar.gz -C /var/www/ideahub/scripts/orc-data-fetch/ - В папке вы увидите следующие файлы:
get_data.sh— bash-скрипт для подключения к БД PostgreSQL Оркестратора..env.example— пример того, как может быть оформлен файл контура. Содержит информацию о параметрах скриптов и рекомендации по их заполнению..env.message— служебный файл, не требует действий со стороны пользователя.get_data.func.sh— служебный файл, не требует действий со стороны пользователя.
Настройка скрипта get_data.sh
- В папке
./scripts/orc-data-fetch/создайте копию файла.env.exampleс именем.env. - Проверьте и настройте все переменные в файле
.env. Окружения или контуры — это экземпляры Оркестратора. Если используется несколько контуров, то переменные в блоке контуров (Environments) необходимо продублировать, изменив имена и значения для необходимых контуров. - Скрипт запускается из каталога Idea Hub с аргументом — именем контура. Например:
./scripts/orc-data-fetch/get_data.sh prod ./scripts/orc-data-fetch/get_data.sh test - Запуск скрипта отдельно для каждого контура добавьте в файл crontab. Пример строки crontab, которая описывает запуск скриптов каждый день 1 раз в 3 часа 10 минут:
10 3 * * * /var/www/ideahub/scripts/orc-data-fetch/get_data.sh prod > /dev/null 2>&1
Параметры скрипта get_data.sh
Все параметры скрипта указаны в файле .env.example. С описанием параметров можно ознакомиться в самом файле либо ниже.
Глобальные параметры
LOG_FILE_MAX_SIZE=1048576— максимальный размер файла логов. При достижении этого размера файл будет очищен.USE_PASS=0— переменная, которая указывает, следует ли использовать утилиту pass. Возможные значения:0— пароль будет использоваться в том виде, в котором он указан в переменной вида DBPASS_[ИМЯ_БАЗЫ_ДАННЫХ]_[ИМЯОКРУЖЕНИЯ].1— в переменных вида DBPASS_[ИМЯ_БАЗЫ_ДАННЫХ]_[ИМЯОКРУЖЕНИЯ] укажите имя, под которым пароль хранится в утилите pass.
LANGUAGE=RU— используемый язык скрипта. Возможные значения: RU, EN.OUTPUT_FOLDER=\<рабочий каталог проекта>/private/import-source/sync— переменная с каталогом, в который будут записаны результирующие файлы. Не ставьте косую черту (слеш) в конце строки. Рекомендуется использовать абсолютный путь.QUERY_LIMIT=20000— максимальное количество записей, которые будут выгружаться за один запрос.RPA_PROJECT_LAUNCHES_FIRST_TIME_INTERVAL=300— интервал в днях, который определяет дату, с которой вы хотите начать читать данные из таблицы запусков RPA-проектов (ltools.RpaProjectLaunches).RPA_PROJECT_LAUNCHES_INTERVAL=5— интервал в днях, за который будут собираться данные из таблицы ltools.RpaProjectLaunches. Параметр позволяет получить статистику по запускам проектов, даже если отсутствовало подключение к БД Оркестратора в течение нескольких дней. Например, вы получили данные 25-го января, а 26-28-го января подключение отсутствовало. Тогда при возобновлении подключения вы сможете получить данные за период, который соответствует значению параметра.
Переменные окружения
Все переменные ниже задаются для каждого контура отдельно, с суффиксом в виде имени этого контура. Необязательно использовать имя PROD — замените PROD на имя вашего контура.
-
SLEEPDURATION[ENVIRONMENT]=0 — пауза в секундах перед повторным запросом в таблицу, если записей больше, чем указано в QUERY_LIMIT.
Пример использования для разных контуров:
SLEEP_DURATION_PROD=0SLEEP_DURATION_TEST=30
-
DB\_[VAR]\_[DB_NAME]\_[ENVIRONMENT]=reader— составной параметр, где:- VAR — это часть учетных данных (credentials) для подключения к базе данных. Например:
- NAME — имя базы данных.
- HOST — IP-адрес сервера, на котором расположена база данных.
- PORT — порт подключения к базе данных.
- USER — имя пользователя для базы данных.
- PASS — пароль пользователя для базы данных.
- DB_NAME — это имя базы данных, к которой выполняется подключение.
- ENVIRONMENT — это имя контура.
- reader — значение параметра.
- VAR — это часть учетных данных (credentials) для подключения к базе данных. Например:
Пример заполнения переменных окружения для контура PROD:
SLEEP_DURATION_PROD=0
# DB_[VAR]_[DB_NAME]_[ENVIRONMENT]
DB_NAME_LTOOLS_PROD=ltools
DB_HOST_LTOOLS_PROD=127.0.0.1
DB_PORT_LTOOLS_PROD=5432
DB_USER_LTOOLS_PROD=postgres
DB_PASS_LTOOLS_PROD=postgres
DB_NAME_LTOOLSLICENSE_PROD=ltoolslicense
DB_HOST_LTOOLSLICENSE_PROD=127.0.0.1
DB_PORT_LTOOLSLICENSE_PROD=5432
DB_USER_LTOOLSLICENSE_PROD=postgres
DB_PASS_LTOOLSLICENSE_PROD=postgresНастройка доступа к файлам подключения к Оркестратору
Далее настройте права доступа к файлам и каталогам подключения к Оркестратору:
-
Назначьте папке
scripts/orc-data-fetchи всем ее файлам владельца ideahub (или своего служебного пользователя) и группу www-data. Дайте группе право на запись:sudo chown ideahub:www-data scripts/orc-data-fetch -R sudo chgrp ideahub:www-data scripts/orc-data-fetch -R sudo chmod ug+w scripts/orc-data-fetch -R -
Дайте права на запуск файла
scripts/orc-data-fetch/get_data.shпользователю и группе www-data:sudo chmod ug+x scripts/orc-data-fetch/get_data.sh -
Дайте права на запись в каталог, указанный в переменной
OUTPUT_FOLDERв файлеscripts/orc-data-fetch/.env:sudo chown www-data OUTPUT_FOLDER sudo chgrp www-data OUTPUT_FOLDER sudo chmod ug+w OUTPUT_FOLDERВ командах выше нужно заменить
OUTPUT_FOLDERна путь, который указан в файлеscripts/orc-data-fetch/.env.
Настройка Idea Hub
- В файле
config/settings.local.phpдобавьте/измените переменные в блоке Orch sync data variable. orch_raw_data_source_path— каталог, в который скрипт складывает данные из Оркестратора. В общем случае это тот каталог, который указывался при настройке скрипта в файле.envв параметре OUTPUT_FOLDER. Каталог по умолчанию:private://import-source/sync
Структура каталогов для импорта данных
После выполнения скрипта get_data.sh рекомендуется проверить конечную структуру каталогов и файлов, полученных из Оркестратора.
Пример правильного размещения структуры каталогов на машине:
PATH_TO_IDEAHUB
-- private
---- import-source
------ sync
-------- prod
---------- backup
------------ prod-20250205-030507.tgz
------------ prod-20250206-030627.tgz
------------ ...
---------- Projects.csv
---------- Machines.csv
---------- Robots.csv
---------- ...
-------- test
---------- backup
------------ test-20250205-030507.tgz
------------ test-20250206-030627.tgz
------------ ...
---------- Projects.csv
---------- Machines.csv
---------- Robots.csv
---------- ...
-------- something-else
---------- backup
------------ something-else-20250205-030507.tgz
------------ something-else-20250206-030627.tgz
------------ ...
---------- Projects.csv
---------- Machines.csv
---------- Robots.csv
---------- ...Работа со скриптом get_data.ps1
Требования к машине для запуска get_data.ps1
Машина, на которой будет запускаться скрипт get_data.ps1, должна работать под OC Windows. По умолчанию это та же машина, на которой установлена БД MSSQL Оркестратора.
Требования:
- tar — архиватор, который поставляется по умолчанию для Windows-серверов 2019+;
- PowerShell 5.1+;
- Доступ к серверам, на которых размещены базы данных Оркестратора;
- Пользователь, от имени которого будут выполняться запросы, должен иметь права только на чтение БД Оркестратора, к которым будет обращаться скрипт. Потребуется доступ к следующим базам и таблицам:
ltools:ltools.ExchangeQueues ltools.ExchangeQueueStatistics ltools.ExchangeQueueStatisticAvgs ltools.Robots ltools.RpaProjects ltools.Workers ltools.RpaProjectLaunchesltoolslicense:ltoolslicense.Licenses
Настройка скрипта get_data.ps1
-
Создайте или выберите уже существующий каталог, из которого будет запускаться скрипт.
-
Загрузите в этот каталог архив
orc-data-fetch.25.2.1.windows.tar.gz. -
Перейдите в этот каталог и выполните команду:
tar -zxvf orc-data-fetch.25.2.1.windows.tar.gz" -C .Точка в конце указывает, что файлы из архива будут распакованы в текущий каталог.
-
Скопируйте
.env.exampleв.envи пропишите в нем необходимые настройки. Настройки описаны в файле.env.exampleс помощью комментариев.При заполнении параметра USE_PASS помните, что для скрипта
get_data.ps1невозможно использовать утилиту pass, поэтому значение параметра должно быть0. -
Откройте PowerShell и перейдите в каталог со скриптом.
-
Запустите скрипт, указав в качестве аргумента имя окружения, например prod (от production):
.\get_data.ps1 prod -
Результат работы скрипта в виде файлов формата CSV будет помещен в каталог c именем окружения (prod). Каталог будет создан по пути, описанном в конфигурационном файле
.envв параметре OUTPUT_FOLDER. В общем случае это:/var/www/IdeaHub/private/import-source/sync. -
Перенесите файлы, через удобный для вас носитель, на сервер Idea Hub в каталог
/private/import-source/sync/prod. -
После чего файлы можно будет импортировать в Idea Hub в автоматическом режиме с использованием утилиты cron, либо вручную со страницы настройки контура.
Что дальше
Следующий шаг — перейти в веб-интерфейс Idea Hub, чтобы создать контуры организации. К каждому контуру потребуется добавить источник импорта данных и указать время, по которому Idea Hub будет автоматически забирать данные из Оркестратора, которые собрал скрипт get_data.sh.