Opened 9 years ago

Closed 7 years ago

#93 closed улучшение (fixed)

Конфигурировать корневую ноду SNMP OID'ов

Reported by: alx Owned by: alx
Priority: средний Milestone: 1 очередь
Component: sw Keywords:
Cc:

Description (last modified by san)

Сейчас MIB блока 3U всегда находится в ветке { adc 9999 }. В случае когда требуется мониторить
несколько разных блоков с разной набивкой и, следовательно, разными MIB, возникает проблема подключения этих MIB к SNMP менеджеру.

Предлагается сделать конфигурационный параметр, который можно настраивать на вкладке SNMP, и который будет задавать корневую ноду для каждого борка.

Там же можно поместить ссылку на генерацию MIB.

Change History (11)

comment:1 by san, 7 years ago

Description: modified (diff)

У меня было немного другое предложение, для решения проблемы пересечении мибов:

  • Существующую структуру дерева adc.m3U160.slots.<№ слота>.<переменная платы> изменить на adc.m3U16.slots.<№ слота>.<тип платы>.<переменная платы>, т.е в каждом слоте будут отдельные ветки для разных типов плат которые могут быть установлены в слот.
  • кроме этого, можно продублировать в adc.m3U160.slots.<№ слота>.0.[1..4] значения "стандартных" переменных установленной платы (для упрощенного опроса общих аварий плат и возможного автоматического определения менеджером нужных переменных в зависимости от типа платы)

В моём представлении у этого варианта есть преимущество в том, что будет возможно сделать универсальный миб(очень большой конечно) описывающий все варианты набивки блоков.

in reply to:  1 ; comment:2 by alx, 7 years ago

Replying to san:

У меня было немного другое предложение, для решения проблемы пересечении мибов:

  • Существующую структуру дерева adc.m3U160.slots.<№ слота>.<переменная платы> изменить на adc.m3U16.slots.<№ слота>.<тип платы>.<переменная платы>, т.е в каждом слоте будут отдельные ветки для разных типов плат которые могут быть установлены в слот.

Это решение мне не нравится по нескольким причинам. Или, можно назвать их проблемами.

Первая проблема: MIB присутствующей платы мы получаем чтением из нее переменной .4.0. А как получить MIB платы, которой нет? :) :) :)

Вторая проблема: это нарушит совместимость с ранее выпущенными платами, так как в OID добавляется новый элемент.

Третья проблема: допустим, мы каким-то телепатическим чудом (см. первую проблему) получили MIB отсутствующей платы. А что должен возвращать агент в ответ на запрос чтения OID отсутствующей платы?

В моём представлении у этого варианта есть преимущество в том, что будет возможно сделать универсальный миб(очень большой конечно) описывающий все варианты набивки блоков.

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

in reply to:  2 ; comment:3 by san, 7 years ago

Первая проблема: MIB присутствующей платы мы получаем чтением из нее переменной .4.0. А как получить MIB платы, которой нет? :) :) :)
Так как MIB каждой платы хранится в ней самой, мне представляется принципиально невозможным сформировать MIB блока до того как платы будут в него вставлены и опрошены...

Я подразумевал создание универсального миба не блоком, а нами и выкладывание его на сайт, например.

Вторая проблема: это нарушит совместимость с ранее выпущенными платами, так как в OID добавляется новый элемент.

платами - всмысле sw? Да, нарушит.

Третья проблема: допустим, мы каким-то телепатическим чудом (см. первую проблему) получили MIB отсутствующей платы. А что должен возвращать агент в ответ на запрос чтения OID отсутствующей платы?

Интересный вопрос :) Получится дерево с немногими "живыми" ветками и остальными в непонятном виде. Да, совсем плохо выглядит. Соглашусь, что мой вариант нежизнеспособен.

Зато теперь я понял и могу сформулировать основное что мне не нравится в твоём варианте, и почему я пытался предложить какие-то альтернативы.

Сейчас в любом блоке можно опросить общие аварии плат по одним и тем-же oid. Т.е. можно настроить общее правило для всех блоков и при аварии менеджер будет знать какая плата виновата. И такая возможность позволяет быстро включить блоки в мониторинг, а потом уже неспешно разбирать мибы.
В случае если у блоков будут разные "корни", то "по быстрому" уже не получится и для каждого блока придётся создавать отдельные правила в менеджере.

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

