staram się zrozumieć, jak stworzyć MIB: oto co zrobiłem do tej pory:snmpset Obiekt nie jest zapisywalny. Czemu?
stworzyłem MIB i próbował przydzielić wartości do nowego OID => nie
Oto MIB:
TEST-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
OBJECT-TYPE, Integer32,MODULE-IDENTITY FROM SNMPv2-SMI;
test MODULE-IDENTITY
LAST-UPDATED "201112190200Z"
ORGANIZATION "blah"
CONTACT-INFO
"please"
DESCRIPTION
"I am stuck"
REVISION "201112190200Z"
DESCRIPTION
"initial Draft"
::= { iso org(3) dod(6) internet(1) private(4) enterprises(1) 39106 }
testResearch OBJECT IDENTIFIER ::= { test 2 }
testVar OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"just for testing"
::= { testResearch 1}
-- conformance information
testMIBConformance OBJECT IDENTIFIER ::= { test 999 }
testMIBCompliances OBJECT IDENTIFIER ::= { testMIBConformance 1 }
testMIBGroups OBJECT IDENTIFIER ::= { testMIBConformance 2 }
-- compliance statements
testMIBCompliance MODULE-COMPLIANCE
STATUS current
DESCRIPTION
"blah."
MODULE -- this module
MANDATORY-GROUPS { testGroup }
::= { testMIBCompliances 1 }
-- units of conformance
testGroup OBJECT-GROUP
OBJECTS { testVar }
STATUS current
DESCRIPTION
"The draft"
::= { testMIBGroups 1 }
END
potem
- zatwierdził MIB przed smilint,
- umieścić go w ~/.snmp/MIB/
- mieć ciąg rwcommunity dla wszystkich przyjmujących, bez ograniczeń OID
- wznowiona demona snmpd (na Debianie)
Jak dotąd, wszystko dobrze.
Potem próbował sprawdzić, czy demon wie o tym nowym przedsiębiorstwie, i zrobiłem:
snmpwalk -v2c -m +ALL localhost .1.3.6.1.4.1.39106
która wyprowadza: TEST-MIB :: test = ma takiego obiektu dostępne na tego środka w tym OID
Sądzę, że Snmpd mówi mi, że nie może znaleźć niczego pod tym drzewem, ponieważ nic nie zostało jeszcze ustalone.
Więc staram się ustawić tę zmienną testową snmpset na muszli:
snmpset -v2c -m +ALL localhost .1.3.6.1.4.1.39106.2.1 i 111
wyjścia:
Error in packet.
Reason: notWritable (That object does not support modification)
Failed object: TEST-MIB::testVar
Próbowałem również z: snmpset -v2c -m + ALL localhost. 1.3.6.1.4.1.39106.2.1.0 i 111
i jako root, ale bez powodzenia
Ale kiedy zrobić snmptranslate, widzę, że MIB jest analizowany poprawnie:
snmptranslate -Td 1.3.6.1.4.1.39106.2.1
TEST-MIB::testVar
testVar OBJECT-TYPE
-- FROM TEST-MIB
SYNTAX Integer32
MAX-ACCESS read-write
STATUS current
DESCRIPTION "just for testing"
::= { iso(1) org(3) dod(6) internet(1) private(4) enterprises(1) test(39106) testResearch(2) 1 }
jest to błąd? Znany problem?
Spędziwszy godzinę przeczytaniu wszystkich powiązanych post na przepełnienie stosu (13 stron, yehaoo), zdałem sobie sprawę, że może użyć mib2c przekształcić mój mib na kod c, a następnie ponownie skompilować netsmtpd z tymi bibliotekami. Czy muszę napisać jakikolwiek kod C, aby to zrobić? Nie jestem C-noobem, jestem totalnie nieświadomy wszystkiego, co dotyczy C .... :( – Ant