Welche Schritte sind erforderlich, um bestimmte Informationen von SNMP zu erhalten?

Welche Schritte sind erforderlich, um bestimmte Informationen von SNMP zu erhalten?

Ich möchte die CPU-Auslastung eines FortiGate abfragen.
Laut Fortinet-Dokumentation ist die zu verwendende Variable 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,

Wenn ich jedoch versuche, fgPerCpuHighDetails zu prüfen, erhalte ich:

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

Können Sie eine URL empfehlen, die die Schritte zum Abrufen von Informationen von SNMP erklärt?


$ 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)

Antwort1

Um eine OID in ihrer Textform abzufragen, sollten Sie die MIB::OIDNotation verwenden. Wenn Sie die OID in ihrer numerischen Form verwenden, können Sie sie direkt verwenden. Dies liegt daran, dass SNMP-Agenten die numerische Form verwenden und Menschen die Textform (ähnlich wie DNS). Agenten können die Zahlen also problemlos analysieren, benötigen aber Textformen, die in Zahlen übersetzt werden. MIBs tun dies, daher müssen Sie die richtige MIB angeben, in der die OID definiert ist, damit der SNMP-Befehl sie übersetzen kann, bevor er den Agenten abfragt.

Der MIB-Name wird mit der Anweisung in der MIB-Datei definiert DEFINITIONS. Verwechseln Sie dies nicht mit dem Namen der MIB-Datei (manchmal derselbe, aber nicht immer). Gehen Sie also wie fgPerCpuHighDetailsin Ihrem Beispiel definiert vor FORTINET-FORTIGATE-MIB.mib:

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

um den Namen der MIB herauszufinden. Ich habe diese spezielle MIB nicht, aber wahrscheinlich wird der Name sein FORTINET-FORTIGATE-MIB.

Mit diesen Informationen können Sie dann das Gerät abfragen:

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

Verwenden Sie es snmptranslate, um die MIBs zu analysieren und zu erkunden:

  • snmptranslate -Td MIB::OIDzur Beschreibung einer OID

  • snmptranslate -Tp MIB::OIDum die hierarchische Struktur einer OID und aller untergeordneten OIDs abzubilden.

  • snmptranslate -On MIB:OIDeine OID in eine numerische Form übersetzen

  • Weitere Optionen finden Sie auf der Manpage.

verwandte Informationen