Z monitorowania SNMP mo?na skorzysta? przy urz?dzeniach takich jak drukarki, prze??czniki sieciowe, routery czy UPS-y, kt¨®re zazwyczaj maj? w??czon? obs?ug? SNMP a w kt¨®rych niepraktyczne jest instalowanie kompletnego systemu operacyjnego i agent¨®w Áú»¢¶Ä²©.
?eby mie? mo?liwo?? odczytania danych udost?pnianych przez agent¨®w SNMP na tych urz?dzeniach, serwer Áú»¢¶Ä²© musi by? wst?pnie skompilowany z obs?ug? SNMP.
Testy SNMP wykonywane s? tylko z wykorzystaniem protoko?u UDP.
Je?eli monitorujemy urz?dzenia SNMPv3, nale?y si? upewni?, ?e msgAuthoritativeEngineID (znany r¨®wnie? jako snmpEngineID lub "Engine ID") nie jest wsp¨®?dzielony przez dwa urz?dzenia. Zgodnie z (rozdzia? 3.1.1.1) musi by? unikalny dla ka?dego urz?dzenia.
O ile poprzednio dla uwierzytelniania i prywatno?ci SNMPv3 obs?ugiwane by?y jedynie protoko?y MD5 i DES, to pocz?wszy od Áú»¢¶Ä²© 2.2 obs?ugiwane s? protok¨®? uwierzytelniania SHA i protok¨®? prywatno?ci AES.
Pocz?wszy od wersji 2.2 demony serwera i proxy Áú»¢¶Ä²© poprawnie u?ywaj? parametru konfiguracji Timeout podczas wykonywania test¨®w SNMP. Dodatkowo demony nie b?d? wykonywa?y powt¨®rek po pojedynczym nieprawid?owym (op¨®?nienie/z?e uprawnienia) zapytaniu SNMP. Poprzednio u?ywane by?y bie??ce op¨®?nienie i ilo?? powt¨®rze¨½ z biblioteki SNMP (1 sekunda i 5 powt¨®rze¨½).
Pocz?wszy od wersji 2.2.8 demony serwera i proxy Áú»¢¶Ä²© zawsze powt¨®rz? przynajmniej jeden raz: albo poprzez mechanizm powtarzania biblioteki SNMP albo poprzez wewn?trzny mechanizm przetwarzania zbiorczego.
Pocz?wszy od wersji 2.2.3 demony serwera i proxy Áú»¢¶Ä²© pytaj? urz?dzenia SNMP o wiele warto?ci w jednym zapytaniu. Dzia?a to dla wielu rodzaj¨®w pozycji SNMP (zwyk?e pozycje SNMP, pozycje SNMP z dynamicznymi indeksami oraz niskopoziomowe wykrywanie SNMP) a przetwarzanie SNMP powinno by? znacznie wydajniejsze. Jak to dzia?a mo?na zobaczy? poni?ej w rozdziale o szczeg¨®?ach technicznych.
Pocz?wszy od wersji 2.2.7 demony serwera i proxy Áú»¢¶Ä²©, w przypadku odebrania b??dnej odpowiedzi SNMP, b?d? w nast?puj?cy spos¨®b logowa? linie:SNMP response from host "gateway" does not contain all of the requested variable bindings
Mimo, ?e nie rozwi?zuje to wszystkich problem¨®w, jest to wystarczaj?cy sygna? do tego, by ustawi? parametr konfiguracji EnableSNMPBulkRequests
na 0, ?eby wy??czy? globalnie zapytania zbiorcze SNMP.
?eby rozpocz?? monitorowanie urz?dze¨½ poprzez SNMP, nale?y wykona? nast?puj?ce kroki:
Utworzy? host dla urz?dzenia z interfejsem SNMP.
Wprowadzi? adres IP. Ustawi? stan hosta na NIE MONITOROWANY. Mo?na u?y? jednego z dostarczonych szablon¨®w SNMP (Template SNMP Device lub innych), kt¨®re automatycznie dodadz? zestaw pozycji. Jednak?e, szablon mo?e by? niekompatybilny z hostem.
Testy SNMP nie korzystaj? z portu Agenta, jest on ignorowany.
Znale?? ci?g SNMP (lub OID) pozycji, kt¨®re chcemy monitorowa?.
?eby otrzyma? list? ci?g¨®w SNMP, nale?y u?y? komendy snmpwalk (cz??? oprogramowania , kt¨®ra powinna by? zainstalowana jako cz??? instalacji Áú»¢¶Ä²©) lub podobnego narz?dzia:
W tym przypadku '2c' oznacza wersj? SNMP, mo?na zamiast tego poda? '1', ?eby wskaza?, ?e urz?dzenie obs?uguje SNMP w wersji 1.
Powinno to da? list? ci?g¨®w SNMP oraz ich ostatnie warto?ci. Je?eli nie daje, mo?liwe jest, ?e has?o SNMP (community) jest inne od standardowego 'public', w takim przypadku nale?y odszuka? w?a?ciwe.
Nast?pnie przegl?damy list? i szukamy ci?gu, kt¨®ry chcemy monitorowa?, np.: je?eli chcemy monitorowa? ilo?? bajt¨®w przychodz?cych na prze??czniku na porcie 3, nale?y u?y? ci?gu IF-MIB::ifInOctets.3
z tej linii:
Teraz mo?na wykorzysta? komend? snmpget, ?eby pobra? liczbowy OID dla 'IF-MIB::ifInOctets.3':
Nale?y zauwa?y?, ?e ostatnia liczba w ci?gu to numer portu, kt¨®ry chcemy monitorowa?. Zobacz r¨®wnie?: Dynamiczne indeksy.
Powinno to da? co? takiego jak:
I znowu, ostatni numer w OID to numer portu.
Wygl?da na to, ?e 3COM dodaje do portu setk?, np.: port 1 = port 101, port 3 = port 103, ale Cisco u?ywa zwyk?ych liczb, np.: port 3 = 3.
Niekt¨®re z cz??ciej u?ywanych OID-¨®w SNMP s? przez Áú»¢¶Ä²© automatycznie t?umaczone na reprezentacj? liczbow?.
W ostatnim przyk?adzie powy?ej typem warto?ci jest "Counter32", kt¨®ry wewn?trznie odpowiada typowi ASN_COUNTER. Pe?na lista obs?ugiwanych typ¨®w to: ASN_COUNTER, ASN_COUNTER64, ASN_UINTEGER, ASN_UNSIGNED64, ASN_INTEGER, ASN_INTEGER64, ASN_FLOAT, ASN_DOUBLE, ASN_TIMETICKS, ASN_GAUGE, ASN_IPADDRESS, ASN_OCTET_STR i ASN_OBJECT_ID (pocz?wszy od 2.2.8). Typy te odpowiadaj? typom: "Counter32", "Counter64", "UInteger32", "INTEGER", "Float", "Double", "Timeticks", "Gauge32", "IpAddress", "OCTET STRING", "OBJECT IDENTIFIER" na wyj?ciu snmpget, ale r¨®wnie? mog? by? pokazywane jako "STRING", "Hex-STRING", "OID" i inne, zale?nie od tego czy jest wy?wietlana podpowied?.
Utworzenie pozycji do monitorowania.
Zatem, wracamy do Áú»¢¶Ä²© i klikamy na pozycjach, wybranego hosta SNMP utworzonego wcze?niej. W zale?no?ci od tego, czy u?yto lub nie szablonu podczas tworzenia hosta, otrzymamy albo list? zwi?zanych z nim pozycji SNMP albo tylko nowe okno pozycji. Zak?adamy, ?e chcesz utworzy? pozycj? samodzielnie, przy u?yciu informacji zebranych z pomoc? snmpwalk i snmpget, zatem w oknie nowej pozycji w polu 'Opis' nale?a?oby wprowadzi? oryginalny Angielski opis. Nale?y si? upewni?, ?e w polu 'Typ' jest "Agent SNMPv*". Nale?y wprowadzi? has?o SNMP (zwykle public) a w polu 'OID SNMP' tekstowy lub numeryczny OID otrzymany wcze?niej, na przyk?ad: .1.3.6.1.2.1.2.2.1.10.3
W 'Port' wpisa? 161 a w 'Klucz' co? znacz?cego, np. SNMP-InOctets-Bps. Mo?na wybra? Mno?nik oraz wprowadzi? 'Interwa?' i 'Okres przechowywania historii', je?eli chcemy je ustawi? na inne ni? domy?lne. Pozycj? nale?y w??czy?, 'Typ informacji' ustawi? na Liczba (zmiennoprzecinkowa) a 'Zachowaj warto??' na ZMIANA (wa?ne, poniewa? w przeciwnym przypadku dostaniemy z urz?dzenia SNMP skumulowan? warto?? zamiast ostatniej zmiany).
Teraz nale?y zapisa? pozycj? i wr¨®ci? do host¨®w Áú»¢¶Ä²©. Tutaj nale?y zmieni? stan urz?dzenia SNMP na 'Monitorowany' i mo?na sprawdzi? dane SNMP w Ostatnich danych!
Przyk?ad og¨®lny:
Parametr | Opis |
---|---|
Has?o | public |
OID | 1.2.3.45.6.7.8.0 (lub .1.2.3.45.6.7.8.0) |
Klucz | <Unikalny ci?g do u?ycia w wyzwalaczach> Na przyk?ad, "moj_parametr". |
Nale?y zauwa?y?, ?e OID mo?e by? podane zar¨®wno w postaci numerycznej jak i ci?gu znak¨®w. Jednak?e w niekt¨®rych przypadkach, OID znakowy musi by? zast?piony na reprezentacj? numeryczn?. W tym celu mo?na u?y? narz?dzia snmpget:
Monitorowanie parametr¨®w SNMP mo?liwe jest, gdy podczas konfiguracji ?r¨®de? Áú»¢¶Ä²© u?yto prze??cznika --with-net-snmp.
Monitorowanie czasu pracy:
Parametr | Opis |
---|---|
Has?o | public |
OID | MIB::sysUpTime.0 |
Klucz | router.uptime |
Typ warto?ci | Liczba zmiennoprzecinkowa |
Jednostki | uptime |
Mno?nik | 0.01 |
Pocz?wszy od wersji 2.2.3 serwer i proxy Áú»¢¶Ä²© pytaj? urz?dzenie SNMP o wiele warto?ci w jednym zapytaniu. Dotyczy to kilku typ¨®w pozycji SNMP:
Wszystkie pozycje SNMP z pojedynczego interfejsu, posiadaj?ce identyczne parametry s? ustawiane w harmonogramie do wykonania w tym samym momencie. Pierwsze dwa typy pozycji s? przechwytywane przez procesy wysy?aj?ce, kt¨®re grupuj? po maksymalnie 128 pozycji, natomiast niskopoziomowe regu?y wykrywania przetwarzane s? indywidualnie, jak do tej pory.
Na ni?szym poziomie wykonywane s? dwa typy operacji dla warto?ci: pobranie wielu okre?lonych obiekt¨®w i przechodzenie po drzewie OID.
Przy "pobieraniu", u?ywane jest GetRequest-PDU z maksymalnie 128 zmiennymi. Przy "przechodzeniu", u?ywane jest GetNextRequest-PDU dl SNMPv1 oraz GetBulkRequest z polem "max-repetitions" ustawionym najwy?ej na 128 dla SNMPv2 i SNMPv3.
Podsumowanie korzy?ci z przetwarzania zbiorczego dla ka?dego typu pozycji SNMP:
Jednak?e istniej? techniczne problemy zwi?zane z tym, ?e nie wszystkie urz?dzenia s? w stanie zwr¨®ci? 128 warto?ci w zapytaniu. Niekt¨®re zawsze zwracaj? prawid?ow? odpowied?, a inne albo odpowiadaj? b??dem "tooBig(1)" nie odpowiadaj? w og¨®le, gdy? potencjalna odpowied? przekracza jaki? limit.
?eby znale?? w?a?ciw? liczb? obiekt¨®w w zapytaniu dla danego urz?dzenia, Áú»¢¶Ä²© stosuje nast?puj?c? strategi?. Rozpoczyna od zapytania z jedn? warto?ci? w zapytaniu. Je?eli si? powiedzie, pyta o 2 warto?ci w zapytaniu. Je?eli si? ponownie powiedzie, pyta o 3 warto?ci i kontynuuje powielaj?c liczb? obiekt¨®w w zapytaniu o 1.5, co daje w rezultacie nast?puj?c? sekwencj? ilo?ci: 1, 2, 3, 4, 6, 9, 13, 19, 28, 42, 63, 94, 128.
Jednak?e, gdy urz?dzenie odm¨®wi udzielenia prawid?owej odpowiedzi (na przyk?ad, dla 42 zmiennych), Áú»¢¶Ä²© zrobi dwie rzeczy.
Po pierwsze, dla aktualnej paczki pozycji podzieli ilo?? obiekt¨®w na dwa i zapyta 0 21 zmiennych w zapytaniu. Je?eli urz?dzenie dzia?a, to zapytanie powinno zadzia?a? w wi?kszo?ci przypadk¨®w, poniewa? wiadomo, ?e 28 zmiennych zadzia?a?o, a 21 jest znacznie mniej ni? ta liczba. Jednak?e, gdyby to nie zadzia?a?o, Áú»¢¶Ä²© powr¨®ci do zadawania pyta¨½ pojedynczo warto?? po warto?ci. Gdyby dalej nic nie dzia?a?o, to znaczy, ?e urz?dzenie definitywnie nie odpowiada i rozmiar zapytania nie jest przyczyn? takiego stanu.
Drug? rzecz? jak? zrobi Áú»¢¶Ä²©, to przy kolejnych paczkach pozycji rozpocznie z ostatni? znan? dobr? ilo?ci? zmiennych (w naszym przyk?adzie 28) i b?dzie j? zwi?ksza? o 1 w kolejnych krokach. Na przyk?ad, zak?adaj?c ?e najwi?kszym mo?liwym rozmiarem zapytania jest 32 zmiennych, kolejne zapytania b?d? mia?y rozmiar 29, 30, 31, 32 i 33. Ostatnie zapytanie nie uda si? a Áú»¢¶Ä²© nigdy wi?cej nie ustawi rozmiaru na 33. Od tego momentu, Áú»¢¶Ä²© b?dzie pyta? to urz?dzenie maksymalnie z 32 zmiennymi.
Je?eli wi?ksze zapytania z tak? liczb? zmiennych si? nie powiod?, mo?e to oznacza? dwie rzeczy. Nie mo?na okre?li? dok?adnych kryteri¨®w, jakich u?ywa to urz?dzenie do ograniczenia rozmiaru odpowiedzi, ale mo?na spr¨®bowa? aproksymowa? u?ywaj?c liczby zmiennych. Tak wi?c pierwsza mo?liwo?? jest taka, ?e ta liczba zmiennych jest bliska og¨®lnemu limitowi rozmiaru odpowiedzi: czasami odpowied? jest mniejsza od limitu, czasami jest od niego wi?ksza. Druga mo?liwo?? jest taka, ?e po prostu utracono jaki? pakiet UDP. Z tych powod¨®w, je?eli Áú»¢¶Ä²© natrafi na b??d zapytania, zredukuje maksymaln? liczb? zmiennych, by spr¨®bowa? trafi? w bardziej komfortowy zakres dla danego urz?dzenia, ale (pocz?wszy od 2.2.8) maksymalnie dwa razy.
W przyk?adzie powy?ej, je?eli zapytanie z 32 zmiennymi nie powiedzie si?, Áú»¢¶Ä²© zredukuje licznik do 31. Je?eli zdarzy si? to ponownie, Áú»¢¶Ä²© zredukuje licznik do 30. Jednak?e, Áú»¢¶Ä²© nie zredukuje licznika poni?ej 30, poniewa? zak?adamy, ?e kolejne b??dy mog? by? spowodowane raczej utrat? pakiet¨®w UDP, a nie limitem urz?dzenia.