Типы КЕ
Тип конфигурационной единицы (ТКЕ) определяет класс ресурса в системе. При его создании задаются базовые настройки:
- Родительский ТКЕ — определяет место в иерархии для наследования свойств (после создания ТКЕ изменить родителя нельзя).
- Название — системное имя ТКЕ (уникальное, только латиница, цифры и символ
_). - Отображение — пользовательское название ТКЕ.
- Иконка, Цвет и Размер иконки — визуальные настройки, определяющие, как экземпляры данного ТКЕ будут отображаться на графах и в таблицах CMDB.
Привязка атрибутов и модификаторы
Свойства ТКЕ определяются через атрибуты, которые добавляются на вкладке «Атрибуты». Один и тот же атрибут может быть привязан к конкретному ТКЕ только один раз. Привязка автоматически распространяется на всех наследников.
Для каждого привязанного атрибута можно настроить модификаторы, которые меняют его поведение в рамках данного ТКЕ:
- Обязательный — экземпляр КЕ не может быть сохранен, если это поле не заполнено.
- Редактируемый — пользователь может изменять значение атрибута вручную.
- Скрытый — атрибут используется системой, но не отображается пользователю в интерфейсе.
- Сохранять историю — Памир будет вести версионирование и хранить историю всех изменений данного атрибута.
- Изменить схему атрибута — позволяет локально переопределить JSON-схему атрибута для конкретного ТКЕ.
Наследование в CMDB
Наследование — это механизм автоматического распространения настроек от родительских Типов КЕ к дочерним. Это упрощает администрирование модели данных, снижает дублирование и обеспечивает согласованность архитектуры.
По наследству передаются следующие компоненты:
- Атрибуты;
- Допустимые связи;
- Правила именования;
- Правила идентификации;
- Срок хранения удалённых КЕ.
Алгоритм наследования атрибутов
-
Распространение сверху вниз: Атрибуты, привязанные к родительскому ТКЕ, автоматически появляются на всех его дочерних ТКЕ. Вновь созданные дочерние типы также сразу получают весь набор родительских атрибутов.

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

