Ребята, помогите пожалуйста.
Перед нами такая задача, есть скрипт который выгребает нужное значение. Далее это значение нужно поместить в какойнибудь OID или создать свой собственный Object Identificator (OID) например: 1.3.6.х.х.х.х.х. Чтобы этот ОИД потом получать при помощи snmpwalk/snmpget на удаленном компе.Гуглил целый день, прочитал много инфы, однако конкретного примера не нашел...
Система? Софт?
> Система? Софт?FreeBSD 9.0
net-snmp 5.7.1_7Возможно мне нужен простой пример "snmpd.conf" где указываются привязки скриптов к OID (если это конечо в этом файле, а не в другом).
п.с. в дальнейшем буду пробовать привязывать и на ОС Виндовс
>> Система? Софт?
> 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 супер_пупер_скрипт
>>> Система? Софт?
>> 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 ?
>[оверквотинг удален]
>> читаем 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
>[оверквотинг удален]
>> Права на супер_пупер_скрипт какие должны быть?
>> А так же в мане написано что "ехес" или "сш".
>> Если у меня скрипт перловский, мне писать ехес или 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 OIDUp
>[оверквотинг удален]
>>> А так же в мане написано что "ехес" или "сш".
>>> Если у меня скрипт перловский, мне писать ехес или 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
ну и полазь там внутри..
> Вот тебе рабочий пример:
> 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 - что это вообще? у меня такой команды нет в шелле. да и файла такого вообще.
Обьясни как это работает, пожалуйста
Быть хорошим админом это значит уметь разобраться в непонятной проблеме. Иногда можно спросить. Иногда.
> Быть хорошим админом это значит уметь разобраться в непонятной проблеме. Иногда можно
> спросить. Иногда.Ты прав. согласен. просто мне срочно надо.
>> Быть хорошим админом это значит уметь разобраться в непонятной проблеме. Иногда можно
>> спросить. Иногда.
> Ты прав. согласен. просто мне срочно надо.Разобрался. Спасибо :)
>>> Быть хорошим админом это значит уметь разобраться в непонятной проблеме. Иногда можно
>>> спросить. Иногда.
>> Ты прав. согласен. просто мне срочно надо.
> Разобрался. Спасибо :)А в чем трабл был? Я второй день разобраться не могу.
>>>> Быть хорошим админом это значит уметь разобраться в непонятной проблеме. Иногда можно
>>>> спросить. Иногда.
>>> Ты прав. согласен. просто мне срочно надо.
>> Разобрался. Спасибо :)
> А в чем трабл был? Я второй день разобраться не могу.Спустя 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Косые черты обязательны!
Успехов =)
Чуть не забыл:
3) скрипт с правами на выполнение я положил в /usr/share/snmp/, до этого он находился в папке рута и при запросе по snmp появлялась ошибка, что отказано в доступе.
>[оверквотинг удален]
>> Права на супер_пупер_скрипт какие должны быть?
>> А так же в мане написано что "ехес" или "сш".
>> Если у меня скрипт перловский, мне писать ехес или 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