URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 93759
[ Назад ]

Исходное сообщение
"SNMP - Создание своего OID (MIB)"

Отправлено lifefornazgul , 03-Сен-12 20:02 
Ребята, помогите пожалуйста.
Перед нами такая задача, есть скрипт который выгребает нужное значение. Далее это значение нужно поместить в какойнибудь OID или создать свой собственный Object Identificator (OID) например: 1.3.6.х.х.х.х.х. Чтобы этот ОИД потом получать при помощи snmpwalk/snmpget на удаленном компе.

Гуглил целый день, прочитал много инфы, однако конкретного примера не нашел...


Содержание

Сообщения в этом обсуждении
"SNMP - Создание своего OID (MIB)"
Отправлено Анонимус42 , 04-Сен-12 11:36 
Система? Софт?



"SNMP - Создание своего OID (MIB)"
Отправлено lifefornazgul , 04-Сен-12 13:41 
> Система? Софт?

FreeBSD 9.0
net-snmp 5.7.1_7

Возможно мне нужен простой пример "snmpd.conf" где указываются привязки скриптов к OID (если это конечо в этом файле, а не в другом).


п.с. в дальнейшем буду пробовать привязывать и на ОС Виндовс


"SNMP - Создание своего OID (MIB)"
Отправлено Анонимус42 , 04-Сен-12 16:41 
>> Система? Софт?
> FreeBSD 9.0
> net-snmp 5.7.1_7
> Возможно мне нужен простой пример "snmpd.conf" где указываются привязки скриптов к OID
> (если это конечо в этом файле, а не в другом).

читаем man snmpd.conf
exec [MIBOID] NAME PROG ARGS
пример
exec .1.2.3.4.54.5.6.67.57.57.45 supername супер_пупер_скрипт



"SNMP - Создание своего OID (MIB)"
Отправлено lifefornazgul , 04-Сен-12 17:43 
>>> Система? Софт?
>> FreeBSD 9.0
>> net-snmp 5.7.1_7
>> Возможно мне нужен простой пример "snmpd.conf" где указываются привязки скриптов к OID
>> (если это конечо в этом файле, а не в другом).
> читаем man snmpd.conf
> exec [MIBOID] NAME PROG ARGS
> пример
> exec .1.2.3.4.54.5.6.67.57.57.45 supername супер_пупер_скрипт

Тоесть когда я на своей фре добавлю эту строку в снмпд.конф, то при получении этого OID

.1.2.3.4.54.5.6.67.57.57.45 
, будет выдаватся значение полученное в супер_пупер_скрипте, да?
Права на супер_пупер_скрипт какие должны быть?

А так же в мане написано что "ехес" или "сш".
Если у меня скрипт перловский, мне писать ехес или perl ?


"SNMP - Создание своего OID (MIB)"
Отправлено lifefornazgul , 04-Сен-12 20:09 
>[оверквотинг удален]
>> читаем man snmpd.conf
>> exec [MIBOID] NAME PROG ARGS
>> пример
>> exec .1.2.3.4.54.5.6.67.57.57.45 supername супер_пупер_скрипт
> Тоесть когда я на своей фре добавлю эту строку в снмпд.конф, то
> при получении этого OID
.1.2.3.4.54.5.6.67.57.57.45 
, будет выдаватся значение

> полученное в супер_пупер_скрипте, да?
> Права на супер_пупер_скрипт какие должны быть?
> А так же в мане написано что "ехес" или "сш".
> Если у меня скрипт перловский, мне писать ехес или perl ?

Написал скрипт на баше который выдает значение "integer" "5".
Добавил в снмпд.конф
exec .1.3.6.1.4.1.1958 /usr/local/bin/bash /home/user/bin/test.sh

команда

snmpwalk -v2c -c public localhost .1.3.6.1.4.1.1958

выдает ошибку что оид не найден. как же его всетаки привязать?
SNMPv2-SMI::enterprises.1958 = No Such Object available on this agent at this OID

