In diesem Dokument wird beschrieben, wie Sie mit dem Embedded Event Manager (EEM)-Tool Netzwerkprobleme beheben können, die sonst nur schwer anzuheften sind oder deren Häufigkeit eine normale Fehlerbehebung nicht erlaubt.
EEM ist ein flexibles System zur Anpassung von Cisco IOS®, XR und NX-OS. EEM ermöglicht die Automatisierung von Aufgaben, die Durchführung geringfügiger Verbesserungen und die Erstellung von Workarounds.
EEM-Skripte haben zwei Zwecke:
In jedem Fall ist es für die Verwendung von EEM-Skripts erforderlich, ein Triggerereignis zu identifizieren, das Sie dann zum Auslösen des Skripts verwenden können.
EEM-Beispielskripts zur Fehlerbehebung sind in diesem Abschnitt enthalten.
Führen Sie alle 30 Sekunden Befehle für die Datei im Flash-Speicher aus. show-Befehle können an die gewünschten Aktionen angepasst werden:
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"
Ebenso können Sie einen Watchdog verwenden, um das Router-Protokoll alle X Sekunden auf einen FTP-Server oder einen Flash-Speicher zu kopieren:
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"
Sie können auch ein Expect-Skript auf einem UNIX-Gerät in einem Cronjob verwenden, um das Protokoll alle X Minuten abzurufen. Anstatt es mit EEM auszuweiten, Ersetzen Sie den Benutzernamen und das Kennwort durch die richtigen Zeichenfolgen für die Anmeldeinformationen:
> 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
Debug-Vorgänge beim Booten des Routers aktivieren Ändern Sie die Debug-Einstellungen in die gewünschten Einstellungen:
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"
Debug-Vorgänge deaktivieren, nachdem eine bestimmte Debugmeldung erkannt wurde, um zu verhindern, dass das Protokoll voll wird. Deaktivieren Sie anschließend das EEM-Skript (sich selbst). Ändern Sie das Muster so, dass es zu Ihrer Situation passt:
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"
Während die meisten Formen von VPN-Problemen zur Fehlerbehebung im Allgemeinen kein EEM erfordern, kann das Problem in einigen Fällen vorübergehender Natur sein, was es schwierig macht, die erforderlichen Informationen zu erhalten. Relevante Fälle:
Es wird in der Regel festgestellt, dass die CPU-Auslastung zeitweise sehr kurz und zu unbestimmten Zeiten ansteigt. Daher wird es sehr schwierig, Befehle auszuführen, die bei hoher CPU-Auslastung ausgeführt werden müssen. In diesem Fall kann ein EEM-Skript sehr nützlich sein. Legen Sie die CPU-Werte fest, bei denen sie ausgelöst werden soll, und rufen Sie die Befehlsausgaben ab.
Dies ist ein Beispielskript, das an Ihre Anforderungen angepasst werden sollte:
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"
Das obige Skript erkennt nicht nur die CPU-Auslastung und führt die Befehle aus, sondern fügt die Ausgaben auch zum Blinken an: oder an einem anderen Ort Ihrer Wahl. Sie wird ausgelöst, wenn die CPU-Auslastung über 60 % hinausgeht. Dies sollte an Ihre Anforderungen angepasst werden. Es sollte jedoch Vorsicht geboten werden, um den freien Speicherplatz im Dateisystem zu berücksichtigen, bevor Sie das Skript bereitstellen.
| Überarbeitung | Veröffentlichungsdatum | Kommentare |
|---|---|---|
1.0 |
10-Oct-2013
|
Erstveröffentlichung |