Contenu

Introduction

Qu'est-ce que l'EEM ?

Quand utiliser EEM ?

Exemples de scripts EEM

Exécuter des commandes toutes les 30 secondes pour un fichier dans Flash

Utiliser un chien de garde pour vider le journal du routeur toutes les X secondes vers un serveur FTP ou une mémoire Flash

Activer les débogages au démarrage du routeur

Désactiver les débogages après un message spécifique

Dépannage

Dépannage des problèmes VPN

Dépannage de l'utilisation élevée du CPU

Informations connexes

Introduction

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 à épingler point ou qui n'ont pas de fréquence régulière permettant un dépannage normal.

Qu'est-ce que l'EEM ?

EEM est un système flexible conçu pour personnaliser Cisco IOS®, XR et NX-OS. EEM vous permet d'automatiser les tâches, d'effectuer des améliorations mineures et de créer des solutions de contournement.

Quand utiliser EEM ?

Les scripts EEM ont deux objectifs :

- Pour résoudre un problème : lorsque vous devez résoudre des problèmes de nature intermittente, les scripts EEM peuvent être particulièrement utiles. Ils vous permettent d'automatiser le processus de collecte des sorties show command et des commandes debug qui vous permettent de capturer des données qui seraient autrement extrêmement difficiles à collecter.

- Aider à fournir une solution : dans les cas où une solution de contournement temporaire est nécessaire alors que le centre d'assistance technique (TAC) effectue une analyse des causes premières. Prenons par exemple une situation où le problème est intermittent, mais la réinitialisation d'une interface corrige le problème. Les scripts EEM peuvent être utilisés pour déclencher cette action dès que le problème commence.

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.

Exemples de scripts EEM

Cette section contient des exemples de scripts EEM permettant de résoudre les problèmes.

Exécuter des commandes toutes les 30 secondes pour un fichier dans Flash

Exécuter des commandes toutes les 30 secondes sur 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"

Note: Certains systèmes de fichiers Flash (tels que bootflash ou slotX) ne prennent pas en charge l'opération d'ajout. Il ne s'agit pas d'une limitation EEM, mais plutôt d'une limitation des systèmes de fichiers flash linéaires. Les systèmes de fichiers d'accès aléatoire tels que diskX ou la mémoire Flash sur les commutateurs de bureau (3560, 3750, etc.) prennent en charge l'ajout à un fichier.

Note: Si le périphérique est configuré pour l'autorisation de commande AAA (Authentication, Authorization, and Accounting), EEM doit être configuré avec un nom d'utilisateur autorisé à exécuter toutes les commandes CLI dans toutes les stratégies EEM configurées.  Pour ce faire, entrez event manager session cli username USER où USER est l'utilisateur AAA approprié.

Utiliser un chien de garde pour vider le journal du routeur toutes les X secondes vers un serveur FTP ou une mémoire Flash

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 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 cronjob pour extraire le journal toutes les X minutes. Au lieu de le pousser avec des EEM ; remplacez le nom d'utilisateur et le mot de passe par les chaînes appropriées pour les identifiants 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

Activer les débogages au démarrage du routeur

Activez les débogages au démarrage du routeur ; remplacez les débogages par ce que vous voulez 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ésactiver les débogages après un message spécifique

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"

Dépannage

Dépannage des problèmes VPN

Bien que la plupart des problèmes liés aux VPN ne nécessitent généralement pas d'EEM pour le dépannage, dans certains cas le problème peut être temporaire, ce qui rend difficile l'obtention des informations nécessaires. Les cas pertinents sont les suivants :

- Utiliser EEM pour dépanner les pannes/pannes IGP sur VPN

- Scripts EEM utilisés pour dépanner les volets de tunnel provoqués par des index de paramètres de sécurité non valides

- Syslog "%CRYPTO-4-RECVD_PKT_MAC_ERR : » Message d'erreur avec perte de Ping sur le tunnel IPsec Dépannage

Dépannage de l'utilisation élevée du CPU

Il est généralement constaté que l'utilisation du CPU augmente parfois pendant une très courte période et à des périodes indéterminées. Il devient donc 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 là qu'un script EEM peut être très utile. Définissez les valeurs de CPU auxquelles il doit être déclenché et obtient les sorties de la commande.

Il s'agit d'un exemple de script et 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 processeur et exécute les commandes, mais il ajoute également les sorties à flash : ou tout autre emplacement 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 est conseillé de prendre en compte l'espace libre du système de fichiers avant de déployer le script.

Informations connexes

- Référence des commandes de gestion de réseau Cisco IOS

- Communauté d'assistance Cisco - Script EEM

- Support et documentation techniques - Cisco Systems