In dit document wordt beschreven hoe u het hulpprogramma Embedded Event Manager (EEM) kunt gebruiken om problemen op het netwerk op te lossen die anders moeilijk vast te stellen zijn of die geen regelmatige frequentie hebben waardoor normale probleemoplossing mogelijk is.
EEM is een flexibel systeem dat is ontworpen om Cisco IOS®, XR en NX-OS aan te passen. Met EEM kunt u taken automatiseren, kleine verbeteringen uitvoeren en tijdelijke oplossingen maken.
EEM-scripts hebben twee doelen:
In beide gevallen is het voor het gebruik van EEM-scripts noodzakelijk om een triggergebeurtenis te identificeren die u vervolgens kunt gebruiken om het script te activeren.
Voorbeelden van EEM-scripts om problemen op te lossen zijn opgenomen in deze sectie.
Voer elke 30 seconden opdrachten uit naar het bestand in Flash; toon opdrachten kunnen worden aangepast aan wat u wilt uitvoeren:
event manager applet show-rtp-streams
event timer watchdog name timer time 30
action 0.5 cli command "enable"
action 1.0 cli command "show clock | append flash:filename.txt"
action 2.0 cli command "show ip cache flow | append flash:filename.txt"
action 3.0 cli command "show voip rtp conn" | append flash:filename.txt"
action 4.0 cli command "show call active voice br" | append flash:filename.txt"
Evenzo kunt u een waakhond gebruiken om de routerlog elke X seconden naar een FTP-server of flash te dumpen:
event manager applet dump-log
event timer watchdog name timer time 1800
action 0.5 cli command "enable"
action 1.0 cli command "show log | append ftp://user:pass@10.1.1.1/debugs.txt"
U kunt ook een Expect-script gebruiken op een UNIX-apparaat in een cronjob om het logboek elke X-minuten te trekken. In plaats van het te pushen met EEM; vervang de gebruikersnaam en het wachtwoord met de juiste strings voor inloggegevens:
> dhcp-64-102-154-159:Desktop sholl$ cat login-script
> #!/usr/bin/expect
>
> set timeout 60
> spawn telnet -N 10.1.1.1
>
> # Uncomment these if you are prompted for a username by the router
> # expect "login:"
> # send "username\n"
> expect "Password: "
> send "password\n"
> expect ">"
> send "en\n"
> expect "Password:"
> send "password\n"
> expect "#"
> send "term len 0\n"
> expect "#"
> send "sh log\n"
> expect "#"
> send "exit\n"
> send "exit\n"
>
> dhcp-64-102-154-159:Desktop sholl$ crontab -e
>
> # min hour mday month wday command
> 0 4 0 0 0 Desktop/login-script >> outputlog.txt
Foutopsporing inschakelen bij het opstarten van de router; de foutopsporing wijzigen in wat u wilt inschakelen:
event manager applet en-debugs-at-boot
event timer cron cron-entry "@reboot"
action 1.0 cli command "enable"
action 2.0 cli command "debug isdn q931"
action 2.2 cli command "debug isdn q921"
action 2.4 cli command "debug isdn standard"
Debugs uitschakelen nadat een specifiek foutopsporingsbericht is gedetecteerd om te voorkomen dat het log wordt gevuld. Schakel het EEM-script (zelf) daarna uit. Verander het patroon naar wat overeenkomt met uw situatie:
event manager applet disableDebugsOnError
event syslog occurs 1 pattern "Endpt not available"
action 3.0 cli command "enable"
action 3.2 cli command "un all"
action 3.3 cli command "config t"
action 3.4 cli command "no event manager applet disableDebugsOnError"
action 3.5 cli command "end"
Hoewel de meeste vormen van VPN-problemen over het algemeen geen EEM vereisen om problemen op te lossen, kan het probleem in sommige gevallen van voorbijgaande aard zijn, waardoor het moeilijk is om de nodige informatie te verkrijgen. Relevante gevallen zijn onder meer:
Meestal blijkt dat het CPU-gebruik soms voor een zeer korte periode en op onbepaalde tijden omhoog gaat. Daarom wordt het erg moeilijk om opdrachten uit te voeren die moeten worden uitgevoerd op het moment van het hoge CPU-gebruik. Dit is wanneer een EEM-script erg nuttig kan zijn. Stel de CPU-waarden in waarop het moet worden geactiveerd en het verkrijgt de commando-uitgangen.
Dit is een voorbeeldscript en moet worden aangepast aan uw vereisten:
event manager applet capture_cpu_spike
event snmp oid 1.3.6.1.4.1.9.2.1.56 get-type next entry-op ge entry-val 60
exit-time 10 poll-interval 1
action 001 syslog msg "CPU Utilization is high"
action 002 cli command "en"
action 003 cli command "show proc cpu sort | append flash:cpuinfo"
action 004 cli command "show proc cpu sort | append flash:cpuinfo"
action 005 cli command "show stack 236 | append flash:cpuinfo"
action 006 cli command "show call active voice brief | append flash:cpuinfo"
action 007 cli command "show voip rtp connection | append flash:cpuinfo"
action 008 cli command "show isdn call-rate | append flash:cpuinfo"
action 009 cli command "show log | append flash:cpuinfo"
action 010 cli command "show mem stat his | append flash:cpuinfo"
action 011 cli command "show proc cpu his | append flash:cpuinfo"
action 012 cli command "show align | append flash:cpuinfo"
Het bovenstaande script detecteert niet alleen het CPU-gebruik en voert de opdrachten uit, het voegt ook de uitgangen toe aan Flash: of een andere locatie naar keuze. Het wordt geactiveerd wanneer het CPU-gebruik meer dan 60% bedraagt. Dit moet worden aangepast aan uw behoeften. Voorzichtigheid is echter geboden om het bestandssysteem vrije ruimte te geven voordat u het script implementeert.
| Revisie | Publicatiedatum | Opmerkingen |
|---|---|---|
1.0 |
10-Oct-2013
|
Eerste vrijgave |