Подключение к Оркестратору
Подключение Idea Hub к Оркестратору позволяет получить информацию о:
- проектах, их запусках — дату, среднюю длительность, общее количество запусков, количество успешных запусков, количество бизнес-ошибок и количество технических ошибок.
- очередях, статистику обработки элементов — дату, среднюю длительность, общее количество обработанных элементов, количество успешно обработанных элементов, количество элементов, обработка которых завершилась с бизнес-ошибкой или технической ошибкой;
- лицензиях и типах лицензий;
- роботах;
- машинах роботов.
Подключение к Оркестратору осуществляется с помощью скриптов из комплекта поставки Idea Hub. Скрипты находятся в папке ./scripts/orc-data-fetch/
:
get_data.sh
— Bash-скрипт для подключения к БД PostgreSQL Оркестратора.get_data.ps1
— PowerShell-скрипт для подключения к БД MSSQL, работающей на Windows-серверах Оркестратора..env.example
— пример того, как может быть оформлен файл контура. Содержит информацию о параметрах скриптов и рекомендации по их заполнению..env.message
— служебный файл, не требует действий со стороны пользователя.get_data.func.sh
— служебный файл, не требует действий со стороны пользователя.
Скрипты get_data.sh
/ get_data.ps1
могут запускаться на любой машине, но файлы, которые они создадут, должны быть доступны на сервере Idea Hub.
Работа со скриптом get_data.sh
Общий процесс получения данных из Оркестратора выглядит так:
- Скрипт
get_data.sh
запускается по cron, создаёт каталоги контуров и складывает в них полученные данные из БД Оркестратора. - Idea Hub запускается по cron и забирает данные из каталогов контуров. Важно: время запуска Idea Hub должно быть позже, чем время запуска
get_data.sh
. - Idea Hub готов к отображению актуальных данных.
Требования к машине для запуска get_data.sh
Ниже указаны требования к машине, на которой будет запускаться скрипт 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.RpaProjectLaunches
-
ltoolslicense
:ltoolslicense.Licenses
-
Настройка скрипта 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
- В crontab также необходимо добавить строку:
*/5 * * * * cd /var/www/ideahub && /var/www/ideahub/vendor/bin/drush cron > /dev/null 2>&1
Параметры скрипта
Все параметры скрипта указаны в файле .env.example
. С описанием параметров можно ознакомиться ниже либо в самом файле.
Глобальные параметры
- LOG_FILE_MAX_SIZE=1048576 — максимальный размер файла логов. При достижении этого размера файл будет очищен.
- USE_PASS=0 — переменная, которая указывает, следует ли использовать утилиту pass.
Возможные значения:
0
— пароль будет использоваться в том виде, в котором он указан в переменной вида DB_PASS_[ИМЯ_БАЗЫ_ДАННЫХ]_[ИМЯ_ОКРУЖЕНИЯ].1
— в переменных вида DB_PASS_[ИМЯ_БАЗЫ_ДАННЫХ]_[ИМЯ_ОКРУЖЕНИЯ] укажите имя, под которым пароль хранится в утилите 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 на имя вашего контура.
-
SLEEP_DURATION_[ENVIRONMENT]=0 — пауза в секундах перед повторным запросом в таблицу, если записей больше, чем указано в QUERY_LIMIT.
Пример использования для разных контуров:
SLEEP_DURATION_PROD=0
SLEEP_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
Настройка 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.RpaProjectLaunches
ltoolslicense
: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
.