¿Cuáles son los pasos a seguir para obtener información específica de SNMP?

¿Cuáles son los pasos a seguir para obtener información específica de SNMP?

Quiero consultar un FortiGate por su uso de CPU.
Según la documentación de Fortinet, la variable a utilizar es fgPerCpuHighDetails:

$ grep fgPerCpuHighDetails /home/qa/.snmp/mibs/FORTINET-*
/home/qa/.snmp/mibs/FORTINET-FORTIGATE-MIB.mib:fgPerCpuHighDetails OBJECT-TYPE
/home/qa/.snmp/mibs/FORTINET-FORTIGATE-MIB.mib:    OBJECTS     { fnSysSerial, sysName, fgPerCpuHighDetails }
/home/qa/.snmp/mibs/FORTINET-FORTIGATE-MIB.mib:                fgProcModMemCapacity, fgProcModMemUsage, fgPerCpuHighDetails,

Sin embargo, cuando intento sondear fgPerCpuHighDetails, obtengo:

$ snmpget -v2c -cpublic -mALL 192.168.1.99 fgPerCpuHighDetails
FORTINET-FORTIGATE-MIB::fgPerCpuHighDetails = No Such Object available on this agent at this OID

¿Puede recomendarme alguna URL que explique los pasos a seguir para obtener información de SNMP?


$ sudo systemctl status snmpd -l
● snmpd.service - Simple Network Management Protocol (SNMP) Daemon.
   Loaded: loaded (/usr/lib/systemd/system/snmpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2019-07-17 16:46:31 PDT; 21h ago
 Main PID: 879 (snmpd)
    Tasks: 1
   CGroup: /system.slice/snmpd.service
           └─879 /usr/sbin/snmpd -LS0-6d -f

Jul 17 16:46:30 vestal8 systemd[1]: Starting Simple Network Management Protocol (SNMP) Daemon....
Jul 17 16:46:31 vestal8 snmpd[879]: NET-SNMP version 5.7.2
Jul 17 16:46:31 vestal8 systemd[1]: Started Simple Network Management Protocol (SNMP) Daemon..

$ snmpwalk -v2c -c public 192.168.1.99 fgPerCpuHighDetails
fgPerCpuHighDetails: Unknown Object Identifier (Sub-id not found: (top) -> fgPerCpuHighDetails)

Respuesta1

Para sondear un OID usando su forma textual, debes usar la MIB::OIDnotación. Si usa OID en su forma numérica, puede usarlo directamente. Esto se debe a que los agentes SNMP usan forma numérica y los humanos usan forma textual (similar a DNS). Por lo tanto, los agentes pueden analizar fácilmente los números, pero necesitan formas textuales traducidas a números. Las MIB hacen eso, por lo que debe especificar la MIB correcta donde se define el OID para que el comando snmp pueda traducirlo antes de sondear al agente.

El nombre MIB se define con la DEFINITIONSdeclaración en el archivo MIB. No confunda esto con el nombre del archivo MIB (a veces es el mismo, pero no siempre). Entonces, como fgPerCpuHighDetailsen su ejemplo se define en FORTINET-FORTIGATE-MIB.mib, haga:

grep DEFINITIONS /home/qa/.snmp/mibs/FORTINET-FORTIGATE-MIB.mib

para averiguar el nombre del MIB. No tengo este MIB en particular, pero probablemente el nombre sea FORTINET-FORTIGATE-MIB.

Con esa información puedes sondear el dispositivo:

snmpwalk -v2c -c public 192.168.1.99 FORTINET-FORTIGATE-MIB::fgPerCpuHighDetails

Úselo snmptranslatepara analizar las MIB y explorarlas:

  • snmptranslate -Td MIB::OIDpara la descripción de un OID

  • snmptranslate -Tp MIB::OIDpara mapear la estructura jerárquica de un OID y todos los OID secundarios.

  • snmptranslate -On MIB:OIDtraducir un OID a forma numérica

  • Consulte la página de manual para obtener más opciones.

información relacionada