Перейти к основному содержимому
Версия: 2.4

Типы КЕ

Тип конфигурационной единицы (ТКЕ) определяет класс ресурса в системе. При его создании задаются базовые настройки:

  • Родительский ТКЕ — определяет место в иерархии для наследования свойств (после создания ТКЕ изменить родителя нельзя).
  • Название — системное имя ТКЕ (уникальное, только латиница, цифры и символ _).
  • Отображение — пользовательское название ТКЕ.
  • Иконка, Цвет и Размер иконки — визуальные настройки, определяющие, как экземпляры данного ТКЕ будут отображаться на графах и в таблицах CMDB.

Привязка атрибутов и модификаторы​

Свойства ТКЕ определяются через атрибуты, которые добавляются на вкладке «Атрибуты». Один и тот же атрибут может быть привязан к конкретному ТКЕ только один раз. Привязка автоматически распространяется на всех наследников.

Для каждого привязанного атрибута можно настроить модификаторы, которые меняют его поведение в рамках данного ТКЕ:

  • Обязательный — экземпляр КЕ не может быть сохранен, если это поле не заполнено.
  • Редактируемый — пользователь может изменять значение атрибута вручную.
  • Скрытый — атрибут используется системой, но не отображается пользователю в интерфейсе.
  • Сохранять историю — Памир будет вести версионирование и хранить историю всех изменений данного атрибута.
  • Изменить схему атрибута — позволяет локально переопределить JSON-схему атрибута для конкретного ТКЕ.

Наследование в CMDB​

Наследование — это механизм автоматического распространения настроек от родительских Типов КЕ к дочерним. Это упрощает администрирование модели данных, снижает дублирование и обеспечивает согласованность архитектуры.

По наследству передаются следующие компоненты:

  • Атрибуты;
  • Допустимые связи;
  • Правила именования;
  • Правила идентификации.

Алгоритм наследования атрибутов​

  1. Распространение сверху вниз: Атрибуты, привязанные к родительскому ТКЕ, автоматически появляются на всех его дочерних ТКЕ. Вновь созданные дочерние типы также сразу получают весь набор родительских атрибутов.

  2. Наследование обработчиков: Если к атрибуту привязаны Фетчеры или Парсеры, их настройки также наследуются. При этом дочерний ТКЕ получает не копию настройки, а прямую ссылку на родительский элемент.

  3. Разрешение конфликтов: Возможна ситуация, когда к родительскому ТКЕ привязывается атрибут, который уже был ранее вручную добавлен к одному из дочерних ТКЕ. В этом случае существующий локальный атрибут дочернего ТКЕ станет зависимым от вновь созданного родительского.

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

Примечание: Алгоритм наследования связей работает полностью аналогичным образом.

Правила наименования​

Правила наименования автоматически формируют удобочитаемое имя для экземпляра КЕ на основе его атрибутов.

Правило задается в виде текстового шаблона с использованием синтаксиса Jinja2. Переменные в шаблоне заключаются в двойные квадратные скобки: [[ ]]. Основная доступная переменная — attributes (обращение к значениям атрибутов КЕ).

Кастомные фильтры Jinja2: Для гибкой настройки вывода значений в системе предусмотрены специальные фильтры:

  • set_if_not_value — подставляет указанный текст, если сам атрибут пуст. Пример: [[attributes.name|set_if_not_value("Имя не задано")]]
  • skip_if_not_value — игнорирует переменную (подставляет пустую строку), если её значение отсутствует. Пример: [[attributes.name|skip_if_not_value]]
  • datetimeformat — преобразует дату в формате ISO в читаемый вид (по умолчанию %d %B %Y %H:%M). Формат задается кодами стандарта C. Пример: [[attributes.date|datetimeformat("%d.%m.%Y")]]

Важно: Если в шаблоне используется переменная без значения (и без фильтров обработки пустоты), система сгенерирует ошибку. Последствия зависят от контекста применения правила.

