Porovnávané verzie

Kľúč

  • Tento riadok sa pridal
  • Riadok je odstránený.
  • Formátovanie sa zmenilo.

Protokol SNMP

Podporované typy a verzie zariadení
Konfigurácia komunikačnej linky
Konfigurácia komunikačnej stanice
Konfigurácia meraných bodov
Príjem a spracovanie správ typu Trap
Vyčítavanie stromu hodnôt zo skriptu
Literatúra
Zmeny a úpravy
Revízie dokumentu

Kotva
typy_verzie
typy_verzie
Podporované typy a verzie zariadení

...

Poznámka:
V prípade, že je potrebné prevádzkovať protokol SNMP v redundantnom systéme, kedy súčasne bežia dve inštancie procesu KOM na dvoch rôznych počítačoch a nie je možné jednoznačne určiť IP adresu sieťového rozhrania v nastavení linky, vtedy je vhodné zvoliť konfiguráciu v štýle „ANY“, resp. „ALL“. Ďalšia možnosť je zhodne pomenovať sieťové IP adresy rozhrania, napr. SNMP_LAN a v súbore hosts (c:\windows\system32\drivers\etc\hosts) každého počítača prideliť správnu IP adresu. Čiže napr.:

na PC1:192.168.0.1PC1, SNMP_LAN
na PC2:192.168.0.2PC2, SNMP_LAN

Parametre protokolu na linke

Môžu byť zadané nasledovné parametre protokolu na linke:

Kľúčové slovoPlný názovPopisJednotkaNáhradná hodnota
Kotva
trace
trace
TRACE
Trace Level


Trace level = 0- žiadne výpisy
Trace level = 1- len výpis o odoslaní a prijatí UDP paketu a IP adresa
Trace level = 2- informácia o príprave požiadaviek
Trace level = 3- hexadecimálny výpis prijatých a odoslaných UDP pakeov
Trace level = 4- rovnaké podrobnosti ako úroveň 3
Trace level = 5- pridá: podrobný rozklad paketu na štruktúru v kódovaní ASN1
poradie údajov v pakete
pridáva podrobné výpisy
Trace level = 9999- pridáva informácie o príprave a rozhodovaní zaradenia paketov pridáva vyhľadávacie informácie


Hodnoty 5 a 9999 sú určené na vyhľadávanie chýb a ich bežné nastavenie sa neodporúča. V prípade, že je potrebné tieto informácie získavať len zo sledovanej stanice/staníc, je možné rovnako nastaviť hodnotu Trace level len pre zvolenú stanicu v konfigurácii stanice.

Pre bežnú prevádzku je vhodné mať nastavenú hodnotu 1.

-1
Kotva
te
te
TE
Trap EnablePovolenie obsluhy prijímania správ typu Trap.BooleanFalse
Kotva
tti
tti
TTI
Trap IP AddressIP adresa pre prijímanie správ typu Trap.-ANY
Kotva
ttp
ttp
TTP
Trap PortČíslo UDP portu pre prijímanie správ typu Trap.-162

Kotva
komunikacna_stanica
komunikacna_stanica
Konfigurácia komunikačnej stanice

...

Môžu sa zadať nasledovné parametre protokolu stanice:

Tab. č. 2

Kľúčové slovoPlný názovPopisJednotkaNáhradná hodnota
Kotva
wt
wt
WT
Wait TimeoutDoba čakania na odpoveď pri čítaní hodnôt.ms100
Kotva
rc
rc
RC
Retry CountPočet opakovaní žiadostí o hodnotu pri neúspešnom čakaní, potom sa pokračuje žiadosťou o inú hodnotu.-3
Kotva
ec
ec
EC
Max Error CountMaximálny počet neúspešných dotazov, kým stanica prejde do stavu StCOMERR. Úspešne doručená hodnota nuluje počítadlo neúspechov a nastavuje stanicu opäť do stavu StON.-1
Kotva
tl
tl
TL
Trace LevelTen istý význam ako parameter Trace level na linke, ale s platnosťou pre konkrétnu stanicu. Ak je na linke hodnota parametra Trace level vyššia, má prednosť.
Poznámka: Vypisovanie informácií o prichádzajúcich hodnotách je ovplyvňované hodnotou parametra Trace level na linke, keďže po príchode hodnoty ešte nie je zrejmé, pre akú stanicu hodnota prišla.
-0

Kotva
merany_bod
merany_bod
Konfigurácia meraných bodov

...

