SNMP - No Such Object disponível neste agente neste OID

1

Instalei um snmpd em uma instalação mínima do CentOS 7 para pesquisa de parâmetros do sistema, por exemplo:

snmpget -v 2c -c public 127.0.0.1 .1.3.6.1.2.1.2.2.1.2

para o comando acima, recebo o seguinte resultado:

IF-MIB::ifDescr = No Such Object available on this agent at this OID

quando executo:

 snmpwalk -v 2c -c public 127.0.0.1

para verificar se o IF-MIB é carregado pelo snmpd, recebo o seguinte resultado:

     SNMPv2-MIB::sysDescr.0 = STRING: Linux vm_test.whatever.com 3.10.0-862.6.3.el7.x86_64 #1 SMP Tue Jun 26 16:32:21 UTC 2018 x86_64
     SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
     DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (90641) 0:15:06.41
     SNMPv2-MIB::sysContact.0 = STRING: Root <root@localhost> (configure /etc/snmp/snmp.local.conf)
     SNMPv2-MIB::sysName.0 = STRING: vm_test.whatever.com
     SNMPv2-MIB::sysLocation.0 = STRING: Unknown (edit /etc/snmp/snmpd.conf)
     SNMPv2-MIB::sysORLastChange.0 = Timeticks: (4) 0:00:00.04
     SNMPv2-MIB::sysORID.1 = OID: SNMP-MPD-MIB::snmpMPDCompliance
     SNMPv2-MIB::sysORID.2 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance
     SNMPv2-MIB::sysORID.3 = OID: SNMP-FRAMEWORK- MIB::snmpFrameworkMIBCompliance
     SNMPv2-MIB::sysORID.4 = OID: SNMPv2-MIB::snmpMIB
     SNMPv2-MIB::sysORID.5 = OID: TCP-MIB::tcpMIB
     SNMPv2-MIB::sysORID.6 = OID: IP-MIB::ip
     SNMPv2-MIB::sysORID.7 = OID: UDP-MIB::udpMIB
     SNMPv2-MIB::sysORID.8 = OID: SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup
     SNMPv2-MIB::sysORID.9 = OID: SNMP-NOTIFICATION-MIB::snmpNotifyFullCompliance
     SNMPv2-MIB::sysORID.10 = OID: NOTIFICATION-LOG-MIB::notificationLogMIB
     SNMPv2-MIB::sysORDescr.1 = STRING: The MIB for Message Processing and Dispatching.
     SNMPv2-MIB::sysORDescr.2 = STRING: The management information definitions for the SNMP User-based Security Model.
     SNMPv2-MIB::sysORDescr.3 = STRING: The SNMP Management Architecture MIB.
     SNMPv2-MIB::sysORDescr.4 = STRING: The MIB module for SNMPv2 entities
     SNMPv2-MIB::sysORDescr.5 = STRING: The MIB module for managing TCP implementations
     SNMPv2-MIB::sysORDescr.6 = STRING: The MIB module for managing IP and ICMP implementations
     SNMPv2-MIB::sysORDescr.7 = STRING: The MIB module for managing UDP implementations
     SNMPv2-MIB::sysORDescr.8 = STRING: View-based Access Control Model for SNMP.
     SNMPv2-MIB::sysORDescr.9 = STRING: The MIB modules for managing SNMP Notification, plus filtering.
     SNMPv2-MIB::sysORDescr.10 = STRING: The MIB module for logging SNMP Notifications.
     SNMPv2-MIB::sysORUpTime.1 = Timeticks: (4) 0:00:00.04
     SNMPv2-MIB::sysORUpTime.2 = Timeticks: (4) 0:00:00.04
     SNMPv2-MIB::sysORUpTime.3 = Timeticks: (4) 0:00:00.04
     SNMPv2-MIB::sysORUpTime.4 = Timeticks: (4) 0:00:00.04
     SNMPv2-MIB::sysORUpTime.5 = Timeticks: (4) 0:00:00.04
     SNMPv2-MIB::sysORUpTime.6 = Timeticks: (4) 0:00:00.04
     SNMPv2-MIB::sysORUpTime.7 = Timeticks: (4) 0:00:00.04
     SNMPv2-MIB::sysORUpTime.8 = Timeticks: (4) 0:00:00.04
     SNMPv2-MIB::sysORUpTime.9 = Timeticks: (4) 0:00:00.04
     SNMPv2-MIB::sysORUpTime.10 = Timeticks: (4) 0:00:00.04
     HOST-RESOURCES-MIB::hrSystemUptime.0 = Timeticks: (872972) 2:25:29.72
     HOST-RESOURCES-MIB::hrSystemUptime.0 = No more variables left in this MIB View (It is past the end of the MIB tree)

a saída me diz que o IF-MIB não está sendo verificado, mas se executar o comando:

 snmptranslate -Dinit_mib .1.3.2>&1 | grep MIBDIR

