Opened 7 years ago

Closed 7 years ago

Last modified 7 years ago

#245 closed улучшение (не будем делать)

Генерация mib

Reported by: san Owned by: alx
Priority: низкий Milestone: 2 очередь
Component: sw Keywords:
Cc:

Description

Сейчас mib сгенерированный блоком содержит довольно мало уточняющей информации и пользователю сложно разобраться в том какая переменная для чего. Конечно в мибе любой платы можно добавлять описания для переменных, но в некоторых платах таких описаний нет (например по причине нехватки памяти для хранения большого миба)

При этом плата sw хранит в себе дополнительную информацию о некоторых переменных плат. (для отображения трапов от плат в список аварий и журнал в человекопонятном виде)
Могли бы мы использовать эти данные при генерации миба? Добавить, например, в Description переменной её человекопонятное обозначение.

Change History (5)

comment:1 by alx, 7 years ago

Действительно, swd хранит в себе переопределения описаний некоторых OID (в-основном это аварии, генерируемые платами в виде TRAP'ов). Но эта информация не может использоваться при генерации MIB, так как, если я правильно помню, MIB допускает только ASCII символы, а переопределения содержат кириллицу (собственно, ради того чтобы вместо описаний из MIB выводить русскоязычный текст эти переопределения и сделаны).

Я считаю, что если нужны более детальные описания в MIB'е, надо устранять первопричину проблемы - ограничение на размер MIB'а платы, что потребует какого-то расширения существующего протокола.

Другой вариант - отказаться от идеи добиться "человекочитаемости" MIB'а, и считать, что MIB нужен только для удовлетворения потребностей SNMP-менеджеров. А до пользователя информацию о назначении переменных доводить другими средствами - например размещать ее в руководстве по эксплуатации, на веб-сайте, в wiki и т.п.

Лично мне второй вариант кажется более логичным, учитывая, что "человекочитаемости" препятствует не только ограниченность описаний переменных а, например, еще и отсутствие массивов, из-за чего в MIB'е, например, платы VE-01 256 раз повторяется одинаковый набор переменных каждого канала...

comment:2 by san, 7 years ago

MIB допускает только ASCII

Да, точно.

отсутствие массивов

Правильно я помню причина этого - несовместимость форматов нашей таблицы с таблицей snmp MIB?
Имеет ли смысл добавить новый тип данных для мибов плат, совместимый с форматом таблицы SNMP MIB?

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

Replying to san:

отсутствие массивов

Правильно я помню причина этого - несовместимость форматов нашей таблицы с таблицей snmp MIB?

Проблема в том, как в SNMP формируются OID'ы с индексами массивов. Я пытался сделать таблицы как в SNMP, но ничего не добился, только окончательно запутался. :) В конце концов было принято решение "разворачивать" таблицы в линейный список.

Имеет ли смысл добавить новый тип данных для мибов плат, совместимый с форматом таблицы SNMP MIB?

Мое мнение - не имеет.

comment:4 by san, 7 years ago

Resolution: не будем делать
Status: newclosed

как в SNMP формируются OID'ы с индексами массивов

наш формат: ..table.x.variable (где x- номер элемента массива)
а в snmp mib: .table.entry.variable.x

Вроде бы конвертировать можно, но для этого нужно сломать существующую структуру oid-ов и делать новую, а делать это уже, наверное, поздно, да и затраты превзойдут пользу.

В таком случае, пожалуй, соглашусь с:

Другой вариант - отказаться от идеи добиться "человекочитаемости" MIB'а, и считать, что MIB нужен только для удовлетворения потребностей SNMP-менеджеров. А до пользователя информацию о назначении переменных доводить другими средствами - например размещать ее в руководстве по эксплуатации, на веб-сайте, в wiki и т.п.

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

Replying to san:

наш формат: ..table.x.variable (где x- номер элемента массива)
а в snmp mib: .table.entry.variable.x

Вроде бы конвертировать можно

Да, вроде бы, можно. Но надо учитывать, что:

  1. конвертировать надо в двух направлениях - как из нашего формата в SNMP, так и из SNMP в наш формат;
  2. при конвертировании необходимо верно определять, какие элементы OID'а являются индексами, а какие - нет (учитывая вложенность таблиц), а затем определить, какие из индексов к каким таблицам относятся.
  3. ...

Короче говоря, после, как минимум, недели мучений, я не смог добиться корректной трансформации туда-обратно. :(

Note: See TracTickets for help on using tickets.