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

Моделирование

Реестр атрибутов​

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

При создании атрибута нужно заполнить:

  • Название - системное название атрибута
  • Отображение - название атрибута, которое будет отображаться пользователю
  • Целевое использование - флаг, запрещающий редактирование атрибута
  • Шаблон - список сохраненных схем атрибута
  • Схема - схема данных атрибута

Название:

  • должно быть уникальным
  • может содержать только латинские символы, цифры или символ подчеркивания

Создание ТКЕ​

При создании ТКЕ нужно заполнить:

  • Родительский ТКЕ
  • Название
  • Отображение
  • Иконка
  • Цвет
  • Размер иконки

Название:

  • должно быть уникальным
  • может содержать только латинские символы, цифры или символ подчеркивания

Родительский ТКЕ нельзя менять после создания. Иконка и цвет влияют на отображение в CMDB.

Привязка атрибутов​

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

Атрибуты могут иметь модификаторы, которые изменяют поведение атрибута:

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

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

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

В качестве ресурсов выступают:

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

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

Привязка атрибута:

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

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

Наследование связей происходит аналогичным атрибутам образом.

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

Правила наименования определяют название, которые будет использовать КЕ при отображении. Правило наименования записывается в виде шаблона в текстовом виде. В качестве шаблонизатора применяется Jinja2. Переменные шаблона должны быть записаны в квадратных скобках [[ ]]. В шаблонизаторе доступны переменные:

  • attributes – атрибуты, доступные на ТКЕ. Во всех используемых в приложении шаблонизаторах, для переменных, доступны кастомные фильтры:
  • set_if_not_value – установить указанное значение при отсутствии значения у переменной, аргумент: значение которое
  • нужно использовать; [[attributes.name|set_if_not_value("значение которое нужно использовать")]]
  • skip_if_not_value – пропустить переменную при отсутствии у переменной значения (подставит пустую строку), аргументов нет; [[attributes.name|skip_if_not_value]]
  • datetimeformat – значение переменной в формате iso даты преобразовать в указанный формат, аргумент: строка с
  • форматом вывода даты (в виде кодов C стандарта), по умолчанию используется "%d %B %Y %H:%M"; [[attributes.date|datetimeformat]] [[attributes.date|datetimeformat("%d.%B.%Y")]]

При использовании в шаблонах переменных без значения будет возникать ошибка, последствия которой зависят от контекста в котором применяется шаблонизатор (пропущено какое-либо действие, возврат пользователю уведомления о ошибке и пр.)

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

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

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

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

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

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

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

Правила идентификации содержат критерии для определения всех возможных кандидатов на идентичность. Идентичными считаются КЕ, у которых любой из критериев вычисляется в true. Критерий это набор атрибутов соединенных через И. Если один из атрибутов не имеет значения, критерий вычисляется в false. Критерии соединяются через ИЛИ.

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

Кратко поведение правил иденитфикации можно запомнить так:

  • Атрибуты в строке соединены через И
  • Строки соединены через ИЛИ
к сведению

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

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

Связи между конфигурационными единицами (КЕ) в CMDB идентифицируются на основе их атрибутов. Правила разрешения конфликтов:

  1. Идентичные связи – если у двух связей одинаковый набор атрибутов и их значений, они считаются одной и той же связью.
  2. Частичное совпадение атрибутов – недостаточно для идентичности связи.
  3. Связи без атрибутов – если у связи нет атрибутов, то между парой КЕ может существовать только одна связь данного типа.

Примеры идентификации связей​

1. Связи с атрибутами​

Пример 1:

  • Связь 1: Зависит от (Сервер → База данных)
    • Атрибуты:
      • Тип зависимости = "Высокая"
      • Время ответа = "200 мс"
  • Связь 2: Зависит от (Сервер → База данных)
    • Атрибуты:
      • Тип зависимости = "Высокая"
      • Время ответа = "200 мс"
        Вывод: Связи идентичны, так как все атрибуты совпадают.

Пример 2:

  • Связь 1: Соединен с (Свитч → Сервер)
    • Атрибуты:
      • Порт = "eth0"
      • Скорость = "1 Гбит/с"
  • Связь 2: Соединен с (Свитч → Сервер)
    • Атрибуты:
      • Порт = "eth1"
      • Скорость = "1 Гбит/с"
        Вывод: Связи разные, так как атрибут Порт отличается.
2. Связи без атрибутов​

Пример 3:

  • Связь 1: Использует (Приложение → Сервер) (без атрибутов)
  • Связь 2: Использует (Приложение → Сервер) (без атрибутов)
    Вывод: Связи конфликтуют, так как между парой КЕ может быть только одна связь данного типа без атрибутов.

Пример 4:

  • Связь 1: Размещен на (Виртуальная машина → Физический сервер) (без атрибутов)
  • Связь 2: Размещен на (Виртуальная машина → Физический сервер)
    • Атрибуты:
      • Тип размещения = "Основной"
        Вывод: Связи не конфликтуют, так как у второй связи есть атрибуты.

Итоговые правила​

СитуацияРезультат
Одинаковые атрибуты и значенияОдна связь
Разные атрибуты или значенияРазные связи
Нет атрибутовТолько одна связь данного типа