Este documento describe cómo utilizar la herramienta Embedded Event Manager (EEM) para resolver problemas en la red que de otro modo serían difíciles de localizar o que no tienen una frecuencia regular que permita una resolución de problemas normal.
EEM es un sistema flexible diseñado para personalizar Cisco IOS®, XR y NX-OS. EEM le permite automatizar tareas, realizar mejoras menores y crear soluciones alternativas.
Los scripts EEM tienen dos propósitos:
En cualquier caso, para utilizar scripts EEM es necesario identificar un evento desencadenador que luego puede utilizar para activar el script.
En esta sección se incluyen ejemplos de secuencias de comandos EEM para ayudar a solucionar problemas.
Ejecute comandos cada 30 segundos al archivo en flash; Los comandos show se pueden adaptar a lo que se desee ejecutar:
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"
De manera similar, puede utilizar un watchdog para volcar el registro del router cada X segundos a un servidor FTP o flash:
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"
También puede utilizar un script Expect en un dispositivo UNIX dentro de un cronjob para extraer el registro cada X minutos. En lugar de empujarlo con EEM; sustituya el nombre de usuario y la contraseña por las cadenas adecuadas para las credenciales de inicio de sesión:
> 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
Habilite las depuraciones en el arranque del router; cambie los debugs a lo que desee habilitar:
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"
Inhabilite los debugs después de que se detecte un mensaje de debug específico para evitar que el registro se llene. Desactive la secuencia de comandos EEM posteriormente. Cambie el patrón de acuerdo con su situación:
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"
Aunque la mayoría de las formas de problemas de VPN generalmente no requieren EEM para resolver problemas, en algunos casos el problema puede ser transitorio, lo que dificulta la obtención de la información necesaria. Entre los casos relevantes se incluyen:
Por lo general, se observa que, en ocasiones, la utilización de la CPU se dispara durante un período de tiempo muy corto y en momentos indeterminados. Por lo tanto, se hace muy difícil ejecutar los comandos que deben ejecutarse en el momento de la alta utilización de la CPU. Esto es cuando un script EEM puede ser muy útil. Establezca los valores de CPU en los que se debe activar y obtiene los resultados del comando.
Este es un ejemplo de script y debe personalizarse según sus necesidades:
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"
El script anterior no solo detecta el uso de la CPU y ejecuta los comandos, sino que también agrega las salidas a la memoria flash: o en cualquier otro lugar que elija. Se activa cuando la utilización de la CPU supera el 60 %. Esto debe personalizarse según sus necesidades. Sin embargo, se debe tener cuidado al considerar el espacio libre del sistema de archivos antes de implementar la secuencia de comandos.
| Revisión | Fecha de publicación | Comentarios |
|---|---|---|
1.0 |
10-Oct-2013
|
Versión inicial |