Ce document décrit comment utiliser l'outil Embedded Event Manager (EEM) pour dépanner des problèmes sur le réseau qui sont autrement difficiles à localiser ou qui n'ont pas une fréquence régulière qui permet un dépannage normal.
EEM est un système flexible conçu pour personnaliser Cisco IOS®, XR et NX-OS. EEM vous permet d'automatiser des tâches, d'apporter des améliorations mineures et de créer des solutions de contournement.
Les scripts EEM ont deux objectifs :
Dans les deux cas, pour utiliser des scripts EEM, il est nécessaire d'identifier un événement déclencheur que vous pouvez ensuite utiliser pour déclencher le script.
Cette section contient des exemples de scripts EEM permettant de résoudre les problèmes.
Exécuter des commandes toutes les 30 secondes pour le fichier dans la mémoire flash ; Les commandes show peuvent être adaptées à ce que vous voulez exécuter :
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 même, vous pouvez utiliser un chien de garde afin de vider le journal du routeur toutes les X secondes vers un serveur FTP ou une mémoire 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"
Vous pouvez également utiliser un script Expect sur un périphérique UNIX à l'intérieur d'une tâche cron pour extraire le journal toutes les X minutes. Au lieu de le pousser avec EEM ; remplacez le nom d'utilisateur et le mot de passe par les chaînes appropriées pour les informations de connexion :
> 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
Activez les débogages au démarrage du routeur ; remplacez les débogages par ce que vous souhaitez activer :
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"
Désactivez les débogages après la détection d'un message de débogage spécifique afin d'empêcher le remplissage du journal. Désactivez ensuite le script EEM (lui-même). Modifiez le modèle en fonction de votre situation :
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"
Bien que la plupart des problèmes de VPN ne nécessitent généralement pas d'EEM pour être résolus, dans certains cas, le problème peut être temporaire, ce qui rend difficile l'obtention des informations nécessaires. Les cas pertinents comprennent :
Il est généralement constaté que parfois l'utilisation du CPU augmente pendant une très courte période et à des moments indéterminés. Par conséquent, il devient très difficile d'exécuter des commandes qui doivent être exécutées au moment de l'utilisation élevée du CPU. C'est à ce moment qu'un script EEM peut être très utile. Définissez les valeurs de CPU auxquelles il doit être déclenché et il obtient les sorties de commande.
Il s'agit d'un exemple de script qui doit être personnalisé en fonction de vos besoins :
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"
Le script ci-dessus détecte non seulement l'utilisation du CPU et exécute les commandes, mais il ajoute également les sorties à la mémoire flash : ou tout autre lieu de votre choix. Il est déclenché lorsque l'utilisation du processeur dépasse 60 %. Cette option doit être personnalisée en fonction de vos besoins. Cependant, il convient de prendre en compte l'espace libre du système de fichiers avant de déployer le script.
| Révision | Date de publication | Commentaires |
|---|---|---|
1.0 |
10-Oct-2013
|
Première publication |