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 463
    • Issues 463
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Merge requests 24
    • Merge requests 24
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Artifacts
    • Schedules
    • Test cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Container Registry
    • Terraform modules
    • Model experiments
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • 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
  • #534

Automated diagnostic collection

Необходимо реализовать общий механизм автоматического сбора диагностической информации во время box и periodic discovery а так же при обращениях в TAC

  • В discovery необходимо добавить проверку diagnostic
  • В профиле объекта необходимо добавить поля enable_box_diagnostic, enable_periodic_diagnostic
  • Вынести поля в интерфейс на вкладки Box и Periodic
  • Реализовать настройки в виде коллекции ObjectDiagnosticConfig

ObjectDiagnosticConfig

  • name - имя диагностики
  • is_active - признак активности
  • description - дополнительное описание
  • profile - фильтровать по профилю SA
  • platform - фильтровать по платформе
  • object_profile - фильтровать по профилю объекта
  • selector - фильтровать по селектору
  • enable_box - разрешить во время выполнения Box discovery
  • enable_periodic - разрешить во время выполнения Periodic discovery
  • method
    • cli
    • snmp_get
    • snmp_set (на будущее)
    • ping
  • command - команда (OID) - шаблон Jinja2
  • value - дополнительное значение для snmp_set

Diagnostic check проверяет, какая диагностика необходима, и запускает скрипт get_diagnostic

  • Реализовать скрипт Generic.get_diagnostic
  • Реализовать интерфейс IGetDiagnostic

Интерфейс IGetDiagnostic:

   config = DictListParameter
       name
       method
       command
       value
   returns = DictParameter

Результат возвращается в виде словаря name -> текст и сохраняется в коллекции

  • ObjectDiagnostic

    • object - ID объекта
    • name
    • collected - отметка времени сбора
    • result - список
      • name - имя диагностики (из конфига)
      • value - значение
  • Необходимо доработать API Managed Object и добавить свойство ManagedObject.diagnostic

Полученный результат можно использовать в housekeeping и для формирования отчетности

Edited Apr 07, 2021 by Andrey Vertiprahov
Assignee
Assign to
Time tracking