LINUX.ORG.RU

SNMP, MIB, обращение к объектам по именам

 ,


0

1

Не получается обратиться к объектам по именам.

Обращаюсь так:

$ snmpget -v 1 -c public localhost 1.3.6.1.4.1.1234.1...
...получаю данные
Не получается так:
$ snmpget -v 1 -c public localhost 1.3.6.1.4.1.foo.bar...
... Unknown Object Identifier (Sub-id not found: enterprises -> foo)
Так тоже не получается:
<?php
        if (snmp_read_mib("FOO_BAR-MIB.mib")) {
		$reply = snmpget("localhost","public","1.3.6.1.4.1.foo.bar...");
...
// Warning: snmpget() [function.snmpget]: Invalid object identifier: 1.3.6.1.4.1.foo.bar...
Файл /usr/share/snmp/mibs/FOO_BAR-MIB.mib:
FOO_BAR-MIB DEFINITIONS ::= BEGIN

        IMPORTS
                enterprises
        FROM RFC1155-SMI
                OBJECT-TYPE
        FROM RFC-1212
                TRAP-TYPE
        FROM RFC-1215;

foo	OBJECT IDENTIFIER ::= { enterprises 1234 }
bar	OBJECT IDENTIFIER ::= { foo 1 }
...
Рядом стоит SNMPc Enterprise, где этот файл исправно работает...

Модераторам: если уместно, перенесите пожалуйста в Development.

★★

Во-первых, в ~/.snmp/snmp.conf должно быть:

mibs +FOO_BAR-MIB
Или как то так.

Во-вторых

$ snmpget -v 1 -c public localhost bar...
или
$ snmpget -v 1 -c public localhost FOO_BAR-MIB::bar...

deadskif ()
Ответ на: комментарий от deadskif

Спасибо за ответ!

Не получилось:

$ mkdir ~/.snmp
$ echo 'mibs +FOO_BAR-MIB' ~/.snmp/snmp.conf
$ snmpget -v 1 -c public localhost bar...
MIB search path: ...:/usr/share/snmp/mibs:...
Cannot find module (FOO_BAR-MIB): At line 1 in (none)
bar: Unknown Object Identifier (Sub-id not found: (top) -> bar)
$ snmpget -v 1 -c public localhost FOO_BAR-MIB::bar...
MIB search path: ...:/usr/share/snmp/mibs:...
Cannot find module (FOO_BAR-MIB): At line 1 in (none)
FOO_BAR-MIB::bar...: Unknown Object Identifier

Пробовал с разных Linux-машин с разными версиями snmp...

Evenik ★★ ()
Ответ на: Спасибо за ответ! от Evenik

Вы опечатались? Должно быть

$ echo 'mibs +FOO_BAR-MIB' >> ~/.snmp/snmp.conf
Правда там какие то заморочки с реальным именем и тем, какое указывается в конфиге. Вроде у меня работало, если файл ``FOO_BAR-MIB.txt".

deadskif ()
Ответ на: комментарий от deadskif

Вы опечатались?

Да, на самом деле перенаправление было.

Правда там какие то заморочки с реальным именем и тем, какое указывается в конфиге. Вроде у меня работало, если файл ``FOO_BAR-MIB.txt".

Настоящий mib-файл называется очень сложно. Я сократил его название до того, что стоит перед DEFINITIONS и поменял расширение с .mib на .txt — т.е. ваш случай. Получилось очень похоже на пример с FOO-BAR.

Не понятно...

Evenik ★★ ()
Ответ на: комментарий от deadskif

Cannot find module (FOO_BAR-MIB): At line 1 in (none)

А что значит «At line 1 in (none)»? Второй подопытный клиент (другой версии, с той же конфигурацией) пишет:

Cannot find module (FOO_BAR-MIB): At line 20 in (none)

О каких строках и в чём идёт речь?

Evenik ★★ ()
Ответ на: комментарий от deadskif

Попробуйте закинуть FOO_BAR-MIB.txt в ``~/.snmp/mibs/".

Пробовал, тоже самое. Судя по выводу «MIB search path...», файл должен быть доступен.

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

Evenik ★★ ()
Ответ на: комментарий от Evenik

Пробовал, тоже самое. Судя по выводу «MIB search path...», файл должен быть доступен.

Опечатки в имени / права?

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

Ну на сколько я понимаю, только те читает, которые в mibs+ етц.

deadskif ()
Ответ на: комментарий от deadskif

Эврика!

Построил конфигурационный файл с помощью snmpconf, загвоздка была в этом:

mibfile  /usr/share/snmp/mibs/FOO_BAR-MIB.txt
miballowunderline true

deadskif, огромнейшее спасибо за помощь!

Evenik ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.