#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 , 7 years ago
follow-up: 3 comment:2 by , 7 years ago
MIB допускает только ASCII
Да, точно.
отсутствие массивов
Правильно я помню причина этого - несовместимость форматов нашей таблицы с таблицей snmp MIB?
Имеет ли смысл добавить новый тип данных для мибов плат, совместимый с форматом таблицы SNMP MIB?
comment:3 by , 7 years ago
Replying to san:
отсутствие массивов
Правильно я помню причина этого - несовместимость форматов нашей таблицы с таблицей snmp MIB?
Проблема в том, как в SNMP формируются OID'ы с индексами массивов. Я пытался сделать таблицы как в SNMP, но ничего не добился, только окончательно запутался. :) В конце концов было принято решение "разворачивать" таблицы в линейный список.
Имеет ли смысл добавить новый тип данных для мибов плат, совместимый с форматом таблицы SNMP MIB?
Мое мнение - не имеет.
follow-up: 5 comment:4 by , 7 years ago
Resolution: | → не будем делать |
---|---|
Status: | new → closed |
как в SNMP формируются OID'ы с индексами массивов
наш формат: ..table.x.variable (где x- номер элемента массива)
а в snmp mib: .table.entry.variable.x
Вроде бы конвертировать можно, но для этого нужно сломать существующую структуру oid-ов и делать новую, а делать это уже, наверное, поздно, да и затраты превзойдут пользу.
В таком случае, пожалуй, соглашусь с:
Другой вариант - отказаться от идеи добиться "человекочитаемости" MIB'а, и считать, что MIB нужен только для удовлетворения потребностей SNMP-менеджеров. А до пользователя информацию о назначении переменных доводить другими средствами - например размещать ее в руководстве по эксплуатации, на веб-сайте, в wiki и т.п.
comment:5 by , 7 years ago
Replying to san:
наш формат: ..table.x.variable (где x- номер элемента массива)
а в snmp mib: .table.entry.variable.x
Вроде бы конвертировать можно
Да, вроде бы, можно. Но надо учитывать, что:
- конвертировать надо в двух направлениях - как из нашего формата в SNMP, так и из SNMP в наш формат;
- при конвертировании необходимо верно определять, какие элементы OID'а являются индексами, а какие - нет (учитывая вложенность таблиц), а затем определить, какие из индексов к каким таблицам относятся.
- ...
Короче говоря, после, как минимум, недели мучений, я не смог добиться корректной трансформации туда-обратно. :(
Действительно, swd хранит в себе переопределения описаний некоторых OID (в-основном это аварии, генерируемые платами в виде TRAP'ов). Но эта информация не может использоваться при генерации MIB, так как, если я правильно помню, MIB допускает только ASCII символы, а переопределения содержат кириллицу (собственно, ради того чтобы вместо описаний из MIB выводить русскоязычный текст эти переопределения и сделаны).
Я считаю, что если нужны более детальные описания в MIB'е, надо устранять первопричину проблемы - ограничение на размер MIB'а платы, что потребует какого-то расширения существующего протокола.
Другой вариант - отказаться от идеи добиться "человекочитаемости" MIB'а, и считать, что MIB нужен только для удовлетворения потребностей SNMP-менеджеров. А до пользователя информацию о назначении переменных доводить другими средствами - например размещать ее в руководстве по эксплуатации, на веб-сайте, в wiki и т.п.
Лично мне второй вариант кажется более логичным, учитывая, что "человекочитаемости" препятствует не только ограниченность описаний переменных а, например, еще и отсутствие массивов, из-за чего в MIB'е, например, платы VE-01 256 раз повторяется одинаковый набор переменных каждого канала...