"SNMP - Создание своего OID (MIB)"
Отправлено lifefornazgul , 05-Сен-12 03:26 
>[оверквотинг удален]
>> Права на супер_пупер_скрипт какие должны быть?
>> А так же в мане написано что "ехес" или "сш".
>> Если у меня скрипт перловский, мне писать ехес или perl ?
> Написал скрипт на баше который выдает значение "integer" "5".
> Добавил в снмпд.конф
> exec .1.3.6.1.4.1.1958 /usr/local/bin/bash /home/user/bin/test.sh
> команда
>
snmpwalk -v2c -c public localhost .1.3.6.1.4.1.1958

> выдает ошибку что оид не найден. как же его всетаки привязать?
> SNMPv2-SMI::enterprises.1958 = No Such Object available on this agent at this OID

Up


"SNMP - Создание своего OID (MIB)"
Отправлено lightspeed , 05-Сен-12 12:23 
>[оверквотинг удален]
>>> А так же в мане написано что "ехес" или "сш".
>>> Если у меня скрипт перловский, мне писать ехес или perl ?
>> Написал скрипт на баше который выдает значение "integer" "5".
>> Добавил в снмпд.конф
>> exec .1.3.6.1.4.1.1958 /usr/local/bin/bash /home/user/bin/test.sh
>> команда
>>
snmpwalk -v2c -c public localhost .1.3.6.1.4.1.1958

>> выдает ошибку что оид не найден. как же его всетаки привязать?
>> SNMPv2-SMI::enterprises.1958 = No Such Object available on this agent at this OID
> Up

Вот тебе рабочий пример:
extend .1.3.6.1.3.35514.2.1 sda /usr/local/sbin/hddtemp sda

Читать так:
snmpwalk -v 1 -c public localhost .1.3.6.1.3.35514.2.1
ну и полазь там внутри..


"SNMP - Создание своего OID (MIB)"
Отправлено lifefornazgul , 05-Сен-12 15:10 

> Вот тебе рабочий пример:
> extend .1.3.6.1.3.35514.2.1 sda /usr/local/sbin/hddtemp sda
> Читать так:
> snmpwalk -v 1 -c public localhost .1.3.6.1.3.35514.2.1
> ну и полазь там внутри..

работает.. выдает кучу оидов.
Капец теперь окончательно запутался.

"sda" это произвольное имя?

/usr/local/sbin/hddtemp - что это вообще? у меня такой команды нет в шелле. да и файла такого вообще.
Обьясни как это работает, пожалуйста


"SNMP - Создание своего OID (MIB)"
Отправлено Анонимус42 , 05-Сен-12 22:38 
Быть хорошим админом это значит уметь разобраться в непонятной проблеме. Иногда можно спросить. Иногда.



"SNMP - Создание своего OID (MIB)"
Отправлено lifefornazgul , 05-Сен-12 23:31 
> Быть хорошим админом это значит уметь разобраться в непонятной проблеме. Иногда можно
> спросить. Иногда.

Ты прав. согласен. просто мне срочно надо.


"SNMP - Создание своего OID (MIB)"
Отправлено lifefornazgul , 06-Сен-12 19:31 
>> Быть хорошим админом это значит уметь разобраться в непонятной проблеме. Иногда можно
>> спросить. Иногда.
> Ты прав. согласен. просто мне срочно надо.

Разобрался. Спасибо :)


"SNMP - Создание своего OID (MIB)"
Отправлено mozgs , 24-Сен-12 19:56 
>>> Быть хорошим админом это значит уметь разобраться в непонятной проблеме. Иногда можно
>>> спросить. Иногда.
>> Ты прав. согласен. просто мне срочно надо.
> Разобрался. Спасибо :)

А в чем трабл был? Я второй день разобраться не могу.


"SNMP - Создание своего OID (MIB)"
Отправлено PavAdm , 28-Июн-14 19:50 
>>>> Быть хорошим админом это значит уметь разобраться в непонятной проблеме. Иногда можно
>>>> спросить. Иногда.
>>> Ты прав. согласен. просто мне срочно надо.
>> Разобрался. Спасибо :)
> А в чем трабл был? Я второй день разобраться не могу.

Спустя 2 года отвечу, может кому поможет сэкономить время (сам потратил 2 дня)  =)

Лично у меня  проблема была в следующем:
1) В конфигурационном файле необходимо дать разрешение на чтение из под сети (как я понял, по дефолту запросы отбрасываются)
                                      #  Full access from an example network
                                      #     Adjust this network address to match your   local
                                      #     settings, change the community string,
                                      #     and check the 'agentAddress' setting above
  rocommunity secret  10.125.2.0/24                
