Перейти к содержанию

Внешняя система

В НОКе реализован базовый функционал ETL - возможность извлекать данные из внешней системы (Remote System) и на их основе создавать объекты в НОКе. На данный момент возможна загрузка следующих сущностей:

Кратко механизм выглядит так:

  1. Реализуется адаптера выгрузки extractor. Его задача - получить данные из внешней системы и отдать в виде списка полей, определённых в загрузчике Loader
  2. В интерфейсе настраивается Внешняя система и выбираются реализованные загрузчики
  3. После настройки даётся команда ./noc etl extract <remote_system_name>. Происходит извлечение информации из внешней системе (при помощи адаптера, написанного на шаге 1). Всё складывается в файлы import.csv.gz в директории /var/lib/noc/import/<remote_system_name>/<loader_name>/import.csv.gz
  4. Командой ./noc etl check <remote_system_name> проверяем целостность выгрузки
  5. Командой ./noc etl diff <remote_system_name> смотрим изменения относительно предыдущего файла выгрузки. В первым раз все объекты будут показаны как новые.
  6. Командой ./noc etl load <remote_system_name> заливаем данные в НОК (при этом создаются объекты соотв. загрузчику).

После окончания файл import.csv.gz перемещается в папку /var/lib/noc/import/<remote_system_name>/<loader_name>/arcive/import_date.csv.gz и файл mappings.csv дополняется связкой: ID внешней системы <-> ID НОКа. Также поля объектов Remote System, Remote ID - заполняются выгрузкой.

Info

Путь /var/lib/noc/import задаётся настройкой path -> etl_import

Работа с Внешней системой

Настройка внешней системы

Настройка начинается в пункте меню Основные (Main) -> Настройки (Setup) -> Внешние системы (Remote Systems). После нажатия на кнопку Add открывается форма создания внешней системы с пунктами:

  • Имя (Name) - имя внешней системы. Будет использоваться при работе с командой ETL. Желательно выбирать краткое и без пробелов.
  • Описание (Description) - описание (какой-нибудь текст)
  • Адаптер (Handler) - ссылка на адаптер выгрузки в виде строчки импорта питона.

    Н-р: noc.custom.etl.extractors.zabbix.ZBRemoteSystem рассчитывает, что файл лежит в custom по пути <custom_folder>/etl/extractor/zabbix.py

  • Extractors/Loaders - список доступных для моделей для загрузки. Требует реализацию в адаптере
  • Environment - настройки адаптера загрузки (передаются в него при работе)

Настройки интеграции

Также, в объектах, поддерживающих создание из механизма ETL присутствуют поля:

  • Внешняя система (Remote System) - это указание из какой внешней системы приехал объект
  • ИД во внешней системе (Remote ID) - текстовое поле, ID объекта во внешней системе

Note

Поля Remote System, Remote ID заполняются автоматически. Вносить изменения вручную не рекомендуется

После настройки внешней системы дальнейшая работа идёт с командой ./noc etl.

API для получения привязки с внешними системами

NBI Mappper