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
и для формирования отчетности