Какие шаги необходимо предпринять для получения конкретной информации из SNMP?

Какие шаги необходимо предпринять для получения конкретной информации из SNMP?

Я хочу запросить FortiGate об использовании процессора.
Согласно документации Fortinet, переменная для использования — 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,

Однако при попытке проверить fgPerCpuHighDetails я получаю:

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

Можете ли вы порекомендовать какой-либо URL-адрес, объясняющий шаги, которые необходимо предпринять для получения информации из 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)

решение1

Чтобы опросить OID, используя его текстовую форму, следует использовать нотацию MIB::OID. Если вы используете OID в его числовой форме, вы можете использовать его напрямую. Это связано с тем, что агенты SNMP используют числовую форму, а люди используют текстовую (похожую на DNS). Таким образом, агенты могут легко анализировать числа, но им нужны текстовые формы, преобразованные в числа. Это делают MIB, поэтому вам нужно указать правильный MIB, где определен OID, чтобы команда snmp могла преобразовать его перед опросом агента.

Имя MIB определяется оператором DEFINITIONSв файле MIB. Не путайте это с именем файла MIB (иногда это одно и то же, но не всегда). Так как fgPerCpuHighDetailsв вашем примере определено в FORTINET-FORTIGATE-MIB.mib, сделайте:

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

чтобы узнать имя MIB. У меня нет этого конкретного MIB, но, скорее всего, имя будет FORTINET-FORTIGATE-MIB.

Используя эту информацию, вы можете опросить устройство:

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

Используйте snmptranslateдля анализа MIB и их исследования:

  • snmptranslate -Td MIB::OIDдля описания OID

  • snmptranslate -Tp MIB::OIDдля отображения иерархической структуры OID и всех дочерних OID.

  • snmptranslate -On MIB:OIDдля перевода OID в числовую форму

  • Дополнительные параметры см. на странице руководства.

Связанный контент