Я хочу запросить 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
для описания OIDsnmptranslate -Tp MIB::OID
для отображения иерархической структуры OID и всех дочерних OID.snmptranslate -On MIB:OID
для перевода OID в числовую формуДополнительные параметры см. на странице руководства.