Не удается получить расширенный вывод SNMP в Perl

Я написал Perl-скрипт для возврата некоторых значений SNMP, и он отлично работает. Теперь я написал сценарий на удаленном сервере и использовал функцию расширения в SNMP, чтобы поместить значение из сценария в SNMP.

Если я бегу:

snmpget -v2c -c public 10.0.0.10 'NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."cc_power"'

Я получаю результат:

NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."cc_power" = STRING: 544

Но когда я пытаюсь использовать свой сценарий для получения информации, он не получает ее. Вот сценарий:

#!/usr/bin/perl     

use strict;
use SNMP;
use RRDs;

my $rrd_db = "/storage/db/rrd/cc_power.rrd";

my $sess;
my $val;
my $error;

$sess = new SNMP::Session(DestHost => "10.0.0.10", Community => "public", Version => 2);
my $power = $sess->get('NET-SNMP-EXTEND-MIB::nsExtendOutput1Line.\"cc_power\"');

$error=RRDs::error;
die "ERROR while updating RRD: $error\n" if $error;

my $date=time;
print "Data Script has been run - Output: ${date}:${power}\n";

но ничего не возвращается, и я понятия не имею, почему... никаких ошибок или чего-то еще, я пропустил что-то глупое?

Надеюсь, кто-то может помочь, поскольку это сводит меня с ума :)


person ard    schedule 18.12.2010    source источник
comment
Используйте wireshark, чтобы проверить, правильно ли отправляется SNMP-получение из вашего скрипта. Также проверьте ответ и сравните его с пакетами, захваченными при успешном использовании net-snmp get. Вы также должны включить отладку SNMP, чтобы увидеть, есть ли какие-то проблемы. $SNMP::подробный = 1; $SNMP::отладка = 1;   -  person L.R.    schedule 19.12.2010
comment
Привет, спасибо за идею, но после того, как я написал, я подумал, что, может быть, мне стоит попробовать OID, и это сработало, значит, что-то не очень хорошо переводится...   -  person ard    schedule 19.12.2010


Ответы (1)


Я предполагаю, что вы использовали netsnmp snmpget. Что ж, он скрывает от вас слишком много деталей, поскольку загружает документы MIB в фоновом режиме и красиво переводит значения OID и SNMP во всевозможные удобные для пользователя форматы.

Так что в следующий раз обратите внимание на то, какое украшение он выполняет, и смоделируйте его в своем собственном коде, чтобы добиться тех же эффектов.

person Lex Li    schedule 19.12.2010