para verificar os mibdirs (diretórios) e os MIBs encontrados (MIBS visualizados) recebo o seguinte resultado:

  registered debug token init_mib, 1
  init_mib: Seen MIBDIRS: Looking in '/root/.snmp/mibs:/usr/share/snmp/mibs' for mib dirs ...
  init_mib: Seen MIBS: Looking in ':HOST-RESOURCES-MIB:HOST-RESOURCES- 
  TYPES:UCD-DISKIO-MIB:TCP-MIB:UDP-MIB:MTA-MIB:NETWORK-SERVICES-MIB:SCTP- 
  MIB:RMON-MIB:EtherLike-MIB:LM-SENSORS-MIB:SNMPv2-MIB:IF-MIB:IP- 
  MIB:NOTIFICATION-LOG-MIB:DISMAN-EVENT-MIB:DISMAN-SCHEDULE-MIB:UCD-SNMP- 
  MIB:UCD-DEMO-MIB:SNMP-TARGET-MIB:NET-SNMP-AGENT-MIB:SNMP-MPD-MIB:SNMP- 
  USER-BASED-SM-MIB:SNMP-FRAMEWORK-MIB:SNMP-VIEW-BASED-ACM-MIB:SNMP- 
  COMMUNITY-MIB:IPV6-ICMP-MIB:IPV6-MIB:IPV6-TCP-MIB:IPV6-UDP-MIB:IP-FORWARD- 
  MIB:NET-SNMP-PASS-MIB:NET-SNMP-EXTEND-MIB:UCD-DLMOD-MIB:SNMP-NOTIFICATION- 
  MIB:SNMPv2-TM:NET-SNMP-VACM-MIB' for mib files ...
  init_mib: Seen PREFIX: Looking in '.1.3.6.1.2.1' for prefix ..

e se você olhar com cuidado, o IF-MIB está marcado como Mibs Visto. Por que não está aparecendo no comando snmpwalk? e por que o OID relacionado ao IF-MIB não existe neste agente? Isso é algo relacionado a permissão? OS relacionado?

    
por D Venzi 21.08.2018 / 22:35

2 respostas

2

O daemon SNMP após a instalação no CentOS é configurado por padrão para responder às consultas de uma exibição de árvore MIB restrita usando a comunidade "pública" por motivos de segurança.

Como configurado por padrão, a árvore padrão (pública) "MIB pública" permitida é somente para .1.3.6.1.2.1.1 e .1.3.6.1.2.1.25.1.1; Se você olhar de perto, o espaço de endereço do IF-MIB é .1.3.6.1.2.1.2. Portanto, consultar objetos nesse espaço de endereço MIB não é permitido por padrão. Isso também explica por que o comando snmpwalk mostra apenas uma visão muito restrita.

Consequentemente, para obter o daemon / serviço SNMP respondendo às suas consultas, você deve primeiro configurar uma nova exibição (e, por motivos de segurança, melhor também uma nova comunidade) no arquivo de configuração /etc/snmp/snmpd.conf .

Em seguida, configuraremos uma comunidade "privada" por motivos de segurança e ampliaremos o espaço de árvore da MIB que pode ser consultado.

Assim, adicione /etc/snmp/snmpd.conf

rocommunity private 127.0.0.1 .1

Onde 127.0.0.1 é o endereço IP que pode fazer consultas, e .1 a árvore MIB inteira. A comunidade ro também certifica que você só pode fazer consultas de leitura, que são mais seguras.

Depois de configurar o arquivo snmpd.conf , você precisa reiniciar o serviço SNMP, como em:

sudo service snmpd restart

ou

sudo systemctl restart snmpd

Agora, para a consulta. Se você não estiver solicitando um nó de folha MIB, não será possível usar snmpget . Você tem que usar snmpwalk para percorrer a árvore MIB como em:

$ snmpwalk -v 2c -c private 127.0.0.1 .1.3.6.1.2.1.2.2.1.2
IF-MIB::ifDescr.1 = STRING: lo
IF-MIB::ifDescr.2 = STRING: eth0
IF-MIB::ifDescr.3 = STRING: eth1
IF-MIB::ifDescr.4 = STRING: eth2

Por outro lado, se você precisar consultar um nó folha da árvore MIB, por exemplo, sua segunda interface no sistema, faça:

$ snmpget -v 2c -c private 127.0.0.1 .1.3.6.1.2.1.2.2.1.2.2
IF-MIB::ifDescr.2 = STRING: eth0

PS Obviamente, nos sistemas de produção, você chama o nome da sua comunidade de algo diferente de privado.

PS2. O fato de você instalar um arquivo MIB é que você está instalando dicionários que traduzem números para texto legível para humanos e scripts / software de monitoramento de rede. Não ter um MIB instalado não impede a consulta de uma subárvore MIB específica em formato numérico se o contexto de segurança para acessar essa comunidade SNMP permitir

    
por 22.08.2018 / 06:07
0

Tente o abaixo para snmpwalk,

snmpwalk  -v 2c -c public 127.0.0.1 .1.3.6.1.2.1.2.2.1.2

fornecerá o resultado abaixo

IF-MIB::ifDescr.1 = STRING: lo
IF-MIB::ifDescr.2 = STRING: eth2
IF-MIB::ifDescr.3 = STRING: eth3
IF-MIB::ifDescr.4 = STRING: eth4
IF-MIB::ifDescr.5 = STRING: eth5
IF-MIB::ifDescr.6 = STRING: eth0
IF-MIB::ifDescr.7 = STRING: eth1
IF-MIB::ifDescr.8 = STRING: eth6
IF-MIB::ifDescr.9 = STRING: eth7
IF-MIB::ifDescr.10 = STRING: bond0

Então você deve adicionar outro nó para obter o resultado.

snmpget -v 2c -c public 127.0.0.1 .1.3.6.1.2.1.2.2.1.2.1
    
por 21.08.2018 / 22:56