Правила идентификации​

Правила идентификации защищают систему от появления дубликатов. Они определяют условия, при которых два экземпляра КЕ считаются одним и тем же объектом.

Принцип работы:

  1. Задание условия — настраивается логическое правило на основе совпадения атрибутов.
  2. Проверка — при создании или изменении КЕ система ищет в базе данных (БДКЕ) совпадения по этому правилу.
  3. Объединение — если дубликат найден, система автоматически объединяет записи или предлагает сделать это пользователю.

Влияние композиции:

  • Для композируемых КЕ (входящих в состав другой КЕ) поиск дубликатов идет только внутри родительского объекта.
  • Для самостоятельных КЕ проверка выполняется глобально по всей базе данных.
к сведению

В поиске конфликтов и дубликатов также участвуют КЕ, которые были помечены к удалению.

Структура правила​

Правило состоит из критериев. Если хотя бы один критерий истинен (true), КЕ считаются идентичными. Критерий — это набор атрибутов. Если хотя бы один атрибут в критерии пуст, весь критерий возвращает false.

В графическом интерфейсе логика строится следующим образом:

  • Атрибуты внутри одной строки (критерия) соединены логическим оператором И (должны совпадать все).
  • Отдельные строки (критерии) соединены логическим оператором ИЛИ (должна совпасть хотя бы одна строка).

Идентификация связей между КЕ​

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

Правила разрешения конфликтов связей:

  1. Связи с атрибутами:
  • Идентичны: Если у двух связей между одними и теми же КЕ полностью совпадает набор атрибутов и их значений. (Пример: Связь «Зависит от» со значениями Тип=Высокая и Время=200мс).
  • Различны: Если хотя бы один атрибут или его значение отличается. В этом случае между двумя КЕ будут существовать две параллельные связи. (Пример: Два кабеля в разные порты eth0 и eth1).
  1. Связи без атрибутов:
  • Если у связи нет атрибутов, между парой конкретных КЕ может существовать только одна связь данного типа. Попытка создать вторую такую же вызовет конфликт.

Сводная таблица логики связей:

СитуацияРезультат в CMDB
Одинаковые атрибуты и их значенияБудет создана/оставлена одна связь
Разные атрибуты или их значенияБудут созданы разные (параллельные) связи
У связей нет атрибутовДопускается только одна связь данного типа

Рекомендации по созданию ТКЕ​

При проектировании ресурсной модели рекомендуется создавать новые ТКЕ как дочерние элементы по отношению к базовому типу «Конфигурационная единица». Это обеспечивает автоматическое наследование системных свойств и упрощает дальнейшее администрирование.

Если ТКЕ создается в корне иерархии (на одном уровне с базовой «Конфигурационной единицей»), необходимо учитывать следующие особенности:

  • Настройка доступа: Созданный в корне ТКЕ не наследует общие права. Его необходимо вручную добавить в соответствующие Правила доступа, иначе экземпляры этого типа не будут отображаться у пользователей.
  • Идентификация и наименование: Для корневого ТКЕ необходимо с нуля настроить Правила идентификации и Правила наименования, так как базовые шаблоны не будут применены автоматически.
  • Создание в корне: Чтобы при создании ТКЕ не выбирать родителя и оставить тип в корне иерархии, в окне выбора родительского ТКЕ выберите любую существующую запись, а затем повторно нажмите на неё же («выбранную»), чтобы снять выделение. Когда поле станет пустым, ТКЕ будет определен как корневой.
подсказка

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

Экспорт и импорт Типов КЕ​

Раздел Типы КЕ предназначен для управления структурой и компонентной базой ресурсной модели системы. Экспорт Типов КЕ позволяет выгрузить настроенную структуру данных для переноса на другой стенд или для включения в Пакет конфигураций.

Расположение в системе: В левом боковом меню перейдите по пути: Главная → Настройки → CPM → Типы КЕ.

Особенности экспорта и структура конфигурации (JSON)​

