Dit document beschrijft hoe u het Embedded Event Manager (EEM) gereedschap kunt gebruiken om problemen op te lossen op het netwerk die anders moeilijk te spelden zijn of geen regelmatige frequentie hebben waardoor problemen normaal blijven oplossen.
EEM is een flexibel systeem dat is ontworpen om Cisco IOS®, XR en NX-OS aan te passen. Met EEM kunt u taken automatiseren, kleinere verbeteringen uitvoeren en werkronden maken.
EEM scripts hebben twee doelen:
In beide gevallen, om EEM scripts te kunnen gebruiken is het nodig om een trigger event aan te wijzen die u dan kunt gebruiken om het script te activeren.
De voorbeelden van EEM scripts om problemen met de oplossing te helpen, zijn in deze sectie opgenomen.
Start opdrachten elke 30 seconden naar het bestand in flitser. De show opdrachten kunnen worden aangepast aan de wensen die u wilt hebben:
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"
Op dezelfde manier kunt u een waakhond gebruiken om het routerlogbestand elke X seconden naar een FTP-server of flitser 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 verwachtingsscript op een UNIX-apparaat in een computer gebruiken om het logbestand elke X-minuten te verplaatsen. In plaats van het met het EEM te drukken; Vervang de gebruikersnaam en het wachtwoord door de juiste strings voor inlogaanmeldingsgegevens:
> 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
Debugs inschakelen bij het opstarten van de router; verander de diepingen in wat u wilt toelaten:
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"
Uitschakelen nadat een specifiek debug-bericht is gedetecteerd om te voorkomen dat het logbestand wordt gevuld. Schakel het EEM-script (zelf) uit. Wijzig het patroon in overeenstemming 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 in het algemeen geen EEM nodig hebben om problemen op te lossen, kan het probleem in sommige gevallen van voorbijgaande aard zijn, waardoor het moeilijk is de benodigde informatie te verkrijgen. Relevante gevallen zijn onder meer:
Gewoonlijk wordt vastgesteld dat het CPU-gebruik soms zeer kort en op onbepaalde tijden toeneemt. Daarom wordt het zeer moeilijk om opdrachten uit te voeren die moeten worden uitgevoerd op het tijdstip van het hoge CPU-gebruik. Dit is het moment waarop een EEM-script zeer nuttig kan zijn. Stel de CPU-waarden in, waarbij deze geactiveerd moet worden en de opdrachtoutput verkregen moet worden.
Dit is een voorbeeldscript en dient aan uw wensen te worden aangepast:
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"
Bovenstaand script detecteert CPU-gebruik en voert de opdrachten uit, en voegt ook de output aan flitser toe: of een andere plaats van keuze. Het wordt geactiveerd wanneer het CPU-gebruik meer dan 60 % bedraagt. Dit dient aan uw vereisten te worden aangepast. Voorzichtigheid is echter geboden om rekening te houden met de vrije ruimte van het bestandssysteem voordat u het script implementeert.