In questo documento viene descritto come utilizzare lo strumento Embedded Event Manager (EEM) per risolvere i problemi della rete che altrimenti sarebbero difficili da individuare o non avrebbero una frequenza regolare che consente la normale risoluzione dei problemi.
EEM è un sistema flessibile progettato per personalizzare Cisco IOS®, XR e NX-OS. EEM consente di automatizzare le attività, eseguire piccoli miglioramenti e creare soluzioni alternative.
Gli script EEM hanno due finalità:
In entrambi i casi, per poter utilizzare gli script EEM è necessario identificare un evento trigger che può essere utilizzato per attivare lo script.
In questa sezione sono inclusi script EEM di esempio per la risoluzione dei problemi.
Eseguire comandi ogni 30 secondi per il file in flash; i comandi show possono essere adattati a qualsiasi operazione si desideri eseguire:
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"
Analogamente, è possibile usare un watchdog per scaricare il log del router ogni X secondi su un server FTP o su un 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"
È inoltre possibile utilizzare uno script Expect in un dispositivo UNIX all'interno di un cronjob per estrarre il log ogni X minuti. Invece di spingerla con l'EEM; sostituire il nome utente e la password con le stringhe appropriate per le credenziali di accesso:
> 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
Abilitare i debug all'avvio del router; modificare i debug impostando quello che si desidera abilitare:
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"
Disabilitare i debug quando viene rilevato un messaggio di debug specifico per evitare che il log venga compilato. Disabilitare lo script EEM (stesso) in seguito. Modificare il modello in base alla situazione:
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"
Anche se la maggior parte delle forme di problemi VPN in genere non richiedono EEM per la risoluzione dei problemi, in alcuni casi il problema può essere transitorio, il che rende difficile ottenere le informazioni necessarie. I casi pertinenti comprendono:
In genere si riscontra che a volte l'utilizzo della CPU aumenta per un periodo di tempo molto breve e in tempi indeterminati. Diventa pertanto molto difficile eseguire i comandi che devono essere eseguiti al momento dell'elevato utilizzo della CPU. Questo avviene quando uno script EEM può essere molto utile. Impostare i valori della CPU a cui deve essere attivata e ottenere gli output del comando.
Si tratta di uno script di esempio che deve essere personalizzato in base alle proprie esigenze:
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"
Lo script sopra riportato non solo rileva l'utilizzo della CPU ed esegue i comandi, ma aggiunge anche gli output alla memoria flash: o in qualsiasi altro luogo a scelta. Viene attivato quando l'utilizzo della CPU supera il 60 %. È consigliabile personalizzarlo in base alle proprie esigenze. È tuttavia necessario prestare attenzione a considerare lo spazio disponibile nel file system prima di distribuire lo script.
Revisione | Data di pubblicazione | Commenti |
---|---|---|
1.0 |
10-Oct-2013 |
Versione iniziale |