При выгрузке Типа КЕ формируется единый JSON-документ, который включает в себя абсолютно все компоненты, относящиеся к данному типу.

Краткая структура выгружаемого JSON-файла: Файл состоит из трех основных массивов данных:

  1. "links" — содержит перечень используемых типов связей (например, association).
  2. "attributes" — глобальный реестр всех атрибутов, задействованных в выгружаемых ТКЕ. Здесь описывается их системное имя, ярлык (label) и схема данных (тип строки, даты, текста и т.д.).
  3. "cits" — массив самих Типов КЕ. Внутри каждого ТКЕ содержатся:
  • Базовые настройки (имя, иконка, цвет, родительский ТКЕ для наследования).
  • Привязка атрибутов к данному ТКЕ (настройки отображения, парсеры).
  • Доступные связи (какие объекты можно связывать с данным ТКЕ).
  • Правила именования (name_template) и идентификации (rule).

Порядок действий для экспорта:

  1. В левой панели реестра найдите нужные Типы КЕ. Для удобства можно использовать строку поиска или раскрывать древовидную иерархию.
  2. Чтобы выделить нужные элементы, раскройте выпадающее меню «Добавить» и активируйте переключатель «Выбор». Рядом с элементами дерева появятся чекбоксы.
  3. Отметьте галочками один или несколько Типов КЕ.

    Примечание: При экспорте нет необходимости вручную выбирать все связанные Типы КЕ. Вы можете выгрузить только интересующий вас ресурс, игнорируя его связи.

  4. Снова откройте меню «Добавить» и нажмите «Экспорт». Файл .json будет сохранен на ваш компьютер.

Импорт Типов КЕ и разрешение конфликтов​

Импорт файлов Типов КЕ (как напрямую через кнопку «Импорт» в меню «Добавить», так и через загрузку Пакета конфигураций) имеет строгую системную логику для защиты консистентности базы данных.

Интерфейс импорта состоит из трех шагов:

Шаг 1. Загрузка​

  • В открывшемся окне нажмите «Выбрать файл» и прикрепите подготовленный JSON-документ.
  • После загрузки в окне появится встроенный редактор/просмотрщик кода. Вы можете просмотреть структуру импортируемого JSON-файла перед дальнейшими действиями.
  • Нажмите синюю кнопку «Анализировать» в правом нижнем углу.

(Важно: В ходе анализа система ищет связанные ТКЕ в импортируемых файлах и уже существующие в системе. Если связанного ТКЕ нет ни там, ни там — возникнет ошибка валидации).

Шаг 2. Анализ​

На этом шаге система выводит таблицу со списком импортируемых сущностей (ТКЕ и их Атрибутов) и подсвечивает статусы. Если сущность из файла уже есть в системе, статус будет обозначен как «Конфликт» (желтый значок предупреждения).

Вам необходимо выбрать действие для каждого конфликта (поля, требующие внимания, подсвечены красной рамкой):

  • Для Типов CI (ТКЕ): Во избежание неконсистентности между существующим и импортируемым ТКЕ доступна только одна опция — «Заменить существующий». Она приведет к полной замене всех компонентов ТКЕ на те, которые были в файле импорта.
  • Для Атрибутов: Импортируемые атрибуты добавляются в собственный независимый реестр. Если атрибут уже существует в системе, для него доступно действие «Пропустить действие». Атрибуты из нескольких ТКЕ не создают дубликаты, система просто привязывает один и тот же атрибут к нескольким ресурсам.
  • Некоторые системные атрибуты (например, Наименование КЕ или Конфигурация) не могут быть изменены.

Когда для всех конфликтов будут выбраны действия (красные рамки исчезнут), кнопка «Импорт» станет активной.

Шаг 3. Результат​

После нажатия кнопки импорта система применит выбранные действия. На финальном экране вы сможете отследить статус обновления ресурсов (успешно или ошибка).

Связанные разделы​