Внешняя система¶
В НОКе реализован базовый функционал ETL - возможность извлекать данные из внешней системы (Remote System
) и на их основе создавать объекты в НОКе. На данный момент возможна загрузка следующих сущностей:
- Зоны ответственности Administrative Domain
- Объекты управления Managed Object
- Профили объектов Manged Object Profile
- Сегменты Segments
- Точки присутствия PoP
- Профили аутентификации (
Auth profile
) - Сервисы Services
- Абоненты Subscribers
- Линки (
Links
) - для построения связей по данным внешней системы NRI - Ресурсные группы Resource Group
Кратко механизм выглядит так:
- Реализуется адаптера выгрузки extractor. Его задача - получить данные из внешней системы и отдать в виде списка полей, определённых в
загрузчике
Loader - В интерфейсе настраивается
Внешняя система
и выбираются реализованныезагрузчики
- После настройки даётся команда
./noc etl extract <remote_system_name>
. Происходит извлечение информации из внешней системе (при помощи адаптера, написанного на шаге 1). Всё складывается в файлыimport.csv.gz
в директории/var/lib/noc/import/<remote_system_name>/<loader_name>/import.csv.gz
- Командой
./noc etl check <remote_system_name>
проверяем целостность выгрузки - Командой
./noc etl diff <remote_system_name>
смотрим изменения относительно предыдущего файла выгрузки. В первым раз все объекты будут показаны как новые. - Командой
./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.