Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Создание собственного MIB файла и подключение его к SNMP
|
|||
|---|---|---|---|
|
#18+
Добрый день. Задача стоит такая: надо задать любой OID, чтоб она возвращал значение Unsigned32 2^31 (это значение выходит за рамки Unsigned32 и по идее snmpget должен вернуть отрицательное значение). Перекурив разных манов создал вот такой MIB авторOPCMONA-HANDLE-UNSIGNED32-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, mib-2 FROM SNMPv2-SMI; opcmonaHandleUnsigned32 MODULE-IDENTITY LAST-UPDATED "201204240000Z" ORGANIZATION "hp.com" CONTACT-INFO "Nobody" DESCRIPTION "First draft" ::= { mib-2 5580 } myTestFirstFieldU32 OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DEFVAL { 2147483648 } ::= { opcmonaHandleUnsigned32 73277255 } END Когда этот файл подсовываю в /usr/share/snmp/mibs и перегружаю snmp сервис, то не находится необходимый OID автор[root@oalin1 mibs]# snmpwalk localhost -c public -v 2c | grep OPCMONA HOST-RESOURCES-MIB::hrSWRunParameters.4495 = STRING: "OPCMONA" [root@oalin1 mibs]# snmpget -c public -v 2c localhost 1.3.6.1.2.1.5580.73277255 SNMPv2-SMI::mib-2.5580.73277255 = No Such Object available on this agent at this OID Пробовал просто подсунуть MIB файл, который был создан hardware vendor'ом, такая же фигня :( Кто-то сталкивался с подобным? Помогите решить данную проблему? Может проблема в самописном MIB файле (но MIB-drowser понимает этот файл)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2012, 11:18 |
|
||
|
Создание собственного MIB файла и подключение его к SNMP
|
|||
|---|---|---|---|
|
#18+
Memphis, у меня есть некоторые сомнения что в правильном направлении копать начал. Когда мне понадобилось заюзать определенный OID на возврат своего значения(длина почтовой очереди), то я изменял snmpd.conf, настройки именно демона. А MIB, насколько я понял, используются исключительно для описания OID-ов, но не для возврата значений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2012, 11:30 |
|
||
|
Создание собственного MIB файла и подключение его к SNMP
|
|||
|---|---|---|---|
|
#18+
bga83, snmpd.conf - файл, который находится в /etc/snmp? Не подскажешь где можно подробнее прочитать про это (каким образом можно сконфигурировать snmp.confd для возврата значение, которое мне необходимо)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2012, 11:34 |
|
||
|
Создание собственного MIB файла и подключение его к SNMP
|
|||
|---|---|---|---|
|
#18+
Memphisbga83, snmpd.conf - файл, который находится в /etc/snmp? Не подскажешь где можно подробнее прочитать про это (каким образом можно сконфигурировать snmp.confd для возврата значение, которое мне необходимо)? расположение конфигурационного файла зависит от дистрибутива, но как правило, да он в /etc/snmp смотри exec или в любом другом месте про exec в snmpd.conf я использовал просто числовой OID без правки MIB ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2012, 12:09 |
|
||
|
Создание собственного MIB файла и подключение его к SNMP
|
|||
|---|---|---|---|
|
#18+
bga83, Спасибо за наводку. Попробую это еще раскурить :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2012, 12:18 |
|
||
|
Создание собственного MIB файла и подключение его к SNMP
|
|||
|---|---|---|---|
|
#18+
Итак, по результатам имею такое Добавил в snmpd.conf такую строку exec echotest /bin/echo hello world В результате выполнения snmpwalk получил такое [root@oalin2 snmp]# snmpwalk -c public -v 1 localhost .1.3.6.1.4.1.2021.8 UCD-SNMP-MIB::extIndex.1 = INTEGER: 1 UCD-SNMP-MIB::extNames.1 = STRING: echotest UCD-SNMP-MIB::extCommand.1 = STRING: /bin/echo hello world UCD-SNMP-MIB::extResult.1 = INTEGER: 0 UCD-SNMP-MIB::extOutput.1 = STRING: hello world UCD-SNMP-MIB::extErrFix.1 = INTEGER: 0 UCD-SNMP-MIB::extErrFixCmd.1 = STRING: Теперь вопрос как можно было б получить Unsigned32 значение? Нагуглить пока не могу как это сделать :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2012, 12:55 |
|
||
|
Создание собственного MIB файла и подключение его к SNMP
|
|||
|---|---|---|---|
|
#18+
MemphisИтак, по результатам имею такое Добавил в snmpd.conf такую строку exec echotest /bin/echo hello world В результате выполнения snmpwalk получил такое [root@oalin2 snmp]# snmpwalk -c public -v 1 localhost .1.3.6.1.4.1.2021.8 UCD-SNMP-MIB::extIndex.1 = INTEGER: 1 UCD-SNMP-MIB::extNames.1 = STRING: echotest UCD-SNMP-MIB::extCommand.1 = STRING: /bin/echo hello world UCD-SNMP-MIB::extResult.1 = INTEGER: 0 UCD-SNMP-MIB::extOutput.1 = STRING: hello world UCD-SNMP-MIB::extErrFix.1 = INTEGER: 0 UCD-SNMP-MIB::extErrFixCmd.1 = STRING: Теперь вопрос как можно было б получить Unsigned32 значение? Нагуглить пока не могу как это сделать :( а тупо echo <число> - не катит? по сути же типы играют значение исключительно при дальнейшей обработке. Если твоему ПО, которое будет получать данные сказать, что это число, то ей без разницы будет как именно формируется результат и что указано в MIB, если данные конечно будут получены корректные. Повторюсь, когда я вытаскивал длину очереди по snmp, то правил только snmpd.conf, где запускал скрит, проводивший обработку grep-ом вывод mailq. При этом софт (nagios) корректно воспринимал получаемые данные как числа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2012, 13:38 |
|
||
|
Создание собственного MIB файла и подключение его к SNMP
|
|||
|---|---|---|---|
|
#18+
bga83, Гугл меговесчь! Нашел что надо править - есть такой файлик passtest, который вывод примеры того, что надо. Но засада теперь в том, что она недопонимает тип unsigned, почему-то воспринимает как gauge32 Фалик я подредактировал вот таким образом (выделено зеленым, то что добавил): cat passtest #!/bin/sh -f PATH=$path:/bin:/usr/bin:/usr/ucb PLACE=".1.3.6.1.4.1.2021.255" REQ="$2" if [ "$1" = "-s" ]; then echo $* >> /tmp/passtest.log exit 0 fi if [ "$1" = "-n" ]; then case "$REQ" in $PLACE) RET=$PLACE.1 ;; $PLACE.1) RET=$PLACE.2.1 ;; $PLACE.2.1) RET=$PLACE.2.2 ;; $PLACE.2.2) RET=$PLACE.3 ;; $PLACE.3) RET=$PLACE.4 ;; $PLACE.4) RET=$PLACE.5 ;; $PLACE.5) RET=$PLACE.6 ;; *) exit 0 ;; esac else case "$REQ" in $PLACE) exit 0 ;; *) RET=$REQ ;; esac fi echo "$RET" case "$RET" in $PLACE.1) echo "string"; echo "life the universe and everything"; exit 0 ;; $PLACE.2.1) echo "integer"; echo "42"; exit 0 ;; $PLACE.2.2) echo "objectid"; echo ".1.3.6.1.4.42.42.42"; exit 0 ;; $PLACE.2.3) echo "unsigned"; echo "2147483647"; exit 0 ;; $PLACE.3) echo "timeticks"; echo "363136200"; exit 0 ;; $PLACE.4) echo "ipaddress"; echo "127.0.0.1" ;; $PLACE.5) echo "counter"; echo "42"; exit 0 ;; $PLACE.6) echo "gauge"; echo "42"; exit 0 ;; *) echo "string"; echo "ack... $RET $REQ"; exit 0 ;; esac Копаю дальше пока ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2012, 14:03 |
|
||
|
Создание собственного MIB файла и подключение его к SNMP
|
|||
|---|---|---|---|
|
#18+
Memphisbga83, Гугл меговесчь! Нашел что надо править - есть такой файлик passtest, который вывод примеры того, что надо. Но засада теперь в том, что она недопонимает тип unsigned, почему-то воспринимает как gauge32 Фалик я подредактировал вот таким образом (выделено зеленым, то что добавил): cat passtest #!/bin/sh -f PATH=$path:/bin:/usr/bin:/usr/ucb PLACE=".1.3.6.1.4.1.2021.255" REQ="$2" if [ "$1" = "-s" ]; then echo $* >> /tmp/passtest.log exit 0 fi if [ "$1" = "-n" ]; then case "$REQ" in $PLACE) RET=$PLACE.1 ;; $PLACE.1) RET=$PLACE.2.1 ;; $PLACE.2.1) RET=$PLACE.2.2 ;; $PLACE.2.2) RET=$PLACE.3 ;; $PLACE.3) RET=$PLACE.4 ;; $PLACE.4) RET=$PLACE.5 ;; $PLACE.5) RET=$PLACE.6 ;; *) exit 0 ;; esac else case "$REQ" in $PLACE) exit 0 ;; *) RET=$REQ ;; esac fi echo "$RET" case "$RET" in $PLACE.1) echo "string"; echo "life the universe and everything"; exit 0 ;; $PLACE.2.1) echo "integer"; echo "42"; exit 0 ;; $PLACE.2.2) echo "objectid"; echo ".1.3.6.1.4.42.42.42"; exit 0 ;; $PLACE.2.3) echo "unsigned"; echo "2147483647"; exit 0 ;; $PLACE.3) echo "timeticks"; echo "363136200"; exit 0 ;; $PLACE.4) echo "ipaddress"; echo "127.0.0.1" ;; $PLACE.5) echo "counter"; echo "42"; exit 0 ;; $PLACE.6) echo "gauge"; echo "42"; exit 0 ;; *) echo "string"; echo "ack... $RET $REQ"; exit 0 ;; esac Копаю дальше пока Вывод выглядит вот так [root@oalin2 scripts]# snmpget -v 2c -c public localhost .1.3.6.1.4.1.2021.255.2.3 UCD-SNMP-MIB::ucdavis.255.2.3 = Gauge32: 2147483647 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2012, 14:05 |
|
||
|
Создание собственного MIB файла и подключение его к SNMP
|
|||
|---|---|---|---|
|
#18+
Случайно, никто не сталкивался с настройкой snmpd.conf (pass и exec он почему-то не хочет понимать) файла на Solaris 10? Задача состоит в том, чтоб можно было определить собственный OID с предустановленным значением. На Linux'e вышеописанный метод работает, а вот на Solaris'e, AIX'e и HP-UX'e не работает.. 7 часов гугления потратил зря, т.к. не нашел решения, а то что написано - не хочет работать :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2012, 17:05 |
|
||
|
Создание собственного MIB файла и подключение его к SNMP
|
|||
|---|---|---|---|
|
#18+
MIB нужен для snmpwalk например или обращения snmpget по семантическому имени ключа Чтобы на хосте создать конкретный OID и менять его значение в NET-SNMP например была exec теперь extend мой креативчикexec - позволяет с помощью кода завершения запускаемой программы (шеллб перл) заполнять метрику. К сожалению, почему-то авторы в версии 5.4 объявили опцию deprecated и в 5.4.2 она уже не работает. Предлагается пользоваться вместо exec extend - ниже опишу и его. Пример: exec .1.3.6.1.4.1.2021.53 sarstats /opt/scripts/snmp/sarstats 4 скрипт парсит вывод sar и значение из (в данном случае) 4 колонки отдает в качестве кода возврата Значение кода возврата можно (было) читать из .1.3.6.1.4.1.2021.53.100.1 г) extend - делает то же самое, что и exec, только выдает более развернутый результат. OID можно не задавать, потому как в 1 стартовый OID NET-SNMP может сложить несколько метрик, закодировав названия в адреса OID. extend .1.3.6.1.4.1.2021.52 wio /opt/scripts/snmp/wio extend .1.3.6.1.4.1.2021.52 idle /opt/scripts/snmp/idle extend .1.3.6.1.4.1.2021.52 Entitled_capacity_percent /opt/scripts/snmp/sarstats 7 extend wio /opt/scripts/snmp/wio Как он это делает и где искать результат? # snmpwalk -v 2c -c public localhost NET-SNMP-EXTEND-MIB::nsExtendObjects - это если не указывали OID ---------------------------------- snmpwalk -v 2c -c public localhost NET-SNMP-EXTEND-MIB::nsExtendObjects NET-SNMP-EXTEND-MIB::nsExtendNumEntries.0 = INTEGER: 24 NET-SNMP-EXTEND-MIB::nsExtendCommand."wio" = STRING: /opt/scripts/snmp/wio NET-SNMP-EXTEND-MIB::nsExtendArgs."wio" = STRING: NET-SNMP-EXTEND-MIB::nsExtendInput."wio" = STRING: NET-SNMP-EXTEND-MIB::nsExtendCacheTime."wio" = INTEGER: 5 NET-SNMP-EXTEND-MIB::nsExtendExecType."wio" = INTEGER: exec(1) NET-SNMP-EXTEND-MIB::nsExtendRunType."wio" = INTEGER: run-on-read(1) NET-SNMP-EXTEND-MIB::nsExtendStorage."wio" = INTEGER: permanent(4) NET-SNMP-EXTEND-MIB::nsExtendStatus."wio" = INTEGER: active(1) NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."wio" = STRING: gY NET-SNMP-EXTEND-MIB::nsExtendOutputFull."wio" = STRING: gY NET-SNMP-EXTEND-MIB::nsExtendOutNumLines."wio" = INTEGER: 1 NET-SNMP-EXTEND-MIB::nsExtendResult."wio" = INTEGER: 0 NET-SNMP-EXTEND-MIB::nsExtendOutLine."wio".1 = STRING: gY ---------------------------------- То есть, чтобы запросить результат определенной метрики, можно сделать так: # snmpget -v 2c -c public localhost NET-SNMP-EXTEND-MIB::nsExtendResult.\"wio\" NET-SNMP-EXTEND-MIB::nsExtendResult."wio" = INTEGER: 0 К сожалению, прочим системам мониторинга не объяснить, что нужный инстанс можно задавать словами... # snmptranslate -Td NET-SNMP-EXTEND-MIB::nsExtendResult.\"wio\" NET-SNMP-EXTEND-MIB::nsExtendResult."wio" nsExtendResult OBJECT-TYPE -- FROM NET-SNMP-EXTEND-MIB SYNTAX Integer32 MAX-ACCESS read-only STATUS current DESCRIPTION "The return value of the command." ::= { iso(1) org(3) dod(6) internet(1) private(4) enterprises(1) netSnmp(8072) netSnmpObjects(1) nsExtensions(3) nsExtendObjects(2) nsExtendOutput1Table(3) nsExtendOutput1Entry(1) nsExtendResult(4) 3 119 105 111 } # snmpget -v 2c -c public localhost NET-SNMP-EXTEND-MIB::nsExtendResult.3.119.105.111 NET-SNMP-EXTEND-MIB::nsExtendResult."wio" = INTEGER: 0 Посмотрим как разложились метрики, прописанные там,где мне хотелось: # snmpwalk -v 2c -c public localhost .1.3.6.1.4.1.2021.52 UCD-SNMP-MIB::ucdavis.52.1.0 = INTEGER: 2 UCD-SNMP-MIB::ucdavis.52.2.1.2.3.119.105.111 = STRING: "/opt/scripts/snmp/wio" UCD-SNMP-MIB::ucdavis.52.2.1.2.4.105.100.108.101 = STRING: "/opt/scripts/snmp/idle" UCD-SNMP-MIB::ucdavis.52.2.1.2.25.69.110.116.105.116.108.101.100.95.99.97.112.97.99.105.116.121.95.112.101.114.99.101.110.116 = STRING: "/opt/scripts/snmp/sarstats" UCD-SNMP-MIB::ucdavis.52.2.1.3.3.119.105.111 = "" UCD-SNMP-MIB::ucdavis.52.2.1.3.4.105.100.108.101 = "" UCD-SNMP-MIB::ucdavis.52.2.1.3.25.69.110.116.105.116.108.101.100.95.99.97.112.97.99.105.116.121.95.112.101.114.99.101.110.116 = STRING: "7" UCD-SNMP-MIB::ucdavis.52.2.1.4.3.119.105.111 = "" UCD-SNMP-MIB::ucdavis.52.2.1.4.4.105.100.108.101 = "" UCD-SNMP-MIB::ucdavis.52.2.1.4.25.69.110.116.105.116.108.101.100.95.99.97.112.97.99.105.116.121.95.112.101.114.99.101.110.116 = "" UCD-SNMP-MIB::ucdavis.52.2.1.5.3.119.105.111 = INTEGER: 5 UCD-SNMP-MIB::ucdavis.52.2.1.5.4.105.100.108.101 = INTEGER: 5 UCD-SNMP-MIB::ucdavis.52.2.1.5.25.69.110.116.105.116.108.101.100.95.99.97.112.97.99.105.116.121.95.112.101.114.99.101.110.116 = INTEGER: 5 UCD-SNMP-MIB::ucdavis.52.2.1.6.3.119.105.111 = INTEGER: 1 UCD-SNMP-MIB::ucdavis.52.2.1.6.4.105.100.108.101 = INTEGER: 1 UCD-SNMP-MIB::ucdavis.52.2.1.6.25.69.110.116.105.116.108.101.100.95.99.97.112.97.99.105.116.121.95.112.101.114.99.101.110.116 = INTEGER: 1 UCD-SNMP-MIB::ucdavis.52.2.1.7.3.119.105.111 = INTEGER: 1 UCD-SNMP-MIB::ucdavis.52.2.1.7.4.105.100.108.101 = INTEGER: 1 UCD-SNMP-MIB::ucdavis.52.2.1.7.25.69.110.116.105.116.108.101.100.95.99.97.112.97.99.105.116.121.95.112.101.114.99.101.110.116 = INTEGER: 1 UCD-SNMP-MIB::ucdavis.52.2.1.20.3.119.105.111 = INTEGER: 4 UCD-SNMP-MIB::ucdavis.52.2.1.20.4.105.100.108.101 = INTEGER: 4 UCD-SNMP-MIB::ucdavis.52.2.1.20.25.69.110.116.105.116.108.101.100.95.99.97.112.97.99.105.116.121.95.112.101.114.99.101.110.116 = INTEGER: 4 UCD-SNMP-MIB::ucdavis.52.2.1.21.3.119.105.111 = INTEGER: 1 UCD-SNMP-MIB::ucdavis.52.2.1.21.4.105.100.108.101 = INTEGER: 1 UCD-SNMP-MIB::ucdavis.52.2.1.21.25.69.110.116.105.116.108.101.100.95.99.97.112.97.99.105.116.121.95.112.101.114.99.101.110.116 = INTEGER: 1 UCD-SNMP-MIB::ucdavis.52.3.1.1.3.119.105.111 = STRING: "gY" UCD-SNMP-MIB::ucdavis.52.3.1.1.4.105.100.108.101 = "" UCD-SNMP-MIB::ucdavis.52.3.1.1.25.69.110.116.105.116.108.101.100.95.99.97.112.97.99.105.116.121.95.112.101.114.99.101.110.116 = "" UCD-SNMP-MIB::ucdavis.52.3.1.2.3.119.105.111 = STRING: "gY" UCD-SNMP-MIB::ucdavis.52.3.1.2.4.105.100.108.101 = "" UCD-SNMP-MIB::ucdavis.52.3.1.2.25.69.110.116.105.116.108.101.100.95.99.97.112.97.99.105.116.121.95.112.101.114.99.101.110.116 = "" UCD-SNMP-MIB::ucdavis.52.3.1.3.3.119.105.111 = INTEGER: 1 UCD-SNMP-MIB::ucdavis.52.3.1.3.4.105.100.108.101 = INTEGER: 1 UCD-SNMP-MIB::ucdavis.52.3.1.3.25.69.110.116.105.116.108.101.100.95.99.97.112.97.99.105.116.121.95.112.101.114.99.101.110.116 = INTEGER: 1 UCD-SNMP-MIB::ucdavis.52.3.1.4.3.119.105.111 = INTEGER: 0 UCD-SNMP-MIB::ucdavis.52.3.1.4.4.105.100.108.101 = INTEGER: 98 UCD-SNMP-MIB::ucdavis.52.3.1.4.25.69.110.116.105.116.108.101.100.95.99.97.112.97.99.105.116.121.95.112.101.114.99.101.110.116 = INTEGER: 0 UCD-SNMP-MIB::ucdavis.52.4.1.2.3.119.105.111.1 = STRING: "gY" UCD-SNMP-MIB::ucdavis.52.4.1.2.4.105.100.108.101.1 = "" UCD-SNMP-MIB::ucdavis.52.4.1.2.25.69.110.116.105.116.108.101.100.95.99.97.112.97.99.105.116.121.95.112.101.114.99.101.110.116.1 = "" Что такое 119.105.111 , 105.100.108.101 и 69.110.116.105.116.108.101.100.95.99.97.112.97.99.105.116.121.95.112.101.114.99.101.110.116 ? А это авторы взяли и посимвольно перекодировали названия метрик в числа по ASCII таблице. Красиво конечно, но брать именно оттуда, куда я положил, мне нравилось больше. Подробнее, правда в приложении к AIX вот тут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2012, 18:04 |
|
||
|
|

start [/forum/topic.php?fid=25&msg=37805542&tid=1483534]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
69ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 180ms |

| 0 / 0 |
