Skip to Content

Подключение к Оркестратору

Подключение Idea Hub к Оркестратору позволяет получить информацию о:

  • проектах, их запусках — дату, среднюю длительность, общее количество запусков, количество успешных запусков, количество бизнес-ошибок и количество технических ошибок.
  • очередях, статистику обработки элементов — дату, среднюю длительность, общее количество обработанных элементов, количество успешно обработанных элементов, количество элементов, обработка которых завершилась с бизнес-ошибкой или технической ошибкой;
  • лицензиях и типах лицензий;
  • роботах;
  • машинах роботов.

Подключение к Оркестратору осуществляется с помощью скриптов из комплекта поставки Idea Hub. Скрипты находятся в папке ./scripts/orc-data-fetch/:

alt

  • 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

Общий процесс получения данных из Оркестратора выглядит так:

  1. Скрипт get_data.sh запускается по cron, создаёт каталоги контуров и складывает в них полученные данные из БД Оркестратора.
  2. Idea Hub запускается по cron и забирает данные из каталогов контуров. Важно: время запуска Idea Hub должно быть позже, чем время запуска get_data.sh.
  3. 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

  1. В папке \scripts\orc-data-fetch создайте копию файла .env.example с именем .env.
  2. Проверьте и настройте все переменные в файле .env. Окружения или контуры — это экземпляры Оркестратора. Если используется несколько контуров, то переменные в блоке контуров (Environments) необходимо продублировать, изменив имена и значения для необходимых контуров.
  3. Скрипт запускается из каталога Idea Hub с аргументом — именем контура. Например:
    ./scripts/orc-data-fetch/get_data.sh prod ./scripts/orc-data-fetch/get_data.sh test
  4. Запуск скрипта отдельно для каждого контура добавьте в crontab. Пример строки crontab, которая описывает запуск скриптов каждый день 1 раз в 3 часа 10 минут:
    10 3 * * * /var/www/ideahub/scripts/orc-data-fetch/get_data.sh prod > /dev/null 2>&1
  5. В 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 — значение параметра.

Пример заполнения переменных окружения для контура 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

  1. В файле config/settings.local.php добавьте/измените переменные в блоке Orch sync data variable.
  2. 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

  1. Создайте или выберите уже существующий каталог, из которого будет запускаться скрипт.

  2. Загрузите в этот каталог архив orc-data-fetch.25.2.1.windows.tar.gz.

  3. Перейдите в этот каталог и выполните команду:

    tar -zxvf orc-data-fetch.25.2.1.windows.tar.gz" -C .

    Точка в конце указывает, что файлы из архива будут распакованы в текущий каталог.

  4. Скопируйте .env.example в .env и пропишите в нем необходимые настройки. Настройки описаны в файле .env.example с помощью комментариев.

    При заполнении параметра USE_PASS помните, что для скрипта get_data.ps1 невозможно использовать утилиту pass, поэтому значение параметра должно быть 0.

  5. Откройте PowerShell и перейдите в каталог со скриптом.

  6. Запустите скрипт, указав в качестве аргумента имя окружения, например prod (от production):

    .\get_data.ps1 prod
  7. Результат работы скрипта в виде файлов формата CSV будет помещен в каталог c именем окружения (prod). Каталог будет создан по пути, описанном в конфигурационном файле .env в параметре OUTPUT_FOLDER. В общем случае это: /var/www/IdeaHub/private/import-source/sync.

  8. Перенесите файлы, через удобный для вас носитель, на сервер Idea Hub в каталог /private/import-source/sync/prod.

  9. После чего файлы можно будет импортировать в Idea Hub в автоматическом режиме с использованием утилиты cron, либо вручную со страницы настройки контура.

Что дальше

Следующий шаг — перейти в веб-интерфейс Idea Hub, чтобы создать контуры организации. К каждому контуру потребуется добавить источник импорта данных и указать время, по которому Idea Hub будет автоматически забирать данные из Оркестратора, которые собрал скрипт get_data.sh.