Внешняя система¶
В НОКе реализован базовый функционал 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.