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

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

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

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

  • лицензиях и типах лицензий;

  • роботах;

  • машинах роботов.

Для подключения к Оркестратору в Linux-системах используется скрипт scripts/orc-data-fetch/get_data.sh, который входит в комплект поставки Idea Hub.

Скрипт может запускаться по расписанию с помощью утилиты-планировщика задач cron, позволяющей выполнять скрипты на сервере в назначенное время с заранее определенной периодичностью. Дополнительная информация по работе с cron содержится в документе Инструкция по работе с cron.

При подключении к БД Оркестратора могут использоваться пароли, зашифрованные с помощью утилиты pass. Дополнительная информация по установке и настройке pass содержится в этом разделе.

Процесс получения данных из Оркестратора

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

  1. Скрипт get_data.sh запускается по cron, создаёт каталоги контуров и складывает в них полученные данные из БД Оркестратора.

  2. Idea Hub запускается по cron и забирает данные из каталогов контуров. Важно: время запуска Idea Hub должно быть позже, чем время запуска get_data.sh.

  3. Idea Hub готов к отображению актуальных данных.

Требования к машине

Ниже указаны требования к машине, на которой будет запускаться скрипт get_data.sh. По умолчанию это та же машина сервера, на которой установлен Idea Hub.

Требования:

  • psql — утилита, которая позволяет взаимодействовать с базой данных PostgreSQL через командную строку;

  • cron — поставляется по умолчанию во всех системах Linux;

  • pass — менеджер паролей в ОС Linux;

  • Доступ к серверам, на которых размещены базы данных Оркестратора;

  • Пользователь, от имени которого будут выполняться запросы, должен иметь права только на чтение баз данных ltools и ltoolslicense — именно к ним будет обращаться скрипт. Потребуется доступ к следующим таблицам:

    • ltools:

      ltools.ExchangeQueues
      ltools.ExchangeQueueStatistics
      ltools.ExchangeQueueStatisticAvgs
      ltools.Robots
      ltools.RpaProjects
      ltools.Workers
      ltools.RpaProjectLaunches
    • ltoolslicense:

      ltoolslicense.Licenses

Описание папки scripts

В комплект поставки Idea Hub входит папка scripts/orc-data-fetch/ со следующими файлами:

  • .env.example — пример того, как может быть оформлен файл контура. Содержит информацию о параметрах скрипта get_data.sh.

  • .env.message — служебный файл, который обеспечивает работу скрипта get_data.sh. Не требует действий со стороны пользователя.

  • get_data.sh — скрипт для запуска, который создаёт на машине каталоги контуров и складывает в них полученные данные из БД Оркестратора.

  • get_data.func.sh — служебный файл, с которым не требуется осуществлять никаких действий.

Настройка скрипта get_data.sh

  1. В папке \scripts\orc-data-fetch сделайте копию файла .env.example с именем .env.

  2. Проверьте и настройте все переменные в файле .env. Окружения или контуры — это экземпляры Оркестратора. Если используется несколько контуров, то переменные в блоке контуров (Environments) необходимо продублировать, изменив имена и значения для необходимых контуров.

  3. Скрипт запускается с аргументом — именем контура. Например: ./get_data.sh prod, ./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

Параметры скрипта get_data.sh

Все параметры скрипта get_data.sh указаны в файле .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
---------- ...

Что дальше

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

Last updated

Was this helpful?