Inhalt

Einführung

Voraussetzungen

Anforderungen

Verwendete Komponenten

Konventionen

Hintergrundinformationen

Fehlerbehebung

EEM zur Erfassung von Daten bei CPU-Spitzen auf dem 2960X.

E-Mail-Benachrichtigungen

Ausgabe an lokale Datei anhängen

An lokale Datei ausgeben und Skript entfernen

Erfassen der Ausgabe und Schreiben in die lokale Datei

Überwachung der CPU-Auslastung auf modularen IOS

Skript entfernen

Zugehörige Informationen

Einführung

In diesem Dokument wird beschrieben, wie Sie das EEM-Subsystem (Cisco IOS® Embedded Event Manager) verwenden, um die hohe CPU-Auslastung der Cisco Catalyst Switches zu überwachen.

Voraussetzungen

Anforderungen

In diesem Dokument wird davon ausgegangen, dass der Benutzer mit Cisco IOS Embedded Event Manager (EEM) vertraut ist.

Verwendete Komponenten

Die Informationen in diesem Dokument basieren auf Switches der Cisco Catalyst-Serie.

Die Informationen in diesem Dokument wurden von den Geräten in einer bestimmten Laborumgebung erstellt. Alle in diesem Dokument verwendeten Geräte haben mit einer leeren (Standard-)Konfiguration begonnen. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die potenziellen Auswirkungen eines Befehls verstehen.

Konventionen

Informationen zu Dokumentkonventionen finden Sie unter Cisco Technical Tips Conventions (Technische Tipps von Cisco zu Konventionen).

Hintergrundinformationen

EEM ist ein sehr nützliches Tool, um gelegentliche, sporadische CPU-Spitzen zu beheben, die kurzlebig sind und mit der Befehlszeilenschnittstelle nur schwer manuell behoben werden können. Dies ist ein Beispiel für CPU-Spitzen:

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%

Fehlerbehebung

Dieser Abschnitt enthält mehrere Beispiele für die Verwendung von EEM-Skripts zur Überwachung der CPU-Auslastung. Mit den Catalyst Switches 2960 und 3750 kann EEM nichtflüchtigen RAM (NVRAM) verwenden. Catalyst 4500-Switches ermöglichen EEM das Schreiben in Bootflash; und Catalyst 6500-Switches ermöglichen EEM die Verwendung von disk0 und sup-bootdisk.

Hinweis: Verwenden Sie das Command Lookup Tool (nur registrierte Kunden), um weitere Informationen zu den in diesem Abschnitt verwendeten Befehlen zu erhalten.

EEM zur Erfassung von Daten bei CPU-Spitzen auf dem 2960X.

Der Catalyst 2960X unterstützt keine Flash-Anhänge. EEM unten leitet erfasste Daten in den entsprechenden Dateien ab dem letzten EEM-lauf im Flash-Speicher/TAC um.

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"

E-Mail-Benachrichtigungen

Dieses Skript sendet eine E-Mail-Nachricht, wenn die CPU-Auslastung über 50 % liegt. Der Text der E-Mail ist die Ausgabe des Befehls 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"

Die Definitionen der kursiven Variablen sind:

- high - Name der Event Manager-App

- let/script

- 1.3.6.1.4.1.9.9.109.1.1.1.1.3.1 - Objekt Identifier (OID) für das Polling der gesamten CPU-Auslastung des Routingprozessors (RP)

- 50 - CPU-Auslastung, die das Skript auslöst

- Polll-Intervall 0,5 - Frequenz (alle 0,5 Sekunden), überwacht das Skript die CPU

- 192.169.1.1 - IP des Mail-Servers

Ausgabe an lokale Datei anhängen

Dieses Skript fügt erforderliche Ausgaben an eine Datei im lokalen Dateisystem an. Ersetzen Sie das Dateisystem durch das entsprechende Dateisystem auf dem 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"

An lokale Datei ausgeben und Skript entfernen

Dieses Skript fügt die Ausgabe des Befehls show process cpu sorted an eine Datei im lokalen Dateisystem an und entfernt sich dann selbst, sobald der Vorgang abgeschlossen ist. Ersetzen Sie das Dateisystem durch das entsprechende Dateisystem auf dem 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"

Erfassen der Ausgabe und Schreiben in die lokale Datei

Dieses Skript verwendet einen syslog-basierten Trigger, um erforderliche Ausgaben auszuführen und zu sammeln und diese Ausgaben in das lokale Dateisystem zu schreiben. Ersetzen Sie das Dateisystem durch das entsprechende Dateisystem auf dem 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"

Überwachung der CPU-Auslastung auf modularen IOS

Der Cisco EEM kann auch zur Überwachung der CPU-Auslastung in modularen IOS verwendet werden. Aufgrund der Unterschiede bei der Überwachung der CPU in modularen IOS können Sie die Simple Network Management Protocol (SNMP) OID (1.3.6.1.4.1.9.9.109.1.1.1.1.3.1) verwenden, um die CPU-Auslastung durch den IOS-Basisprozess zu überprüfen.

Dieses Skript verwendet die OID als Trigger und schreibt erforderliche Ausgaben in das lokale Dateisystem. Ersetzen Sie das Dateisystem durch das entsprechende Dateisystem auf dem 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"

Skript entfernen

Geben Sie diesen Befehl ein, um ein EEM-Skript zu entfernen:

Switch(config)#no event manager applet applet name

Zugehörige Informationen

- Technischer Support und Dokumentation - Cisco Systems