Introduction
Ce document décrit comment employer le sous-système du gestionnaire d'événement inclus par Cisco IOS® (EEM) afin de surveiller l'utilisation du CPU élevé sur des Commutateurs de gamme de Cisco Catalyst.
Conditions préalables
Conditions requises
Ce document suppose que l'utilisateur a la connaissance du gestionnaire d'événement encastré par Cisco IOS (EEM).
Les informations dans ce document sont basées sur les Commutateurs de gamme de Cisco Catalyst.
Les informations contenues dans ce document ont été créées à partir des périphériques d'un environnement de laboratoire spécifique. Tous les périphériques utilisés dans ce document ont démarré avec une configuration effacée (par défaut). Si votre réseau est opérationnel, assurez-vous que vous comprenez l'effet potentiel de toute commande.
Conventions
Pour plus d'informations sur les conventions utilisées dans ce document, reportez-vous à Conventions relatives aux conseils techniques Cisco.
EEM est un outil très utile pour dépanner les pics occasionnels et sporadiques CPU qui sont de courte durée et difficiles à dépanner manuellement avec l'interface de ligne de commande. C'est un exemple des pics CPU :
Switch#show process cpu history
<snip>
11111822511 11 111277711111 124111 11 1211111112161116
143342171209994090111878458239607111981270283361362429475
100
90
80 * ***
70 * *** *
60 * *** * *
50 * * *** * * *
40 * * *** * * *
30 * ** *** * * *
20 **** **** ** *** ** * ** ** **
10 *********************************************************
0....5....1....1....2....2....3....3....4....4....5....5....6....6....7.
0 5 0 5 0 5 0 5 0 5 0 5 0
CPU% per hour (last 72 hours)
* = maximum CPU% # = average CPU%
Dépannez
Cette section inclut plusieurs exemples de l'utilisation des scripts EEM de surveiller l'utilisation du processeur. Le Catalyst 2960 et 3750 Commutateurs permettent à EEM pour utiliser la mémoire vive non volatile (NVRAM) ; Les Commutateurs du Catalyst 4500 permettent à EEM pour écrire au bootflash ; et les Commutateurs de Catalyst 6500 permettent à EEM pour utiliser disk0 et sup-bootdisk.
Note: Utilisez l'Outil de recherche de commande (clients enregistrés seulement) pour obtenir plus d'informations sur les commandes utilisées dans cette section.
EEM pour capturer des données dans l'événement du pic CPU sur 2960X.
Le Catalyst 2960X ne prend en charge pas s'ajouter à flasher. EEM ci-dessous réorienterait des données capturées dans des fichiers respectifs dans l'éclair : /TAC de la dernière série d'EEM.
logging buffered 8192 informational
process cpu threshold type total rising 80 interval 5
!
event manager applet High_CPU authorization bypass
event syslog pattern "CPURISINGTHRESHOLD"
action 001 syslog msg "EEM: HIGH CPU detected. Writing info to flash:"
action 002 cli command "enable"
action 003 cli command "term exec prompt timestamp"
action 004 cli command "term len 0"
action 005 cli command "mkdir TAC" pattern "Create.*"
action 006 cli command "TAC" pattern "Create.*"
action 007 cli command " "
action 008 cli command "show process cpu sorted | redirect flash:TAC/TAC_CPU.txt"
action 009 cli command "show buffers | redirect flash:TAC/TAC_Buffers.txt"
action 010 cli command "show interfaces summary | redirect flash:TAC/TAC_IntSumm.txt"
action 011 cli command "show interfaces stats | redirect flash:TAC/TAC_IntStat.txt"
action 012 cli command "show ip traffic | redirect flash:TAC/TAC_IPTraffic.txt"
action 013 cli command "show ip cef switching statistics | redirect flash:TAC/TAC_IPCef.txt"
action 014 cli command "show controllers cpu-interface | redirect flash:TAC/TAC_Controllers.txt"
action 015 cli command "show platform port-asic stats drop | redirect flash:TAC/TAC_Port-Asic.txt"
action 016 cli command "show platform ip unicast statistics | redirect flash:TAC/TAC_UnicastStats.txt"
action 017 cli command "show platform ip unicast counts | redirect flash:TAC/TAC_UnicastCounts.txt"
action 018 cli command "show platform tcam utilization | redirect flash:TAC/TAC_TCAM.txt"
action 019 syslog msg "EEM: Self-removing applet from configuration..."
action 020 cli command "configure terminal"
action 021 cli command "no event manager applet High_CPU"
action 022 syslog msg "EEM: Finished removing from configuration!"
action 023 cli command "end"
Alertes par courrier électronique
Ce script envoie une alerte quand l'utilisation du processeur va au-dessus de 50 pour cent. Le corps de l'email est la sortie de la commande triée par CPU de processus d'exposition.
event manager applet highcpu
event snmp oid 1.3.6.1.4.1.9.9.109.1.1.1.1.3.1 get-type exact entry-op ge entry-val 50 poll-interval 0.5
action 1.0 cli command "enable"
action 2.0 cli command "show proc cpu sorted"
action 3.0 mail server "192.168.1.1" to "user-to@domain.com" from "user-from@domain.com" subject "High CPU Alert" body "$_cli_result"
Les définitions des variables en italiques sont :
- highcpu - nom de l'app de gestionnaire d'événement
- permis/script
- 1.3.6.1.4.1.9.9.109.1.1.1.1.3.1 - Identifiant d'objet (OID) pour voter toute l'utilisation du processeur du processeur d'artère (RP)
- 50 - Utilisation du processeur qui déclenche le script
- poll-interval 0.5 - La fréquence (toutes les 0.5 seconde) le script surveille la CPU
- 192.169.1.1 - IP du serveur de messagerie
Ajoutez la sortie au fichier local
Ce script ajoute les sorties exigées à un fichier dans le système de fichier local. Remplacez le système de fichiers par le système de fichier approprié sur le commutateur.
event manager scheduler script thread class default number 1
event manager applet High_CPU
event snmp oid 1.3.6.1.4.1.9.9.109.1.1.1.1.3.1 get-type exact entry-op ge entry-val 50 poll-interval 0.5
action 0.0 syslog msg "High CPU DETECTED. Please wait - logging Information to file system:high_cpu.txt"
action 0.1 cli command "enable"
action 0.2 cli command "show clock | append file system:high_cpu.txt"
action 1.2 cli command "term length 0"
action 1.3 cli command "show process cpu sorted | append file system:high_cpu.txt"
action 1.4 cli command "show log | append file system:high_cpu.txt"
action 1.5 cli command "show interfaces | append file system:high_cpu.txt"
action 1.6 cli command "term length 24"
Ajoutez la sortie au fichier local et retirez le script
Ce script ajoute la sortie de la commande triée par CPU de processus d'exposition à un fichier dans le système de fichier local, puis se retire s'est par le passé terminé. Remplacez le système de fichiers par le système de fichier approprié sur le commutateur.
event manager scheduler script thread class default number 1
event manager applet High_CPU
event snmp oid 1.3.6.1.4.1.9.9.109.1.1.1.1.3.1 get-type exact entry-op gt entry-val 50 poll-interval 0.5
action 0.0 syslog msg "High CPU DETECTED. Please wait - logging Information to flash:high_cpu.txt"
action 0.1 cli command "enable"
action 0.2 cli command "term exec prompt timestamp"
action 1.3 cli command "show process cpu sorted | append file system:high_cpu.txt"
action 1.4 cli command "show process cpu sorted | append file system:high_cpu.txt"
action 1.4 cli command "show process cpu sorted | append file system:high_cpu.txt"
action 5.1 syslog msg "Finished logging information to file system:high_cpu.txt..."
action 5.1 syslog msg "Self-removing applet from configuration..."
action 5.2 cli command "term no exec prompt timestamp"
action 9.1 cli command "configure terminal"
action 9.2 cli command "no event manager applet High_CPU"
action 9.3 cli command "end"
Collectez la sortie et écrivez au fichier local
Ce script emploie un déclencheur basé sur Syslog afin d'exécuter et collecter les sorties exigées et écrire ces sorties au système de fichier local. Remplacez le système de fichiers par le système de fichier approprié sur le commutateur.
process cpu threshold type total rising 70 interval 15
event manager applet DETECT_CPU
event syslog pattern ".*SYS-1-CPURISINGTHRESHOLD.*"
action 1 cli command "en"
action 2 cli command "show clock | append file system:cpuinfo"
action 3 cli command "show proc cpu sort | append file system:cpuinfo"
action 4 cli command "show line | append file system:cpuinfo"
Surveillez l'utilisation du processeur sur l'IOS modulaire
Cisco EEM peut également être utilisé pour surveiller l'utilisation du processeur sur l'IOS modulaire. En raison des différences dans la façon dont la CPU est surveillée sur l'IOS modulaire, vous pouvez employer le Protocole SNMP (Simple Network Management Protocol) OID (1.3.6.1.4.1.9.9.109.1.1.1.1.3.1) afin de vérifier l'utilisation du processeur par le processus de base IOS.
Ce script utilise l'OID comme déclencheur et écrit les sorties exigées au système de fichier local. Remplacez le système de fichiers par le système de fichier approprié sur le commutateur.
event manager scheduler script thread class default number 1
event manager applet High_CPU
event snmp oid 1.3.6.1.4.1.9.9.109.1.1.1.1.10.1 get-type exact entry-op ge entry-val 50 poll-interval 0.5
action 0.0 syslog msg "High CPU DETECTED. Please wait - logging Information to file system:high_cpu.txt"
action 0.1 cli command "enable"
action 0.2 cli command "show clock | append file system:high_cpu.txt"
action 1.2 cli command "term length 0"
action 1.3 cli command "show process cpu sorted | append file system:high_cpu.txt"
action 1.4 cli command "show log | append file system:high_cpu.txt"
action 1.5 cli command "show interfaces | append file system:high_cpu.txt"
action 1.6 cli command "term length 24"
Retirez le script
Sélectionnez cette commande afin de retirer un script EEM :
Switch(config)#no event manager applet applet name