Управление интеграцией в R-Vision VM

Данный раздел содержит информацию об управлении интеграцией с файлами в R-Vision VM. Работа осуществляется в разделах Ресурсы → Переменные и Настройки → Интеграции → Интеграции ИБ-активов веб-интерфейса R-Vision VM.

Доступные действия над интеграцией:

Добавление интеграции

Один экземпляр интеграции позволяет импортировать только экземпляры одной сущности. Чтобы импортировать экземпляры нескольких разных сущностей, вы можете:

  • создать несколько экземпляров интеграции, по одному на каждую сущность;

  • при запуске интеграции вручную — менять настройки одного и того же экземпляра интеграции для каждой из сущностей.

Рекомендации по настройке импорта экземпляров нескольких связанных сущностей приведены в разделе Импорт экземпляров нескольких сущностей.

Чтобы добавить интеграцию R-Vision VM с файлами, выполните следующие действия:

  1. Перейдите в раздел Ресурсы → Переменные веб-интерфейса R-Vision VM.

  2. Добавьте переменную, которая будет хранить логин пользователя файлового сервера.

    Используется логин того же пользователя, который был создан на файловом сервере на этапе его настройки.

    Для этого:

    1. Нажмите на кнопку Создать (plus). Отобразится окно создания переменной.

    2. Укажите следующие параметры переменной:

      • ID — произвольный.

      • Название — произвольное.

      • Организация — организация, в рамках которой будет работать интеграция.

      • Описание — произвольное.

      • Секрет — установите переключатель в активное положение.

      • Тип — String.

      • Значение переменной — логин пользователя файлового сервера, созданного на этапе его настройки.

    3. Нажмите на кнопку Создать. Переменная будет создана и добавлена в список в разделе Ресурсы → Переменные. Система отобразит соответствующее уведомление.

  3. Аналогичным образом добавьте переменную, которая будет хранить пароль пользователя файлового сервера.

  4. Перейдите в раздел Настройки → Интеграции → Интеграции ИБ-активов веб-интерфейса R-Vision VM.

  5. Нажмите на кнопку plus и выберите из выпадающего списка опцию Интеграция с файлом. Отобразится окно создания интеграции.

  6. Выберите из выпадающего списка организацию, в которой будет работать интеграция.

    Организация должна совпадать с организацией, в которой созданы переменные для логина и пароля пользователя файлового сервера.
  7. Введите название интеграции. Название может быть произвольным.

  8. Введите доменное имя или IP-адрес файлового сервера.

  9. Если номер порта, по которому устанавливается соединение между R-Vision VM и файловым сервером, отличается от 445, введите его в поле Порт.

  10. В поле Логин выберите переменную с логином пользователя файлового сервера, добавленную на шаге 2.

  11. В поле Пароль выберите переменную с паролем пользователя файлового сервера, добавленную на шаге 3.

  12. В поле Путь к сетевой папке укажите абсолютный путь к файлам в сетевой папке, из которых будет импортироваться информация об объектах.

    Нельзя использовать двойную обратную косую черту (\\).

    В качестве пути можно указать:

    • Абсолютный путь к файлу, например: /reports/maxpatrol/assets.csv.

    • Путь к файлам с символом подстановки * в конце строки: например, /reports/maxpatrol/assets* или /reports/maxpatrol/*.

  13. В поле Тип файла выберите тип файлов, из которых будет импортироваться информация об объектах:

    • XLSX;

    • CSV;

    • JSON;

    • XML.

  14. Если импорт активов происходит из файлов типов JSON или XML, в поле Путь определения сущности укажите, по какому пути в JSON- или XML-файле находится массив данных об объектах.

    • Пример для JSON

    • Пример для XML

    Пусть на вход интеграции поступает следующий файл:

    {
      "asset": {
        "node": [
          {
            "deviceName": "Node1",
            "field": [
              {
                "name": "hostName",
                "value": "win81x64en01"
              },
              {
                "name": "ip_address",
                "value": "10.0.0.1"
              }]
          },
          {
            "deviceName": "Node2",
            "field": [
              {
                "name": "hostName",
                "value": "win81x64en02"
              },
              {
                "name": "ip_address",
                "value": "10.0.0.2"
              }]
          }
        ]
      }
    }

    В данном случае массив информации об узлах находится в свойстве asset.node.

    В качестве значения поля Путь определения сущности следует указать asset.node[*], чтобы интеграция извлекла все элементы массива.

    Пусть на вход интеграции поступает следующий файл:

    <?xml version="1.0" encoding="utf-8"?>
    <root>
      <devices>
        <device id="1">
          <deviceName>AD Controller</deviceName>
          <operatingSystem>Microsoft Windows Server 2025</operatingSystem>
          <nodeType>Контроллер домена Active Directory</nodeType>
          <ip_address name="Interface 1">
            10.0.0.1
          </ip_address>
        </device>
        <device id="2">
          <deviceName>Workstation</deviceName>
          <operatingSystem>Microsoft Windows 11</operatingSystem>
          <nodeType>Рабочая станция</nodeType>
          <ip_address name="Interface 2">
            10.0.0.2
          </ip_address>
        </device>
      </devices>
    </root>

    XML-файл будет конвертирован в JSON скриптом парсера, при этом атрибуты XML будут преобразованы в JSON-объект c ключом _attr_, а текст внутри тега — в объект с ключом _text_:

    {
      "root": {
        "devices": {
          "device": [
            {
              "_attr_": {
                "id": 1
              },
              "deviceName": "AD Controller",
              "operatingSystem": "Microsoft Windows Server 2025",
              "nodeType": "Контроллер домена Active Directory",
              "ip_address": {
                "_text_": "10.0.0.1",
                "_attr_": {
                  "name": "Interface 1"
                }
              }
            },
            {
              "_attr_": {
                "id": 2
              },
              "deviceName": "Workstation",
              "operatingSystem": "Microsoft Windows 11",
              "nodeType": "Рабочая станция",
              "ip_address": {
                "_text_": "10.0.0.2",
                "_attr_": {
                  "name": "Interface 2"
                }
              }
            }
          ]
        }
      }
    }

    В данном случае массив информации об узлах находится внутри тега root.devices.device.

    В качестве значения поля Путь определения сущности следует указать root.devices.device[*], чтобы интеграция извлекла все элементы массива.

    Если не заполнять поле Путь определения сущности, корневой элемент файла рассматривается как единственная сущность, из которой извлекаются значения полей.
  15. В таблицу Имена столбцов для external_id добавьте имена столбцов или пути к полям с уникальными идентификаторами импортируемых объектов в исходных файлах. Эти идентификаторы используются в NATS для однозначной идентификации объектов.

    Для каждого импортируемого файла следует указывать имя столбца или путь к полю в отдельной строке таблицы.
    Пример заполнения таблицы Имена столбцов для external_id

    Пусть задан путь к каталогу с файлами /files/file*. В этом каталоге есть два файла:

    • file1.csv;

    • file2.csv.

    В первом файле идентификаторы объектов находятся в столбце ID, во втором — в столбце identifier. В этом случае в таблицу Имена столбцов для external_id следует добавить два значения:

    • ID;

    • identifier.

  16. В поле Тип источника данных оставьте значение по умолчанию.

  17. В поле Группа воркеров укажите files_integration_worker_group.

  18. В поле Тип сущности (для отправки в шину) укажите идентификатор типа импортируемой сущности, который будет использоваться для передачи данных о ней в NATS. Идентификатор может быть произвольным.

    Рекомендуется выбирать имя идентификатора согласно бизнес-логике сущности. Например, для сущности Склад можно использовать идентификатор StorageType.
  19. В поле Пагинация введите максимальное количество объектов, выгружаемых системой из NATS и передаваемых в плейбук load за один раз.

    Значение поля Пагинация влияет только на количество объектов, одновременно обрабатываемых внутри системы. На количество объектов, выгружаемых из внешней системы, этот параметр не влияет.

  20. В поле Задержка отправки запросов введите интервал в секундах между повторными запросами к внешней системе, если запрос к ней завершился с ошибкой.

  21. В поле Число повторных попыток отправки данных введите максимальное количество повторных запросов к внешней системе, если запрос к ней завершился с ошибкой.

    Если достигнуто максимальное число повторных попыток отправки данных и все эти попытки завершились с ошибкой, запуск интеграции также будет прерван с ошибкой.
  22. Если требуется связать экземпляры сущности, которые вы импортируете, с экземплярами другой сущности, в таблице Связи (linkages) укажите, в каких столбцах или полях импортируемого файла находятся идентификаторы экземпляров другой сущности:

    1. В столбце Тип сущности (из шины) укажите идентификатор типа другой сущности, который будет использоваться для передачи данных о ней в NATS. Идентификатор может быть произвольным, соответствующим бизнес-логике сущности.

    2. В столбце Поле-идентификатор укажите имя столбца или поля, в котором хранятся идентификаторы экземпляров внешней сущности.

      Пример заполнения таблицы Связи (linkages)

      Пусть на вход интеграции поступает следующий файл:

      {
        "asset": {
          "node": [
            {
              "deviceName": "Node1",
              "hostName": "win81x64en01",
              "ip_address": "10.0.0.1",
              "admin_id": "1"
            },
            {
              "deviceName": "Node2",
              "hostName": "win81x64en02",
              "ip_address": "10.0.0.2",
              "admin-id": "2"
            }
          ]
        }
      }

      Необходимо связать хосты с учетными записями пользователей, которые являются их администраторами. В нотации JSONPath идентификаторы этих учетных записей находятся по пути asset.node[*].admin_id.

      Пусть в поле Путь определения сущности указано значение asset.node[*]. В таком случае в таблицу Связи (linkages) следует добавить следующую строку:

      Тип сущности (из шины) Поле-идентификатор

      AccountType

      admin_id

  23. Если вы импортируете экземпляры сущности, не являющейся типом ИБ-активов, добавьте новое правило нормализации в строку таблицы Правила нормализации.

    По умолчанию в таблицу Правила нормализации добавлены только правила нормализации данных об ИБ-активах.
    1. Если правило нормализации для импортируемой сущности не существует, создайте его согласно инструкции в разделе Настройка правил нормализации для интеграций.

    2. В таблицу Правила нормализации добавьте следующую строку:

      • Тип сущности — тип импортируемой сущности в NATS. Может быть произвольным, соответствующим бизнес-логике сущности.

      • ID схемы домена — идентификатор схемы домена, в которой определена импортируемая сущность.

      • ID сущности — идентификатор импортируемой сущности в схеме домена.

      • ID правила нормализации — идентификатор правила нормализации для сущности.

      • Зависимые типы — массив идентификаторов сущностей, для которых связь с текущей сущностью обязательна. Указывается как массив строк.

      Например, пусть требуется импортировать сущность Storage из домена storage.custom. Для этой сущности создано правило нормализации Storage.storage.custom. При этом в системе есть сущности Section и Shelf, которые обязательно должны быть связаны со Storage (секции и полки находятся на конкретном складе).

      Тогда строка правила нормализации Storage.storage.custom в таблице Правила нормализации может быть заполнена следующим образом:

      • Тип сущности — StorageType.

      • ID схемы домена — storage.custom.

      • ID сущности — Storage.

      • ID правила нормализации — Storage.storage.custom.

      • Зависимые типы — ["Section", "Shelf"].

  24. Если вы импортируете связи между сущностями, хотя бы одна из которых не является типом ИБ-активов, в таблицу Правила связывания добавьте по строке для каждой из таких связей.

    По умолчанию в таблицу Правила связывания добавлены только правила связывания ИБ-активов.

    Строки заполняются следующим образом:

    • ID домена связи — идентификатор схемы домена, в которой определена импортируемая связь.

    • ID связи — идентификатор импортируемой связи в схеме домена.

    • Тип сущности — тип импортируемой сущности в NATS. Может быть произвольным, соответствующим бизнес-логике сущности.

    • ID домена связываемой сущности — идентификатор схемы домена, в котором определена связываемая сущность.

    • ID связываемой сущности — идентификатор связываемой сущности в схеме домена.

    • Тип связываемой сущности — тип связываемой сущности в NATS. Может быть произвольным, соответствующим бизнес-логике сущности.

    • Тип сущности (левая сторона связи) — тип импортируемой сущности в NATS; укажите то же значение, что и в столбце Тип сущности.

    • Тип сущности (правая сторона связи) — тип связываемой сущности в NATS; укажите то же значение, что и в столбце Тип связываемой сущности.

    Например, пусть требуется импортировать сущность Storage из домена storage.custom, связанную с сущностью Device из домена isassets.rvision.ru и с сущностью Shelf из домена storage.custom.

    Тогда в таблицу Правила связывания следует добавить две строки:

    1. Для связи с сущностью Device:

      • ID домена связи — storage.custom.

      • ID связи — Storage_to_Device.

      • Тип сущности — StorageType.

      • ID домена связываемой сущности — isassets.rvision.ru.

      • ID связываемой сущности — Device.

      • Тип связываемой сущности — DeviceType.

      • Тип сущности (левая сторона связи) — StorageType.

      • Тип сущности (правая сторона связи) — DeviceType.

    2. Для связи с сущностью Shelf:

      • ID домена связи — storage.custom.

      • ID связи — Storage_to_Shelf.

      • Тип сущности — StorageType.

      • ID домена связываемой сущности — storage.custom.

      • ID связываемой сущности — Shelf.

      • Тип связываемой сущности — ShelfType.

      • Тип сущности (левая сторона связи) — StorageType.

      • Тип сущности (правая сторона связи) — ShelfType.

  25. Чтобы настроить расписание запуска интеграции, установите переключатель Запуск по расписанию в активное положение и выполните действия ниже.

  26. Выберите часовой пояс из выпадающего списка.

  27. Выберите формат расписания, на основании которого будет запускаться интеграция. Доступные форматы:

    • Cron-выражение;

    • Расписание.

  28. Если была выбрана опция Cron-выражение, задайте cron-выражение для запуска интеграции по расписанию.

    Указанное cron-выражение задает расписание для триггера, по которому выполняется интеграция. Вы можете ознакомиться с синтаксисом cron-выражений в разделе Работа с автоматизациями.
  29. Если была выбрана опция Расписание, выполните следующие шаги:

    1. Выберите режим запуска интеграции из выпадающего списка Запускать. Доступные режимы:

      • Каждый месяц;

      • Каждую неделю;

      • Каждый день;

      • Каждый час;

      • Каждую минуту.

    2. Если выбран режим запуска Каждый месяц, укажите следующие параметры:

      1. Интервал между запусками в месяцах.

      2. Дни месяца, в которые будет выполняться запуск, через запятую. Например: 1, 5, 10, 15, 20, 25, 30.

    3. Если выбран режим запуска Каждую неделю, выберите из выпадающего списка день недели, в который будет запускаться интеграция.

    4. Если выбран режим запуска Каждый день, Каждый час или Каждую минуту, укажите интервал между запусками в днях, часах или минутах соответственно.

    5. Если выбран любой режим запуска, кроме Каждую минуту, выберите интервал времени, в который будет запускаться интеграция.

      Доступны интервалы в 15 минут с 00:00 до 23:59.
  30. Нажмите на кнопку Добавить. Система создаст интеграцию и отобразит соответствующее уведомление. Новая интеграция отобразится в списке раздела.

Просмотр интеграции

Чтобы просмотреть настройки интеграции:

  1. Перейдите в раздел Настройки → Интеграции → Интеграции ИБ-активов веб-интерфейса R-Vision VM. Система отобразит список существующих интеграций.

  2. Нажмите на строку интеграции в списке. Система отобразит в правой части экрана карточку этой интеграции с подробной информацией о ней.

В верхней части карточки отображается название интеграции. Справа от названия расположена кнопка more vertical, при нажатии на которую открывается выпадающее меню с действиями, доступными для выбранной интеграции.

Карточка интеграции содержит следующие вкладки:

  • Основное — основная информация об интеграции.

  • Расширенные параметры — дополнительные параметры интеграции: связи полей, правила нормализации и связывания.

  • История — история изменений интеграции.

  • Конфигурация — тип источника данных, группа воркеров и тип сущности интеграции, а также настройки интенсивности обработки импортируемых объектов.

Вкладка Основное

На вкладке Основное отображаются основные сведения об интеграции и элементы управления ей:

  • Кнопка Запустить (play) позволяет запустить интеграцию вручную.

  • Организация — организация, в рамках которой работает интеграция.

  • Название — название интеграции.

  • Статус — статус последнего запуска интеграции:

    • Успешно;

    • Ошибка;

    • В процессе;

    • Отменена.

  • Секция Параметры подключения:

    • Адрес сервера — доменное имя или IP-адрес файлового сервера.

    • Порт — порт, по которому устанавливается соединение между R-Vision VM и файловым сервером.

    • Логин — имя переменной, которая хранит логин пользователя файлового сервера.

    • Пароль — имя переменной, которая хранит пароль пользователя файлового сервера.

    • Путь к сетевой папке — абсолютный путь к сетевой папке и файлам, из которых будет импортироваться информация об объектах.

    • Тип файла — тип файлов, из которых импортируется информация об объектах:

      • XLSX;

      • CSV;

      • JSON;

      • XML.

    • Путь определения сущности — путь в JSON- или XML-файле, по которому находится массив данных об объектах.

  • Таблица Имена столбцов для external_id содержит имена столбцов или пути к полям с уникальными идентификаторами импортируемых объектов в исходных файлах.

  • Секция Расписание:

    • Запуск по расписанию — определяет, происходят ли запуски интеграции по заданному расписанию.

    • Часовой пояс — часовой пояс для времени запуска интеграции.

    • Формат расписания — формат расписания для запуска интеграции. Доступные форматы:

      • Cron-выражение;

      • Расписание.

    • Cron-выражение — cron-выражение для запуска интеграции по расписанию.

      Данное поле отображается, только если в поле Формат расписания выбрана опция Cron-выражение.
      Указанное cron-выражение задает расписание для триггера, по которому выполняется интеграция. Вы можете ознакомиться с синтаксисом cron-выражений в разделе Работа с автоматизациями.
    • Запускать — режим запуска интеграции. Доступные значения:

      • Каждый месяц;

      • Каждую неделю;

      • Каждый день;

      • Каждый час;

      • Каждую минуту.

      Это и все последующие поля отображаются, только если в поле Формат расписания выбрана опция Расписание.
    • Интервал повторения — количество единиц времени между последовательными запусками интеграции.

    • Дни повторения (через запятую) — дни месяца, в которые будет выполняться запуск, через запятую. Отображается только для режима запуска Каждый месяц.

    • День недели — день недели, в который будет запускаться интеграция. Отображается только для режима запуска Каждую неделю.

    • Время запуска — время, в которое инициируется выполнение интеграции. Отображается для всех режимов запуска, кроме Каждую минуту.

      Доступны интервалы в 15 минут с 00:00 до 23:59.

Вкладка Расширенные параметры

Вкладка Расширенные параметры содержит дополнительные параметры интеграции:

  • Связи (linkages) — таблица столбцов или полей исходного файла, содержащих идентификаторы объектов, с которыми требуется связать импортируемые объекты.

  • Правила нормализации — таблица правил преобразования исходных данных об объектах в формат, который требуется для добавления информации об объектах в домен.

  • Правила связывания — таблица правил связывания экземпляров разных сущностей.

Вкладка История

Вкладка История отображает сведения о запусках интеграции, а также об изменениях ее настроек.

Вкладка Конфигурация

Вкладка Конфигурация содержит следующие поля:

  • Тип источника данных — в текущей версии интеграции всегда имеет значение integrationFile.

  • Группа воркеров — группа воркеров, на которой запускается интеграция — files_integration_worker_group.

  • Тип сущности (для отправки в шину) — идентификатор типа импортируемых объектов в NATS.

  • Пагинация — максимальное количество объектов, выгружаемых системой из NATS и передаваемых в плейбук load за один раз.

  • Задержка отправки запросов — интервал в секундах между повторными запросами к внешней системе, если запрос к ней завершился с ошибкой.

  • Число повторных попыток отправки данных — максимальное количество повторных запросов к внешней системе, если запрос к ней завершился с ошибкой.

Изменение интеграции

Вы можете изменить интеграцию следующими способами:

Удаление интеграции

Вы можете удалить интеграцию следующими способами:

Была ли полезна эта страница?

Обратная связь