Multiple Event Support Jan Miketa, Martin Hříbek Abstrakt: Tento projekt slouží k objasnění funkce Multiple Event Support, která v rámci Embedded Event Manageru umožňuje reagovat na složené události. Je zde vysvětleno jakým způsobem se Multiple Event Support používá, požadavky kladené na software pro správnou funkci a také praktické ukázky použití na uživatelské politice reprezentované Tcl skriptem. Klíčová slova: Multiple Event Support, Embedded Event Manager, Tcl, trigger, correlate, attribute, tag, occurs, period, period-start, delay, event, andnot, and, or 1 Úvod.............................................................................................................................2 2 Podpora.........................................................................................................................2 3 Struktura složené události.............................................................................................2 3.1 trigger ...................................................................................................................2 3.2 correlate ................................................................................................................3 3.3 attribute ................................................................................................................3 4 Testovací topologie.......................................................................................................4 4.1 Konfigurace testovací topologie...........................................................................4 5 Příklady použití Multiple Event Support......................................................................4 5.1 Příklad 1................................................................................................................4 5.2 Příklad 2................................................................................................................5 6 Závěr.............................................................................................................................5 7 Použitá literatura a citace..............................................................................................6
leden 2011
1/6
1 Úvod Do zavedení Multiple Event Support se mohly provádět reakce pouze na jednoduché události, tedy šlo o podporu základních událostí. Reakce na složené události umožňují řešení složitých problémů s více závislostmi, stejně jako robustnější metody konfigurace a monitorování zařízení. Vše funguje tak, že dojde k sladění několika základních událostí a na základě takovéto komplexní události je následně vyvolána patřičná akce.
2 Podpora Pro použití Multiple Event Support je nutné mít Embedded Event Manager verze 2.4 a výš, které jsou podporovány v cisco IOS verze 12.4(20)T, 12.2(40)SE, 12.2(40)SG, 12.2(33)SXI a novějších. Ve starších verzích není možné Multiple Event Support použít.
3 Struktura složené události Struktura složené události obsahuje tři klíčová slova: trigger, correlate a attribute. Nejprve je však nutné zaregistrovat jednotlivé základní události a řádně je označit pomocí atributu tag následovaného identifikačním řetězcem. Tento řetězec (respektive atribut tag) je pro funkci Multiple Event Support klíčový, protože pomocí něj dochází k samotnému propojení jednoduchých událostí do složeného celku. ::cisco::eem::event_register_xxx tag event1 ... ::cisco::eem::event_register_yyy tag event2 ... ::cisco::eem::event_register_zzz tag event3 ...
3.1 trigger V těle triggeru se specifikuje výsledná složená událost. - syntaxe: trigger {} [occurs ?] [period ?] [period-start ?] [delay ?]
occurs
period
(volitelný) Specifikuje počet výskytů složené události který je nutný k vyvolání výsledné EEM události. Pokud není tento atribut uveden, EEM událost se vyvolá při prvním výskytu. Rozsah je 1 až 4294967295 (volitelný) Časový interval v sekundách, případně i milisekundách, během kterého musí požadované události nastat. Specifikuje se ve formátu ssssssssss[.mmm] , kde ssssssssss je počet sekund (v rozsahu 0 až 4294967295) a mmm jsou milisekundy (0 až 999).
periodstart
(volitelný) Specifikuje start korelačního okna. Pokud není uveden, začne se s vyhodnocováním událostí hned po první CRON periodě.
delay
(volitelný) Čas v sekundách, případně i milisekundách, po kterém dojde k vyvolání události, jsou li splněny podmínky Specifikuje se ve formátu ssssssssss[.mmm] , kde ssssssssss je počet sekund (v rozsahu 0 až 4294967295) a mmm jsou milisekundy (0 až 999).
Tabulka 1: Argumenty příkazu trigger leden 2011
2/6
3.2 correlate Vytváří jednotlivé složené události pomocí logických operací a v rámci Tcl skriptu tak lze sloučit až 8 událostí. Bohužel zde není možnost použití závorek, takže je automaticky přiřazována priorita logických operátorů od největší z leva, tedy výraz A and B or C and D je brán jako (((A and B) or C) and D). - syntaxe: correlate event ? track ? [andnot | and | or] event ? track ?
event
Specifikuje událost, která se podílí na spuštění složené události.
track
Číslo objektu ke sledování (pokud je sledovaný objekt nastaven, vyhodnoceno jako true). Rozsah je 1 až 500.
andnot
(volitelný) Logický operátor k spojení jednotlivých událostí. Akce se spustí proběhne-li první událost, ale ne ta druhá.
and
(volitelný) Logický operátor k spojení jednotlivých událostí. Akce se spustí proběhnou-li obě události.
or
(volitelný) Logický operátor k spojení jednotlivých událostí. Akce se spustí proběhne-li alespoň jedna z událostí. Tabulka 2: Argumenty příkazu correlate
3.3 attribute Specifikuje komplexní událost, co se týče počtu dílčích událostí. - syntaxe: attribute tag ? [occurs ?]
tag
Označení události, ke které se tento příkaz vztahuje.
occurs
(volitelný) Specifikuje počet výskytů události potřebné k vyvolání spuštění složené události. Rozsah je 1 až 4294967295. Tabulka 3: Argumenty příkazu attribute
leden 2011
3/6
4 Testovací topologie
Obrázek 1: Testovací topologie
V rámci testování MES jsme použili síťový simulátor GNS3, který umožňuje emulovat některá Cisco zařízení. Topologie obsahuje 2 směrovače Cisco 7200 (R1, R2) s IOSem verze 12.4(24)T3 propojené sériovou linkou a aby bylo možné nahrát do směrovače R1 potřebný Tcl skript, je k němu pomocí FastEthernetu připojen mrak s virtuálním připojením na fyzický počítač na kterém mimo GNS3 běží i TFTP server (s IP adresou 192.168.182.1/24).
4.1 Konfigurace testovací topologie Na směrovači R1 bylo třeba nastavit IP adresu na rozhraní FastEthernet, tak aby bylo možně se připojit k mraku (v našem případě 192.168.182.2/24), dále pak sériové spojení s druhým směrovačem, přičemž na směrovači R1 byla nastavena adresa 10.0.0.1/24 a na směrovači R2 adresa 10.0.0.2/24. Následně bylo spuštěno ještě rozhraní Loopback0 s IP adresou 10.0.1.1/24 (pro více možností testování).
5 Příklady použití Multiple Event Support Při emulaci IOSu, který jsme použili, se vyskytly problémy, a to nefunkčnost disků flash na simulovaných směrovačích, proto bylo nutné použít pro spuštění EEM politiky na směrovači R1 disk disk0: místo disku flash: a politika byla spuštěna následovně: 1. naformátování disku disk0: (jinak by jej nebylo možné použít) R1#format disk0: 2. zkopírování Tcl skriptu z TFTP servru na disk0: R1#copy tftp://192.168.182.1/policy.tcl disk0: 3. nastavení cesty pro uživatelské skripty do disku disk0: R1(config)#event manager directory user policy disk0: 4. registrace skriptu v Embedded Event Manager R1(config)#event manager policy policy.tcl
Cílem projektu bylo ukázat použití Multiple Event Support, proto tedy pro snadné pochopení této funkce následující příklady neobsahují žádné sofistikované reakce na události, ale pouze jednoduchý výpis na konzoli, založený na událestech, které je možně vyčíst taktéž z konzole směrovače (R1). Funkčnost těchto příkladů byla úspěšně vyzkoušena na testovací topologii.
5.1 Příklad 1 Jednoduchý příklad Tcl skriptu s využitím Multiple Event Support, kdy po vypnutí všech 3 typů rozhraní dojde k výpisu řetězce „All interfaces changes status to down“, a to s časovým zpožděním 5 vteřin od doby kdy bylo vypnuto poslední z rozhraní. leden 2011
4/6
Obsah Tcl skriptu použitého v příkladu 1: # registrace jednotlivych dilcich udalosti ::cisco::eem::event_register_syslog tag n1 pattern "Interface Loopback.* down" period 1 ::cisco::eem::event_register_syslog tag n2 pattern "Interface FastEthernet.* down" period 1 ::cisco::eem::event_register_syslog tag n3 pattern "Interface Serial.* down" period 1 # klicovy prikaz trigger s atribudem pro zpozdeni 5 sekund ::cisco::eem::trigger { # spojeni udalosti funkci correlate a logickymi operatory AND ::cisco::eem::correlate event n1 and event n2 and event n3 ::cisco::eem::attribute tag n1 occurs 1 ::cisco::eem::attribute tag n2 occurs 1 ::cisco::eem::attribute tag n2 occurs 1 } occurs 1 delay 5 # vysledny vypis puts "All interfaces changes status to down"
5.2 Příklad 2 Tento příklad detekuje situaci, kdy na rozhraní sériové linky po změně stavu na „down“ a násleném uvedení zpět do stavu „up“ dojde k opětovné změně stavu rozhraní na „down“ (opětovný pád linky), a to v rozmezí 30 sekund. Obsah Tcl skriptu použitého v příkladu 2: # registrace jednotlivych dilcich udalosti ::cisco::eem::event_register_syslog tag n1 pattern "Line protocol on Interface Serial.* down" period 1 ::cisco::eem::event_register_syslog tag n2 pattern "Line protocol on Interface Serial.* up" period 1 # klicovy prikaz trigger s atributem periody 30 sekund ::cisco::eem::trigger { # spojeni udalosti funkci correlate a logickymi operatory AND ::cisco::eem::correlate event n1 and event n2 and event n3 # zajištění že k události n1 dojde alespon 2-krat ::cisco::eem::attribute tag n1 occurs 2 ::cisco::eem::attribute tag n2 occurs 1 } occurs 1 period 30 # vysledny vypis puts "Interface Serial changes state to down twice in 30 seconds"
6 Závěr V závěru lze říci, že Multiple Event Support přinesl v rámci Embedded Event Manager nové možnosti do Tcl scriptingu, ovšem neoplývá příliš silnými prostředky. To se týče nemožnosti vytvořit složitější kombinace událostí, což je zapříčiněno absencí možnosti použít závorky v kombinaci s logickými operátory, či jinak tyto operátory hierarchizovat. leden 2011
5/6
7 Použitá literatura a citace [1] Writing Embedded Event Manager Policies Using Tcl. Dostupné na
[2] Cisco IOS Embedded Event Manager Version 2.4 Expanded Capabilities and New Interfaces. Dostupné na [3] Informace o Tcl Scriptingu. Dostupné na
leden 2011
6/6