Contents

Introduction

O que é EEM?

Quando usar EEM?

Exemplos de scripts EEM

Executar comandos a cada 30 segundos para arquivo no Flash

Usar um vigia para descarregar o log do roteador a cada X segundos para um servidor FTP ou Flash

Habilitar depurações na inicialização do roteador

Desabilitar depurações após uma mensagem específica

Troubleshoot

Solucionar problemas de VPN

Solucionar problema da utilização elevada da CPU

Informações Relacionadas

Introduction

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 permita a solução normal de problemas.

O que é EEM?

O EEM é um sistema flexível projetado para personalizar o Cisco IOS®, XR e NX-OS. O EEM permite automatizar tarefas, executar pequenas melhorias e criar soluções alternativas.

Quando usar EEM?

Os scripts EEM têm duas finalidades:

- Para ajudar a solucionar um problema - quando você precisa solucionar problemas de natureza intermitente, os scripts de EEM podem ser particularmente úteis. Eles permitem automatizar o processo de coleta de saídas de comandos show e debug que permitem capturar dados que seriam extremamente difíceis de coletar.

- Para ajudar a fornecer uma solução - Nos casos em que uma solução temporária é necessária enquanto o Centro de Assistência Técnica (TAC) faz uma análise de causa básica. Por exemplo, uma situação em que o problema é intermitente, mas a redefinição de uma interface corrige o problema. Os scripts EEM podem ser usados para disparar essa ação assim que o problema começar.

Em ambos os casos, para usar scripts EEM, é necessário identificar um evento de disparo que você pode usar para disparar o script.

Exemplos de scripts EEM

Exemplos de scripts de EEM para ajudar a solucionar problemas estão incluídos nesta seção.

Executar comandos a cada 30 segundos para arquivo no Flash

Executar comandos a cada 30 segundos para o arquivo na flash; os comandos show podem ser adaptados ao que você quiser 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"

Note: Alguns sistemas de arquivos flash (como bootflash ou slotX) não suportam a operação de anexação. Isso não é uma limitação de EEM, mas uma limitação de sistemas de arquivos flash lineares. Sistemas de arquivos de acesso aleatório, como o diskX ou o flash em switches de desktop (3560, 3750 e assim por diante) suportam anexação a um arquivo.

Note: Se o dispositivo estiver configurado para autorização de comando de Autenticação, Autorização e Auditoria (AAA), o EEM precisará ser configurado com um nome de usuário autorizado a executar todos os comandos CLI em todas as políticas de EEM configuradas.  Para fazer isso, insira event manager session cli username USER onde USER é o usuário AAA apropriado.

Usar um vigia para descarregar o log do roteador a cada X segundos para um servidor FTP ou Flash

Da mesma forma, você pode usar um watchdog para despejar o log do roteador a cada X segundos para 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 empurrá-lo com EEM; substitua o nome de usuário e a senha pelas strings corretas 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

Habilitar depurações na inicialização do roteador

Ativar depurações na inicialização do roteador; altere as depurações para o que você quiser 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"

Desabilitar depurações após uma mensagem específica

Desative as depurações após a detecção de uma mensagem de depuração específica para evitar que o log seja preenchido. Desative o script EEM (próprio) depois. 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"

Troubleshoot

Solucionar problemas de VPN

Embora a maioria das formas de problemas de VPN 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:

- Utilizar EEM para solucionar problemas de IGP Flaps/Interrupção sobre VPN

- Scripts EEM usados para solucionar problemas de flaps de túnel causados por índices de parâmetro de segurança inválidos

- Mensagem de erro Syslog "%CRYPTO-4-RECVD_PKT_MAC_ERR:" com perda de ping sobre solução de problemas de túnel IPsec

Solucionar problema da utilização elevada da CPU

Geralmente, verifica-se que às vezes a utilização da CPU aumenta por um período de tempo muito curto e em tempos indeterminados. Assim, torna-se muito difícil executar comandos que precisam ser executados no momento da alta utilização da CPU. É quando um script EEM pode ser muito útil. Defina os valores da CPU em que ela deve ser acionada 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 só detecta a utilização da CPU e executa os comandos, como também acrescenta as saídas à memória flash: ou qualquer outro local de escolha. Ele é acionado quando a utilização da CPU excede 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.

Informações Relacionadas

- Referência do comando de gerenciamento de rede do Cisco IOS

- Comunidade de suporte da Cisco - Roteiro EEM

- Suporte Técnico e Documentação - Cisco Systems