2) Так же, в качестве примера, в конфигурационном файле есть запись
extend   test1   /bin/echo  "Hello, world!"                                          
Так вот, для получения этих данных необходимо ввести :
snmpget  -v 2c -c secret IP_SNMP_агента  NET-SNMP-EXTEND-MIB::nsExtendOutLine.\"test1\".1

Косые черты обязательны!

Успехов   =)


"SNMP - Создание своего OID (MIB)"
Отправлено PavAdm , 28-Июн-14 22:29 
Чуть не забыл:
3) скрипт с правами на выполнение я положил в /usr/share/snmp/, до этого он находился в папке рута и при запросе по snmp появлялась ошибка, что отказано в доступе.

"SNMP - Создание своего OID (MIB)"
Отправлено Валерий , 03-Авг-16 12:23 
>[оверквотинг удален]
>> Права на супер_пупер_скрипт какие должны быть?
>> А так же в мане написано что "ехес" или "сш".
>> Если у меня скрипт перловский, мне писать ехес или perl ?
> Написал скрипт на баше который выдает значение "integer" "5".
> Добавил в снмпд.конф
> exec .1.3.6.1.4.1.1958 /usr/local/bin/bash /home/user/bin/test.sh
> команда
>
snmpwalk -v2c -c public localhost .1.3.6.1.4.1.1958

> выдает ошибку что оид не найден. как же его всетаки привязать?
> SNMPv2-SMI::enterprises.1958 = No Such Object available on this agent at this OID

Поскольку сам потратил много времени, оставлю запись тут, может кому то поможет.

Все настройки я делал верно, как в этом топике.

В моем случае оказалось что файл конфигурации (FreeBSD 9.1) находился в /usr/local/share/snmp/snmpd.conf. (Нашел опытным путем)

После внесения туда настроек:

extend ipfw_table1_total /root/scripts/ipfw_table1_total.sh

Все заработало:
snmpwalk -v2c -c public localhost NET-SNMP-EXTEND-MIB::nsExtendObjects
NET-SNMP-EXTEND-MIB::nsExtendCommand."ipfw_table1_total" = STRING: /root/scripts/ipfw_table1_total.sh
NET-SNMP-EXTEND-MIB::nsExtendArgs."ipfw_table1_total" = STRING:
NET-SNMP-EXTEND-MIB::nsExtendInput."ipfw_table1_total" = STRING:
NET-SNMP-EXTEND-MIB::nsExtendCacheTime."ipfw_table1_total" = INTEGER: 5
NET-SNMP-EXTEND-MIB::nsExtendExecType."ipfw_table1_total" = INTEGER: exec(1)
NET-SNMP-EXTEND-MIB::nsExtendRunType."ipfw_table1_total" = INTEGER: run-on-read(1)
NET-SNMP-EXTEND-MIB::nsExtendStorage."ipfw_table1_total" = INTEGER: permanent(4)
NET-SNMP-EXTEND-MIB::nsExtendStatus."ipfw_table1_total" = INTEGER: active(1)
NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."ipfw_table1_total" = STRING:     3003
NET-SNMP-EXTEND-MIB::nsExtendOutputFull."ipfw_table1_total" = STRING:     3003
NET-SNMP-EXTEND-MIB::nsExtendOutNumLines."ipfw_table1_total" = INTEGER: 1
NET-SNMP-EXTEND-MIB::nsExtendResult."ipfw_table1_total" = INTEGER: 0
NET-SNMP-EXTEND-MIB::nsExtendOutLine."ipfw_table1_total".1 = STRING:     3003

#  snmpwalk -v2c -c public localhost NET-SNMP-EXTEND-MIB::nsExtendOutLine
NET-SNMP-EXTEND-MIB::nsExtendOutLine."ipfw_table1_total".1 = STRING:     3001

Можно также использовать ключик "-O n", тогда вывод будет таким:

# snmpwalk -On -v2c -c public localhost NET-SNMP-EXTEND-MIB::nsExtendOutLine
.1.3.6.1.4.1.8072.1.3.2.4.1.2.17.105.112.102.119.95.116.97.98.108.101.49.95.116.111.116.97.108.1 = STRING:     3003