内容

概要

前提条件

要件

使用するコンポーネント

表記法

背景説明

トラブルシュート

2960XでCPU使用率が急上昇した場合にデータをキャプチャするEEM。

電子メール アラート

ローカル ファイルへの出力の追加

ローカル ファイルへの出力の追加とスクリプトの削除

出力の収集とローカル ファイルへの書き込み

モジュラ IOS での CPU 使用率の監視

スクリプトの削除

関連情報

概要

このドキュメントでは、Cisco Catalyst シリーズ スイッチで高い CPU 使用率を監視するために Cisco IOS® Embedded Event Manager（EEM）サブシステムを使用する方法について説明します。

前提条件

要件

このドキュメントでは、ユーザに Cisco IOS Embedded Event Manager（EEM）に関する知識があることを前提としています。

使用するコンポーネント

このドキュメントの情報は、Cisco Catalyst シリーズ スイッチに基づくものです。

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期（デフォルト）設定の状態から起動しています。対象のネットワークが実稼働中である場合には、どのようなコマンドについても、その潜在的な影響について確実に理解しておく必要があります。

表記法

ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。

背景説明

EEM は、期間が短く、コマンドライン インターフェイスを使用して手動でトラブルシューティングを行うのが困難である偶発的かつ散発的な CPU 使用率の急激な上昇のトラブルシューティングを行うのに非常に便利なツールです。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%

トラブルシュート

このセクションでは、CPU 使用率を監視するために EEM スクリプトを使用するいくつかの例について説明します。Catalyst 2960 および 3750 スイッチを使用すると、EEM で不揮発性 RAM（NVRAM）を使用できます。Catalyst 4500 スイッチを使用すると、EEM でブートフラッシュへの書き込みが可能になります。Catalyst 6500 を使用すると、EEM で disk0 および sup-bootdisk を使用できます。

注：このセクションで使用されるコマンドの詳細については、Command Lookup Tool（登録ユーザ専用）を使用してください。

2960XでCPU使用率が急上昇した場合にデータをキャプチャするEEM。

Catalyst 2960Xでは、フラッシュへの追加はサポートされていません。次のEEMは、フラッシュ：/TAC内の各ファイルにキャプチャされたデータを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"

電子メール アラート

CPU 使用率が 50 % を超えると、次のスクリプトによって電子メールでアラートが送信されます。電子メールの本文には、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"

斜体の変数の定義は次のとおりです。

- highcpu – イベントマネージャアプリの名前

- let/script

- 1.3.6.1.4.1.9.9.109.1.1.1.1.3.1 - ルート プロセッサ（RP）の合計 CPU 使用率をポーリングするためのオブジェクト ID（OID）

- 50 - スクリプトを開始する CPU 使用率

- poll-interval 0.5 - スクリプトで CPU を監視する頻度（0.5 秒ごと）

- 192.169.1.1 - メール サーバの IP

ローカル ファイルへの出力の追加

次のスクリプトにより、必要な出力がローカル ファイル システムのファイルに追加されます。file system をスイッチ上の適切なファイル システムに置き換えてください。

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"

ローカル ファイルへの出力の追加とスクリプトの削除

このスクリプトにより、show process cpu sorted コマンドの出力がローカル ファイル システムのファイルに追加され、完了すると、それ自体が削除されます。file system をスイッチ上の適切なファイル システムに置き換えてください。

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"

出力の収集とローカル ファイルへの書き込み

このスクリプトでは、必要な出力を実行および収集して、それらの出力をローカル ファイル システムに書き込むために syslog ベースのトリガーを使用します。file system をスイッチ上の適切なファイル システムに置き換えてください。

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"

モジュラ IOS での CPU 使用率の監視

また、Cisco EEM を使用して、モジュラ IOS で CPU 使用率を監視することもできます。モジュラ IOS で CPU を監視する方法に違いがあるため、IOS ベースのプロセスで CPU 使用率をチェックするために簡易ネットワーク管理プロトコル（SNMP）の OID（1.3.6.1.4.1.9.9.109.1.1.1.1.3.1）を使用できます。

このスクリプトでは、トリガーとして OID を使用して、必要な出力をローカル ファイル システムに書き込みます。file system をスイッチ上の適切なファイル システムに置き換えてください。

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"

スクリプトの削除

EEM スクリプトを削除するには、次のコマンドを入力してください。

Switch(config)#no event manager applet applet name

関連情報

- テクニカル サポートとドキュメント – Cisco Systems