ASN1 value type: Upresňuje, aký typ hodnoty bude v odpovedi SNMP agenta. Tým aj určuje typy konverzií, ktoré sa môžu aplikovať. Typ hodnoty je možné zistiť v MIB databáze (pozn. prehliadač databáz MIB nie je súčasťou riešenia). Je možné použiť niektorý z voľne dostupných prehliadačov a na základe takto získaných informácií nastaviť očakávaný formát dát. Odporúčame java aplikáciu MIB Browser (http://tl1.ireasoning.com/mibbrowser.shtml).

Možné typy hodnôt:

Integer- vstupná hodnota je očakávaná ako celé číslo so znamienkom (až 64bit *)
Unsigned- vstupná hodnota je očakávaná ako celé číslo bez znamienka (až 64bit *)
Float- vstupná hodnota je očakávaná ako číslo v plávajúcej desatinnej čiarke (float, a longfloat)
Text- vstupná hodnota je textový reťazec
IP address- vstupná postupnosť bytov je interpretovaná ako postupnosť čísiel oddelených bodkou – postupnosť je prevedená na text
Hex text- vstupná postupnosť bytov je interpretovaná ako postupnosť hexadecimálnych čísiel oddelených dvojbodkou – postupnosť je prevedená na text


Typy hodnôt IP address a Hex text je možné aplikovať na ľubovoľný vstupný typ dát, s ktorým sa bude ďalej manipulovať ako s postupnosťou bytov. Takže, napr. vstupná hodnota typu text s hodnotou „test@ipesoft.sk“ môže byť interpretovaná takto:

...

Protokol SNMP umožňuje okrem periodického vyčítavania hodnôt aj posielanie oznámení o výskyte dôležitých udalostí. Tieto oznámenia sa nazývajú Trapy (anglicky Traps). Trapy posiela SNMP agent na IP adresu a port (štandardne 162), ktorú má nakonfigurovanú (jednoduchšie zariadenia podporujú posielanie Trapov na jedinú IP adresu a port, dokonalejšie aj viacero adries).
Nakonfigurovaním linkového parametra Trap IP address sa spustí task, ktorý na porte Trap port prijíma tieto Trapy.
V aktuálnej verzii je podporený príjem SNMP Trapov vo verzii V1 a V2C protokolu SNMP. Štandardne jedno zariadenie posiela Trapy jednej konkrétnej verzie protokolu.
Na príjem Trapov z konkrétneho zariadenia je nutné nakonfigurovať na príslušnej stanici merané body s nasledovnými textovými adresami (stačí vybraté, nie je nutné všetky):

Textové adresy meraných bodov pre Trapy v SNMP protokole vo verzii V1:

Adresa boduDátový typPopis
Kotva
trap_enterprise
trap_enterprise
TRAP_ENTERPRISE
OIDPoložka "Enterprise" trap správy: OID objektu generujúceho trap (pre konkrétne zariadenie konštanta).
Poznámka: Z tohto OID sa dá často určiť výrobca zariadenia.
Kotva
trap_generic_trap
trap_generic_trap
TRAP_GENERIC_TRAP
IntegerPoložka "Generic-trap" trap správy: identifikátor triedy trapu. Pre SNMP verziu 1 sú v RFC 1157 definované tieto hodnoty:
  • 0 - coldStart
  • 1 - warmStart
  • 2 - linkDown
  • 3 - linkUp
  • 4 - authenticationFailure
  • 5 - egpNeighborLoss
  • 6 - enterpriseSpecific
Kotva
trap_specific_trap
trap_specific_trap
TRAP_SPECIFIC_TRAP
IntegerPoložka "Specific-trap" trap správy: špecifický kód správy.
Kotva
trap_timestamp
trap_timestamp
TRAP_TIMESTAMP
TimeTicks
Položka "Time-stamp" trap správy: časová pečiatka (podľa RFC 1157 počet uplynutých stotín sekundy medzi poslednou sieťovou reinicializáciou zariadenia a vygenerovaním trapu.

Kotva
trap_timestamp_pozn
trap_timestamp_pozn
Poznámka: Pokiaľ je meraný bod typu Ai - Analóg vstup, jeho hodnota bude v sekundách, tj. TimeTicks/100.
Pokiaľ je meraný bod typu Ci - Celočíselný vstup, jeho hodnota bude v stotinách sekundy, tj. TimeTicks. Avšak pokiaľ dosiahne maximálnu hodnotu pre celočíselnú hodnotu v D2000 (t.j. 2^31-1, keďže celočíselný typ je implementovaný ako 32-bitový Integer so znamienkom), väčšie hodnoty nadobudnúť nemôže. Podľa RFC 1157 je Time-stamp typu TimeTicks, čo je podľa RFC 1155 nezáporný integer. T.j. môže nadobúdať aj väčšie hodnoty ako 2^31-1, ktoré sa nedajú zapísať do meraného bodu typu Ci - Celočíselný vstup. Preto odporúčame nakonfigurovať meraný bod typu Ai - Analóg vstup.
Kotva
trap_oid
trap_oid
TRAP_OID
OIDPoložka "Object-name" trap správy: OID objektu, ktorý je príčinou vzniku trapu, alebo ktorého sa trap týka.
Kotva
trap_value
trap_value
TRAP_VALUE
ľubovoľnýPoložka "Object-value" trap správy: hodnota objektu, ktorý je príčinou vzniku trapu alebo ktorého sa trap týka.

Poznámka 1: Keďže typ hodnoty je ľubovoľný, je vhodné nakonfigurovať meraný bod typu TxtI - Textový vstup. V opačnom prípade budú niektoré hodnoty neskonvertovateľné (napr. na Celočíselný vstup) a hodnota TRAP_VALUE sa nezmení.

Poznámka 2: Trap môže obsahovať aj niekoľko dvojíc (OID, hodnota). V tom prípade sa postupne nastavujú hodnoty meraných bodov s adresami TRAP_OID a TRAP_VALUE pre všetky tieto dvojice. Možné je napr. nakonfigurovať event spúšťaný na zmenu hodnoty meraného bodu s adresou TRAP_VALUE a dvojice (OID, hodnota) ukladať do databázy.

Kotva
trap_confirm
trap_confirm
TRAP_CONFIRM
BooleanMeraný bod určený na potvrdzovanie spracovania hodnôt. Keďže v jednej správe Trap sa môže nachádzať niekoľko dvojíc (TRAP_OID, TRAP_VALUE), korektné spracovanie napr. ESL skriptom vyžaduje, aby KOM proces nastavil nasledujúcu dvojicu hodnôt až po spracovaní predchádzajúcej. Podobne aj hodnoty ostatných vstupných meraných bodov pre správy typu TRAP by mali byť nastavované až po signalizácii, že predchádzajúce hodnoty týchto meraných bodov boli už spracované.

Pokiaľ existuje výstupný meraný bod s adresou TRAP_CONFIRM, tak KOM proces nastaví ďalšiu dvojicu hodnôt vstupných meraných bodov (TRAP_OID, TRAP_VALUE) až po zápise do výstupného meraného bodu s adresou TRAP_CONFIRM (zápis bude vykonávať zrejme ESL skript určený na spracovanie hodnôt ako jednu z posledných operácií). Hodnoty ostatných meraných bodov (s adresami TRAP_ENTERPRISE, TRAP_GENERIC_TRAP, TRAP_SPECIFIC_TRAP, TRAP_TIMESTAMP a TRAP_OID) budú nastavené, pokiaľ sa jedná o spracovanie prvej dvojice hodnôt (TRAP_OID, TRAP_VALUE) - v prípade ďalších dvojíc ostanú rovnaké a zmenia sa až pri spracovávaní ďalšej správy Trap.

Pokiaľ výstupný meraný bod s adresou TRAP_CONFIRM neexistuje, hodnoty všetkých vstupných meraných bodov s adresami TRAP_* sú nastavované hneď po príchode správy Trap a teda môže dôjsť ku strate hodnôt v dôsledku výskytu viacerých dvojíc hodnôt v správe Trap alebo v dôsledku príchodu novej správy Trap skôr, ako užívateľský skript spracoval predchádzajúce hodnoty.


Textové adresy meraných bodov pre Trapy v SNMP protokole vo verzii V2C:

Adresa boduDátový typPopis
TRAP_REQUEST_IDIntegerPoložka "Request-id" trap správy: zvyšujúce sa číslo trapu.
TRAP_ERROR_STATUSIntegerPoložka "Error-status" trap správy: chybový kód. Štandardne má hodnotu 0, ale potenciálne môže nadobúdať jednu z týchto hodnôt (viď RFC 1448):
  • noError(0)
  • tooBig(1)
  • noSuchName(2)
  • badValue(3)
  • readOnly(4)
  • genErr(5)
  • noAccess(6)
  • wrongType(7)
  • wrongLength(8)
  • wrongEncoding(9)
  • wrongValue(10)
  • noCreation(11)
  • inconsistentValue(12)
  • resourceUnavailable(13)
  • commitFailed(14)
  • undoFailed(15)
  • authorizationError(16)
  • notWritable(17)
  • inconsistentName(18)
TRAP_ERROR_INDEXIntegerPoložka "Error-index" trap správy: rozšírený kód chyby (často 0).
TRAP_UPTIME_OIDOIDPoložka "SysUpTime OID" trap správy: OID objektu SysUpTime.0 . Táto položka by mala mať podľa RFC 1448 hodnotu 1.3.6.1.2.1.1.3.0, ale pre prípad, že by tomu tak v konkrétnej implementácii nebolo, je možné hodnotu zistiť pomocou meraného bodu s adresou TRAP_UPTIME_OID.
TRAP_UPTIME_VALUETimeTicksPoložka "SysUpTime" trap správy: hodnota objektu sysUpTime. Pre hodnotu platí Poznámka uvedená v popise adresy TRAP_TIMESTAMP.
TRAP_TRAP_OIDOIDPoložka "SnmpTrap OID" trap správy: OID objektu SnmpTrap.0 . Táto položka by mala mať podľa RFC 1448 hodnotu 1.3.6.1.6.3.1.1.4.1.0 (t.j. OID objektu snmpTrapOID, viď RFC 1450), ale pre prípad, že by tomu tak v konkrétnej implementácii nebolo, je možné hodnotu zistiť pomocou meraného bodu s adresou TRAP_TRAP_OID.
Kotva
trap_value
trap_value
TRAP_TRAP_OID_VALUE
OIDPoložka "SnmpTrapValue" trap správy. Jedná sa o identifikátor triedy trapu, ktorý významovo zodpovedá položke TRAP_GENERIC_TRAP v SNMP verzii V1, ale je typu OID, čo umožňuje napr. definovanie chybových kódov špecifických pre konkrétnych výrobcov a zariadenia.
Významy štandardných OID, ktoré môže nadobúdať, sú podľa RFC 1450 nasledovné:
  • 1.3.6.1.6.3.1.1.5.1 - coldStart
  • 1.3.6.1.6.3.1.1.5.2 - warmStart
  • 1.3.6.1.6.3.1.1.5.3 - linkDown
  • 1.3.6.1.6.3.1.1.5.4 - linkUp
  • 1.3.6.1.6.3.1.1.5.5 - authenticationFailure
  • 1.3.6.1.6.3.1.1.5.6 - egpNeighborLoss
  • 1.3.6.1.6.3.1.1.5.7 - enterpriseSpecific
TRAP_OIDOIDRovnaký význam ako TRAP_OID v SNMP verzii V1.
TRAP_VALUEľubovolnýRovnaký význam ako TRAP_VALUE v SNMP verzii V1.
TRAP_CONFIRMBooleanRovnaký význam ako TRAP_CONFIRM v SNMP verzii V1.


Poznámka1:
Štandardne bude zrejme stačiť, aby sa nakonfigurovali vstupné merané body s adresami TRAP_OID, TRAP_VALUE a výstupný meraný bod s adresou TRAP_CONFIRM na potvrdzovanie spracovania hodnôt.

...

Kotva
getnext_oid
getnext_oid

Adresa boduTyp hodnotyPopis
GETNEXT_OIDTxtI - Textový vstupOID ďalšieho objektu, ktoré príde v odpovedi na požiadavku GetNext. Berú sa do úvahy iba požiadavky, ktoré boli vygenerované ako dôsledok zmeny adresy meraného bodu tell príkazom SETPTADDR a nie požiadavky, ktoré boli vygenerované ako dôsledok periodického čítania meraných bodov.

Na vyčítavanie stromu hodnôt stačí nakonfigurovať dva vstupné merané body typu TxtI - Textový vstup. Jeden z týchto bodov má špeciálnu adresu GETNEXT_OID, adresa druhého meraného bodu je nastavovaná tell príkazom SETPTADDR.
Po nastavení adresy KOM proces generuje požiadavku na čítanie meraného bodu. Pokiaľ adresa obsahuje požiadavku typu GetNext (napr. SETPTADDR M.MySnmpVariable 1.3.6.1.2.1.1 TYPE=3;RQ=1), bude OID, ktoré príde s odpoveďou, zapísané do meraného bodu s adresou GETNEXT_OID (napr. 1.3.6.1.2.1.1.1.0). Následne je možné poslať nový tell príkaz, v ktorom je táto adresa (SETPTADDR M.MySnmpVariable 1.3.6.1.2.1.1.1.0 TYPE=3;RQ=1) a tak ďalej.

Príklad ESL skriptu na vyčítanie prvých 100 objektov zo stromu počínajúc od adresy 1.3.6.1.2.1.1 a zapísanie OID adries a hodnôt do štruktúry _objlist:

...