in reply to:  3 comment:4 by alx, 7 years ago

Replying to san:

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

Я подразумевал создание универсального миба не блоком, а нами и выкладывание его на сайт, например.

Да какая разница, нами или не нами? :) Не зная заранее, какие MIB'ы будут в установленных платах (а этого никто кроме, может быть, гадалок с хрустальными шарами не знает), сформировать MIB блока невозможно. Независимо от того, кто будет пытаться его сформировать, и куда он его потом выложит. :)

В случае если у блоков будут разные "корни", то "по быстрому" уже не получится и для каждого блока придётся создавать отдельные правила в менеджере.

Но по умолчанию-то значение корня по-прежнему будет одним и тем же - как и раньше, 9999! То есть, получив с завода новую плату/новый блок, его можно сразу ("по-быстрому", как ты пишешь) начинать опрашивать из корня 9999. И, как и было до сегодняшнего дня, подавляющее большинство пользователей это устроит. А вот когда и если у кого-то возникнет желание играться с MIB'ами - то он, если надо, корень поменяет. И проблемы у него не будет, ведь изменение корня - не самоцель, а средство получить MIB-файл, не конфликтующий с другими существующими. Следовательно, сразу после изменения корневого OID'а будет сгенерирован MIB и скормлен менеджеру. И менеджер начнет опрос... Я не вижу здесь проблемы...

comment:5 by san, 7 years ago

Не зная заранее, какие MIB'ы

Мы ведь знаем мибы плат которые производим, и при появлении новой платы можем обновлять миб, но это уже не важно.

Я не вижу здесь проблемы...

Согласен

in reply to:  5 comment:6 by alx, 7 years ago

Replying to san:

Не зная заранее, какие MIB'ы

Мы ведь знаем мибы плат которые производим, и при появлении новой платы можем обновлять миб, но это уже не важно.

Встречный вопрос: а зачем вообще тогда придумана стандартная переменная .4.0, с помощью которой мы запрашивает у платы ее MIB? Исходя из логики, что мы и так всегда знаем мибы плат, которые производим, зачем все эти сложности с запросами MIB'ов каждой платы и составлением динамической базы? Насколько было бы проще всего этого не делать! :)

Мы ведь для того все это и придумали, чтобы swd мог работать с платами, прошивки которых новее его самого, и содержат нечто, о чем он знать не мог на момент своего выхода... Кроме того, обратная ситуация (когда плата в блоке старее чем последний MIB) не намного лучше (если не хуже): в MIB'е переменная прописана, но при попытке обращения к ней плата возвращает ошибку...

comment:7 by san, 7 years ago

Просто пояснил что я имел ввиду в первом комменте, с твоими аргументами согласен.

comment:8 by san, 7 years ago

Milestone: 2 очередь1 очередь

Переставлю в первую очередь в связи с появившейся заинтересованностью пользователей.

comment:9 by san, 7 years ago

Там же можно поместить ссылку на генерацию MIB.

Ещё туда бы поместить корневой миб аппаратуры АДС, или ссылку на него (выложить mib на наш сайт)

comment:10 by alx, 7 years ago

Summary: Конфигурировать корневую ноду SNMP IOD'jdКонфигурировать корневую ноду SNMP OID'ов

comment:11 by alx, 7 years ago

Resolution: fixed
Status: newclosed

In 1550/sw:

В веб-интерфейсе на вкладке "Мониторинг" добавлен блок "SNMP". В нем отображается
корневой OID блока и есть кнопка "Изменить".
Добавлены команды API getRootIndex и setRootIndex, также корневой индект передается
сервером в ответ на команду trapsinks.
Корневой индекс запоминается в конфиг-файле и восстанавливается из него.
При отправке SNMP TRAP'ов и в модуле sw_mib_module вместо константы 9999 используется
корневой индекс, заданный в конфигураыии блока.
Добавлен ADC-MIB (adc-mib.txt).
В MIB-файлах исправлены номера телефонов.
Closes #93, #260.

Note: See TracTickets for help on using tickets.