Sommario

Introduzione

Prerequisiti

Requisiti

Componenti usati

Convenzioni

Premesse

Risoluzione dei problemi

EEM per acquisire dati in caso di picco della CPU su 2960X.

Avvisi e-mail

Aggiungi output a file locale

Aggiungi output a file locale e rimuovi script

Raccogli output e scrivi in file locale

Monitoraggio dell'utilizzo della CPU sul sistema operativo IOS modulare

Rimuovi script

Informazioni correlate

Introduzione

In questo documento viene descritto come usare il sottosistema Cisco IOS® Embedded Event Manager (EEM) per monitorare l'elevato utilizzo della CPU sugli switch Cisco Catalyst serie 900.

Prerequisiti

Requisiti

In questo documento si presume che l'utente abbia conoscenza di Cisco IOS Embedded Event Manager (EEM).

Componenti usati

Per la stesura del documento, sono stati usati switch Cisco Catalyst serie 900.

Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.

Convenzioni

Per ulteriori informazioni sulle convenzioni usate, consultare il documento Cisco sulle convenzioni nei suggerimenti tecnici.

Premesse

EEM è uno strumento molto utile per risolvere i problemi occasionali e sporadici di picchi della CPU di breve durata e difficili da risolvere manualmente con l'interfaccia della riga di comando. Questo è un esempio di picchi della 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%

Risoluzione dei problemi

In questa sezione sono inclusi diversi esempi di utilizzo degli script EEM per monitorare l'utilizzo della CPU. Gli switch Catalyst 2960 e 3750 permettono all'EEM di utilizzare una RAM non volatile (NVRAM); Gli switch Catalyst 4500 permettono all'EEM di scrivere su bootflash; e gli switch Catalyst 6500 consentono a EEM di utilizzare disk0 e sup-bootdisk.

Nota: per ulteriori informazioni sui comandi menzionati in questa sezione, usare lo strumento di ricerca dei comandi (solo utenti registrati).

EEM per acquisire dati in caso di picco della CPU su 2960X.

Catalyst 2960X non supporta l'aggiunta della memoria flash. L'EEM riportato di seguito reindirizza i dati acquisiti nei rispettivi file in flash:/TAC dall'ultima esecuzione dell'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"

Avvisi e-mail

Questo script invia un avviso quando l'utilizzo della CPU supera il 50%. Il corpo dell'e-mail è l'output del comando show process cpu sorted.

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"

Le definizioni delle variabili in corsivo sono le seguenti:

- highcpu - nome dell'app di gestione eventi

- let/script

- 1.3.6.1.4.1.9.9.109.1.1.1.1.3.1 - Identificatore oggetto (OID) per il polling dell'utilizzo totale della CPU del processore di routing (RP)

- 50 - Utilizzo della CPU che attiva lo script

- poll-interval 0.5 - Frequenza (ogni 0.5 secondi) con cui lo script controlla la CPU

- 192.169.1.1 - IP del server di posta

Aggiungi output a file locale

Questo script aggiunge gli output richiesti a un file nel file system locale. Sostituire il file system con il file system appropriato sullo switch.

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"

Aggiungi output a file locale e rimuovi script

Questo script aggiunge l'output del comando show process cpu sorted a un file nel file system locale, quindi si rimuove una volta completato. Sostituire il file system con il file system appropriato sullo switch.

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"

Raccogli output e scrivi in file locale

Questo script utilizza un trigger basato su syslog per eseguire e raccogliere gli output richiesti e scriverli nel file system locale. Sostituire il file system con il file system appropriato sullo switch.

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"

Monitoraggio dell'utilizzo della CPU sul sistema operativo IOS modulare

L'EEM Cisco può essere utilizzato anche per monitorare l'utilizzo della CPU sul sistema operativo IOS modulare. A causa delle differenze nel modo in cui la CPU viene monitorata sul sistema operativo IOS modulare, è possibile utilizzare l'OID SNMP (Simple Network Management Protocol) (1.3.6.1.4.1.9.9.109.1.1.1.1.3.1) per controllare l'utilizzo della CPU da parte del processo di base IOS.

Questo script utilizza l'OID come trigger e scrive gli output richiesti nel file system locale. Sostituire il file system con il file system appropriato sullo switch.

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"

Rimuovi script

Immettere questo comando per rimuovere uno script EEM:

Switch(config)#no event manager applet applet name

Informazioni correlate

- Documentazione e supporto tecnico – Cisco Systems