Къде се съхраняват SNMP MIB OID стойности и тип достъп за всеки OID, посочен в MIB файл, в базирани на Linux вградени системи? (като мрежово оборудване, декодери, машинно управление, индустриална автоматизация) Трябва да има вътрешна база данни за вътрешно съхранение на всички тези OID MIB стойности, имена, типове достъп.
Къде се съхраняват стойностите на OID MIB?
Отговори (2)
Като цяло има няколко начина, по които данните съществуват и са достъпни от snmp агента:
1) Вътрешната памет на агента, обикновено само за конфигуриране и наблюдение на самия агент
2) Агентът извършва системни повиквания, за да направи запитване до локалното устройство/софтуер, за да търси информацията, от която се нуждае. Например, когато поискате времето за работа на машината от HOST-RESOURCES-MIB, тогава агентът ще определи това, като попита ядрото (чрез API или чрез /proc като файлова система или...)
3) Агентът комуникира с нещо друго чрез някакъв механизъм, подобен на RPC. Един такъв механизъм е протоколът AgentX, който е протокол от главен агент към подагент, който е подмножество на SNMP за използване в локална система. Подагентите се регистрират при главния агент, като посочват, че искат да предложат услуга за част от MIB дървото.
По принцип много рядко се случва самият агент да знае данните. Почти винаги трябва да отидете да попитате нещо друго в системата, за да докладвате информацията.
Най-общо казано за net-snmp базирани агенти, дефинициите на обекти се използват за генериране на C изходни файлове, които накрая се изграждат и свързват в SNMP агента, snmpd. Не прочетох целия изходен код на net-snmp, но се съмнявам дали се използва вътрешна база данни.