Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Register
  • Sign in
  • N noc
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
    • Locked files
  • Issues 440
    • Issues 440
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Merge requests 18
    • Merge requests 18
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Container Registry
    • Terraform modules
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • External wiki
    • External wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • noc
  • noc
  • Issues
  • #844
Closed
Open
Issue created Jul 03, 2018 by Dmitry Volodin@dvOwner

Произвольные связи между ресурсами (расширение logical inventory)

Одним из необходмых элементов логического inventory является возможность организовывать типизированные связи между различными логическими ресурсами. На настоящий момент NOC поддерживает следующие типы логических ресурсов:

  • ManagedObject
  • Address
  • Prefix
  • Interface
  • SubInterface
  • Service
  • Subscriber
  • VLAN
  • VPN
  • Peer
  • DNS Zone

Каждый тип логических ресурсов (в короткой перспективе) находится в одном из конечных состояний и интегрируется с workflow

Технология

Абстракция, определяющая тип связи и область его применимости. Стартовый набор технологий поставляется в коллекциях.

Коллекця technologies:

  • id
  • name
  • uuid
  • description
  • service_model - название модели ресурса (i.e. sa.ManagedObject), которые учевствуют в оказании сервиса. Пустое значение - запрет на включение в роли сервиса
  • client_model - название модели ресурса (по аналогии с .service_model), которые потребляют сервис. Пустое значение - запрет на включение в ролии ресурса
  • single_service - сервисный ресурс может быть только в одной группе с данной технологией
  • single_client - клиентский ресурс может быть только в одной группе с данной технологией
  • allow_children - может быть группирующим элементом

Технологию можно сформулировать как утверждение:

Набор service_model делает name для набора client_model

Или, в вырожденном случае (пустой client_model:

Набор service_model делает name

Группировка ресурсов

Ресурсы объединяются в группы (ResourceGroup). Ресурс может входить в группу либо как сервисный (модель совпадает с .service_model), либо как клиентский (модель совпадает с .client_model), но не в обеих ролях сразу. С учетом ограничений single_* ресурс может входить в произвольное количество групп. Ресурс может входить в группу как статически (руками или через выгрузку), так и динамически (через правила классификации)

Для удобства навигации группы могут образовывать иерархию (лес) через группирующие элементы

Модель ResourceGroup

  • id
  • name
  • description
  • parent - ссылка на родителя
  • technology - ссылка на технологиию
  • alarm_weight
    • threshold - Порог
    • weight - аварийный вес

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

Правила классификации

Используются для вычисления динамических групп @todo

Интеграция ресурсов и групп

Все модели ресурсов, подлежащих группировке, должны иметь следующие поля

  • .static_service_groups - массив групп, заданный вручную. Ресурс выступает как сервис
  • .static_client_groups - массив групп, заданный вручную. Ресурс выступает как клиент
  • .dynamic_service_groups - массив групп, посчитанный по правилам классификации. Ресурс выступает как сервис
  • .dynamic_client_groups - массив групп, посчитанный по правилам классификации. Ресурс выступает как клиент
  • .effective_service_groups - эффективный массиив для сервисных групп, включая группирующие элементы. Просчитывается автоматически при сохранении
  • .effective_client_groups - эффективный массиив для клиентских групп, включая группирующие элементы. Просчитывается автоматически при сохранении

Статические группы имеют приоритет над динамическиими при просчете ограничений

Примеры технологий

Group

Группирующий элемент

Поле Значение
service_model None
client_model None
single_service False
single_client False
allow_children True

Network | Traffic Group

Группировка трафика для задач планирования

Поле Значение
service_model sa.ManagedObject
client_model None
single_service False
single_client False
allow_children True

Допустимы иерархиии групп трафика

Access | User

Группировка прав доступа к MO

Поле Значение
service_model sa.ManagedObject
client_model main.User
single_service False
single_client False
allow_children True

Допустимы иерархии групп доступа

Access | Group

Группировка прав доступа к MO

Поле Значение
service_model sa.ManagedObject
client_model main.Group
single_service False
single_client False
allow_children True

Допустимы иерархии групп доступа

Network | Segment

Иерархия сегментов

Поле Значение
service_model sa.ManagedObject
client_model None
single_service True
single_client False
allow_children True

Network | IPoE Termination

Терминациия IPoE (Коммутатор доступа -> BRAS)

Поле Значение
service_model sa.ManagedObject
client_model sa.ManagedObject
single_service False
single_client False
allow_children False

Network | PPPoE Termination

Терминациия PPPoE (Коммутатор доступа -> BRAS)

Поле Значение
service_model sa.ManagedObject (BRAS)
client_model sa.ManagedObject (Коммутатор)
single_service False
single_client False
allow_children False

Network | SNAT Terination

Терминация Source NAT (Коммутатор доступа -> BRAS)

Поле Значение
service_model sa.ManagedObject (NAT)
client_model sa.ManagedObject (Коммутатор)
single_service False
single_client False
allow_children False

Network | DPI Termination

Терминация Source NAT (Коммутатор доступа -> DPI)

Поле Значение
service_model sa.ManagedObject (DPI)
client_model sa.ManagedObject (Коммутатор)
single_service False
single_client False
allow_children False

Network | Controller

Связь Контроллер-CPE

Поле Значение
service_model sa.ManagedObject (Контроллер)
client_model sa.ManagedObject (CPE)
single_service false
single_client True
allow_children False
Edited Aug 28, 2021 by Andrey Vertiprahov
Assignee
Assign to
Time tracking