Este documento descreve como usar a ferramenta Embedded Event Manager (EEM) para solucionar problemas na rede que, de outra forma, são difíceis de apontar ou não têm uma frequência regular que permite a solução de problemas normal.
O EEM é um sistema flexível projetado para personalizar o Cisco IOS®, XR e NX-OS. O EEM permite automatizar tarefas, realizar pequenas melhorias e criar soluções alternativas.
Os scripts EEM têm duas finalidades:
Em ambos os casos, para usar scripts EEM, é necessário identificar um evento acionador que você pode usar para acionar o script.
Exemplos de scripts EEM para ajudar a solucionar problemas estão incluídos nesta seção.
Executar comandos a cada 30 segundos para o arquivo na memória flash; os comandos show podem ser adaptados para o que você deseja executar:
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"
Da mesma forma, você pode usar um watchdog para despejar o log do roteador a cada X segundos em um servidor FTP ou 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"
Você também pode usar um script Expect em um dispositivo UNIX dentro de um cronjob para extrair o log a cada X minutos. Em vez de insistir com o EEM; substitua o nome de usuário e a senha pelas strings apropriadas para credenciais de login:
> 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
Ative as depurações na inicialização do roteador; altere as depurações para o que desejar ativar:
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"
Desabilite as depurações depois que uma mensagem de depuração específica for detectada para evitar que o log seja preenchido. Desative o script EEM (ele mesmo) posteriormente. Altere o padrão para o que corresponde à sua situação:
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"
Embora a maioria das formas de problemas de VPN geralmente não exija EEM para solucionar problemas, em alguns casos o problema pode ser transitório, o que dificulta a obtenção das informações necessárias. Os casos relevantes incluem:
Em geral, observa-se que, às vezes, a utilização da CPU aumenta rapidamente por um período de tempo muito curto e em momentos indeterminados. Assim, torna-se muito difícil executar comandos que precisam ser executados no momento da alta utilização da CPU. Isso ocorre quando um script EEM pode ser muito útil. Defina os valores da CPU nos quais ela deve ser disparada e obtenha as saídas do comando.
Este é um script de exemplo e deve ser personalizado para seus requisitos:
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"
O script acima não apenas detecta a utilização da CPU e executa os comandos, mas também anexa as saídas à memória flash: ou qualquer outro local de sua escolha. É acionado quando a utilização da CPU ultrapassa 60 %. Isso deve ser personalizado de acordo com seus requisitos. No entanto, deve-se ter cuidado ao considerar o espaço livre do sistema de arquivos antes de implantar o script.
| Revisão | Data de publicação | Comentários |
|---|---|---|
1.0 |
10-Oct-2013
|
Versão inicial |