-
Удаление: Отвязать унаследованный атрибут напрямую в дочернем ТКЕ нельзя. Удаление возможно только на уровне родительского ТКЕ, после чего атрибут автоматически исчезнет со всех дочерних элементов.
Примечание: Алгоритм наследования связей работает полностью аналогичным образом.
Карта ТКЕ
Над вкладками выбранного ТКЕ показывается блок «Карта ТКЕ» — граф его связей: с какими ТКЕ он может быть связан и какими типами связей. Граф только показывает связи — добавляются и меняются они на вкладке «Доступные связи». Щелчок по связи открывает эту вкладку у ТКЕ, где связь задана, щелчок по другому ТКЕ выбирает его в дереве.
Раскладка графа постоянная: предки — над выбранным ТКЕ, наследники — под ним, входящие связи — слева, остальные связанные ТКЕ — справа. В заголовке блока — число исходящих (и из них унаследованных) и входящих связей выбранного ТКЕ; оно видно и в свёрнутой карте. Легенда обозначений — под графом.
Обозначения. Все связи рисуются одним цветом и различаются линией и стрелками:
| Обозначение | Значение |
|---|---|
| Сплошная линия со стрелкой у приёмника | Ассоциация |
| Белый ромб у источника | Агрегация |
| Чёрный ромб у источника | Композиция |
| Точечная линия с кружком у приёмника | Зависимость |
| Сплошная линия с белым треугольником у родителя | Наследование ТКЕ |
| Пунктирная линия с пометкой «↑ ТКЕ» | Связь, унаследованная от указанного предка |
Обозначения связей те же, что на графе КЕ.
Числа на графе. Над ТКЕ выводится число его действующих КЕ, у ТКЕ с наследниками — ещё и число КЕ вместе с наследниками, а если есть помеченные к удалению КЕ — их число. На связи выводится число связей между КЕ источника и его наследников — то же, что в таблице на вкладке «Доступные связи». Связь, по которой не связана ни одна КЕ, подписана нулём. Числа от 100 000 сокращаются, точное значение и число помеченных к удалению связей — в подсказке при наведении.
Настройки карты:
| Настройка | По умолчанию | Что делает |
|---|---|---|
| «Путь до корня» | Выключена | Показывает всех предков до корня дерева. Без неё показывается только родитель. У корневого ТКЕ недоступна |
| «Унаследованные связи» | Включена | Показывает связи, которые выбранный ТКЕ получил от предков |
| «Наследники» | Выключена | Показывает всех наследников выбранного ТКЕ и их связи. У корневого ТКЕ это карта всей модели |
Настройки, свёрнутость и высота карты запоминаются в браузере и действуют для всех ТКЕ.
Связь предка хранится у каждого наследника отдельной копией (см. Наследование в CMDB), поэтому граф не повторяет одни и те же связи:
- у наследников показываются только связи, которых нет у их родителя, — остальное объясняет линия наследования;
- входящая связь показывается одна, от верхнего ТКЕ ветки, у которого она есть. Если копии этой связи есть у его наследников, у ТКЕ стоит пометка «+N наследников», а число связей КЕ по каждому из них видно в подсказке.
Правила наименования
Правила наименования автоматически формируют удобочитаемое имя для экземпляра КЕ на основе его атрибутов.
Правило задается в виде текстового шаблона с использованием синтаксиса 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")]]
Важно: Если в шаблоне используется переменная без значения (и без фильтров обработки пустоты), система сгенерирует ошибку. Последствия зависят от контекста применения правила.
Правила идентификации
Правила идентификации защищают систему от появления дубликатов. Они определяют условия, при которых два экземпляра КЕ считаются одним и тем же объектом.
Принцип работы:
- Задание условия — настраивается логическое правило на основе совпадения атрибутов.
- Проверка — при создании или изменении КЕ система ищет в базе данных (БДКЕ) совпадения по этому правилу.
- Объединение — если дубликат найден, система автоматически объединяет записи или предлагает сделать это пользователю.
Влияние композиции:
- Для композируемых КЕ (входящих в состав другой КЕ) поиск дубликатов идет только внутри родительского объекта.
- Для самостоятельных КЕ проверка выполняется глобально по всей базе данных.
В поиске конфликтов и дубликатов также участвуют КЕ, которые были помечены к удалению.
Структура правила
Правило состоит из критериев. Если хотя бы один критерий истинен (true), КЕ считаются идентичными.
Критерий — это набор атрибутов. Если хотя бы один атрибут в критерии пуст, весь критерий возвращает false.
В графическом интерфейсе логика строится следующим образом:
- Атрибуты внутри одной строки (критерия) соединены логическим оператором
И(должны совпадать все). - Отдельные строки (критерии) соединены логическим оператором
ИЛИ(должна совпасть хотя бы одна строка).
Идентификация связей между КЕ
Помимо самих ресурсов, CMDB отслеживает уникальность связей между ними. Связи идентифицируются на основе их типа и заполненных атрибутов.
Правила разрешения конфликтов связей:
- Связи с атрибутами:
- Идентичны: Если у двух связей между одними и теми же КЕ полностью совпадает набор атрибутов и их значений. (Пример: Связь «Зависит от» со значениями
Тип=ВысокаяиВремя=200мс). - Различны: Если хотя бы один атрибут или его значение отличается. В этом случае между двумя КЕ будут существовать две параллельные связи. (Пример: Два кабеля в разные порты
eth0иeth1).
- Связи без атрибутов:
- Если у связи нет атрибутов, между парой конкретных КЕ может существовать только одна связь данного типа. Попытка создать вторую такую же вызовет конфликт.
Сводная таблица логики связей:
| Ситуация | Результат в CMDB |
|---|---|
| Одинаковые атрибуты и их значения | Будет создана/оставлена одна связь |
| Разные атрибуты или их значения | Будут созданы разные (параллельные) связи |
| У связей нет атрибутов | Допускается только одна связь данного типа |
Срок хранения удалённых КЕ
Удаление КЕ выполняется в два этапа: сначала КЕ помечается к удалению, и только потом физически удаляется из базы (см. Процесс обогащения). Сколько времени КЕ проводит между этими этапами, задаётся на вкладке «Хранение» соответствующего ТКЕ.
До конца срока КЕ можно вернуть: если обогащение снова обнаружит её, она восстановится вместе с идентификатором, историей и связями. После физического удаления восстановление невозможно.
Что настраивается:
| Параметр | Значение |
|---|---|
| «Удалять по сроку» | Число суток, которое КЕ хранится после пометки к удалению. Допустим 0 — тогда КЕ удаляется при ближайшем запуске задачи, а восстановление при обогащении фактически отключается |
| «Хранить бессрочно» | КЕ этого ТКЕ физически не удаляются |
| «Разрешить переопределение» | Пока выключено, срок берётся у родительского ТКЕ и меняется вместе с ним |
Срок нового ТКЕ копируется у родителя. У корневого ТКЕ родителя нет, поэтому при создании берётся значение переменной CI_KEEP_DAYS сервиса СРМ (см. Cервис СРМ); на уже существующие ТКЕ изменение этой переменной не влияет.
Если КЕ входит в композицию, она физически удаляется тогда же, когда удаляется композирующая КЕ, — независимо от собственного срока и режима «Хранить бессрочно». Заданный на вкладке срок применяется только к тем КЕ, которые были удалены отдельно от владельца.
Пометка всех КЕ. Кнопка «Пометить все к удалению» помечает к удалению все действующие КЕ выбранного ТКЕ — вместе с их составными частями. Физически КЕ при этом не удаляются: они уходят по сроку, заданному выше, или сразу кнопкой «Удалить сейчас». Уже помеченные КЕ остаются как есть — их срок хранения не начинается заново, поэтому повторная пометка не продлевает им жизнь.
Перед пометкой система показывает её состав: сам ТКЕ, дочерние ТКЕ (только если включён флажок «Пометить КЕ в дочерних ТКЕ», по умолчанию он выключен) и ТКЕ составных частей, КЕ которых уйдут вместе с владельцем. Числа в составе считаются тем же обходом композиции, которым выполняется пометка, поэтому итог совпадает с числом помеченных КЕ. Подтверждается пометка вводом системного имени ТКЕ — того, что задано в поле «Название».
И пометка всех КЕ, и «Удалить сейчас» требуют права на редактирование каждой затронутой КЕ по правилам доступа к CMDB. Если хотя бы одну КЕ менять нельзя, операция не выполняется целиком; для пометки диалог показывает это заранее и не даёт её подтвердить.
Немедленное удаление. Кнопка «Удалить сейчас» физически удаляет все помеченные КЕ выбранного ТКЕ, не дожидаясь окончания срока. Флажок «Удалить КЕ в дочерних ТКЕ» по умолчанию выключен: без него КЕ типов-наследников остаются на месте. Составные части удаляемых КЕ уходят в любом случае.
Само физическое удаление выполняет общая для всех ТКЕ фоновая задача delete_marked_cis, её периодичность настраивается на странице Периодические задания.
Рекомендации по созданию ТКЕ
При проектировании ресурсной модели рекомендуется создавать новые ТКЕ как дочерние элементы по отношению к базовому типу «Конфигурационная единица». Это обеспечивает автоматическое наследование системных свойств и упрощает дальнейшее администрирование.
Если ТКЕ создается в корне иерархии (на одном уровне с базовой «Конфигурационной единицей»), необходимо учитывать следующие особенности:
- Настройка доступа: Созданный в корне ТКЕ не наследует общие права. Его необходимо вручную добавить в соответствующие Правила доступа, иначе экземпляры этого типа не будут отображаться у пользователей.
- Идентификация и наименование: Для корневого ТКЕ необходимо с нуля настроить Правила идентификации и Правила наименования, так как базовые шаблоны не будут применены автоматически.
- Создание в корне: Чтобы при создании ТКЕ не выбирать родителя и оставить тип в корне иерархии, в окне выбора родительского ТКЕ выберите любую существующую запись, а затем повторно нажмите на неё же («выбранную»), чтобы снять выделение. Когда поле станет пустым, ТКЕ будет определен как корневой.
Используйте создание в корне только для уникальных классов объектов, которые архитектурно не могут быть наследниками стандартной Конфигурационной единицы.
Экспорт и импорт Типов КЕ
Раздел Типы КЕ предназначен для управления структурой и компонентной базой ресурсной модели системы. Экспорт Типов КЕ позволяет выгрузить настроенную структуру данных для переноса на другой стенд или для включения в Пакет конфигураций.
Расположение в системе:
В левом боковом меню перейдите по пути: Главная → Настройки → CPM → Типы КЕ.
Особенности экспорта и структура конфигурации (JSON)
При выгрузке Типа КЕ формируется единый JSON-документ, который включает в себя абсолютно все компоненты, относящиеся к данному типу.
Краткая структура выгружаемого JSON-файла: Файл состоит из трех основных массивов данных:
"links"— содержит перечень используемых типов связей (например, association)."attributes"— глобальный реестр всех атрибутов, задействованных в выгружаемых ТКЕ. Здесь описывается их системное имя, ярлык (label) и схема данных (тип строки, даты, текста и т.д.)."cits"— массив самих Типов КЕ. Внутри каждого ТКЕ содержатся:
- Базовые настройки (имя, иконка, цвет, родительский ТКЕ для наследования).
- Привязка атрибутов к данному ТКЕ (настройки отображения, парсеры).
- Доступные связи (какие объекты можно связывать с данным ТКЕ).
- Правила именования (
name_template), идентификации (rule) и срок хранения удалённых КЕ (delete_policy).
Порядок действий для экспорта:
- В левой панели реестра найдите нужные Типы КЕ. Для удобства можно использовать строку поиска или раскрывать древовидную иерархию.
- Чтобы выделить нужные элементы, раскройте выпадающее меню «Добавить» и активируйте переключатель «Выбор». Рядом с элементами дерева появятся чекбоксы.
- Отметьте галочками один или несколько Типов КЕ.
Примечание: При экспорте нет необходимости вручную выбирать все связанные Типы КЕ. Вы можете выгрузить только интересующий вас ресурс, игнорируя его связи.
- Снова откройте меню «Добавить» и нажмите «Экспорт». Файл
.jsonбудет сохранен на ваш компьютер.
Импорт Типов КЕ и разрешение конфликтов

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

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