Catalyst 3750 Metro スイッチ ソフトウェア コンフィギュレーション ガイド
EEM の設定
EEM の設定
発行日;2012/02/04 | 英語版ドキュメント(2011/06/02 版) | ドキュメントご利用ガイド | ダウンロード ; この章pdf , ドキュメント全体pdf (PDF - 12MB) | フィードバック

目次

EEM の設定

EEM の概要

イベント ディテクタ

EEM の処理

EEM のポリシー

EEM の環境変数

EEM 3.2

EEM の設定

EEM のアプレットの登録と定義

組み込みイベントマネージャの TCL スクリプトの登録と定義

EEM 情報の表示

EEM の設定

Embedded Event Manager(EEM; 組み込みイベント マネージャ)は、分散型のカスタマイズされた方法で Cisco IOS デバイス内のイベント検出と回復を行います。EEM はイベントを監視し、監視対象イベントが発生したり、しきい値に達したりすると、情報提供や訂正などの EEM 処理を実行します。EEM ポリシーは、イベントとイベント発生時に実行する処理を定義します。

この章では、EEM の使用方法および EEM を Catalyst 3750 Metro スイッチに設定する方法について説明します。この章で使用するコマンドの構文および使用方法の詳細については、このリリースのスイッチ コマンド リファレンスおよび『 Cisco IOS Network Management Command Reference 』を参照してください。EEM の詳細については、『Cisco IOS Network Management Configuration Guide』の次のドキュメントを参照してください。

Embedded Event Manager Overview

http://www.cisco.com/en/US/docs/ios/netmgmt/configuration/guide/nm_eem_overview.html

Writing Embedded Event Manager Policies Using the Cisco IOS CLI

http://www.cisco.com/en/US/docs/ios/netmgmt/configuration/guide/nm_eem_policy_cli.html

Writing Embedded Event Manager Policies Using Tcl

http://www.cisco.com/en/US/docs/ios/netmgmt/configuration/guide/nm_eem_policy_tcl.html

この章で説明する内容は、次のとおりです。

「EEM の概要」

「EEM の設定」

「EEM 情報の表示」

EEM の概要

EEM は重要なシステム イベントを監視し、設定されたポリシーに基づいてイベントを処理します。このポリシーはプログラミングしたスクリプトであり、これを使用して、発生するイベントの特定セットに基づいて処理を起動するスクリプトをカスタマイズできます。このスクリプトでは、カスタム Syslog や Simple Network Management Protocol(SNMP; 簡易ネットワーク管理プロトコル)トラップの生成、Command Line Interface(CLI; コマンドライン インターフェイス)の起動、フェールオーバーの実施などの処理が生成されます。すべてのイベント管理をスイッチから管理できるわけではなく、一部の問題によってスイッチと外部ネットワーク管理デバイスとの間の通信が侵害されるため、EEM のイベント管理機能は有用です。スイッチがリブートされずに自動回復処理が実行される場合、ネットワークの可用性は改善されます。

図 32-1 に、EEM サーバ、コア イベント パブリッシャ(イベント ディテクタ)、イベント サブスクライバ(ポリシー)の間の関係を示します。イベント パブリッシャが提供するイベント指定で一致するものがあるとき、イベント パブリッシャはイベントを選別します。イベント ディテクタは、イベント発生時に EEM サーバに通知します。EEM ポリシーは、特定イベント用にポリシーで指定されているシステムの現在の状態および処理に基づいて回復を実装します。

図 32-1 EEM のコア イベント ディテクタ

 

EEM 展開の例については、『 EEM Configuration for Cisco Integrated Services Router Platforms Guide 』を参照してください。

ここでは、次の概要について説明します。

「イベント ディテクタ」

「EEM の処理」

「EEM のポリシー」

「EEM の環境変数」

「EEM 3.2」

イベント ディテクタ

イベント ディテクタと呼ばれる EEM ソフトウェア プログラムは、EEM イベントがいつ発生したかを判別します。イベント ディテクタは、SNMP などの監視対象エージェントおよび操作を実装できる EEM ポリシーの間にインターフェイスを提供する別個のシステムです。

EEM では次のイベント ディテクタが許可されます。

アプリケーション特有のイベント ディテクタ:すべての EEM ポリシーがイベントをパブリッシュできます。

IOS CLI イベント ディテクタ:CLI で入力したコマンドに基づいてポリシーが生成されます。

GOLD イベント ディテクタ:指定カードおよびサブカードで GOLD エラー イベントが検出されたとき、イベントをパブリッシュします。

カウンタ イベント ディテクタ:指定カウンタが指定しきい値を超えたとき、イベントをパブリッシュします。

インターフェイス カウンタ イベント ディテクタ:指定インターフェイスの一般 Cisco IOS インターフェイス カウンタが定義済みしきい値を超えたとき、イベントをパブリッシュします。しきい値は絶対値または差分値として指定できます。たとえば差分値を 50 に設定した場合は、インターフェイス カウンタが 50 増加したときにイベントがパブリッシュされます。

このディテクタは、入口と出口の値の変化レートに基づいて、インターフェイスに関するイベントもパブリッシュします。

その他のイベント ディテクタ:CLI コマンド event manager run によって EEM ポリシーが実行されたとき、イベントがパブリッシュされます。EEM により、ポリシー自体のイベント指定に基づいてポリシーがスケジュールされて実行されます。EEM ポリシーを手動で識別して登録してから、event manager run コマンドを実行する必要があります。

Online Insertion and Removal(OIR; ホットスワップ)イベント ディテクタ:ハードウェア OIR イベントが発生したとき、イベントをパブリッシュします。

Remote Procedure Call(RPC; リモート プロシージャ コール)イベント ディテクタ:Secure Shell(SSH; セキュア シェル)を使用した暗号化接続を介してスイッチ外部から EEM を起動します。XML ベースのメッセージの交換には Simple Object Access Protocol(SOAP; 簡易オブジェクト アクセス プロトコル)データ符号化方式を使用します。また、EEM ポリシーを実行し、SOAP XML 形式の応答で出力を取得します。

SNMP イベント ディテクタ:標準的な SNMP MIB オブジェクトを監視し、次の場合にイベントが生成されるようにします。

オブジェクトが特定の値に一致したとき、または指定しきい値を超えたとき。

監視対象の Object Identifier(OID; オブジェクト識別子)値について、監視期間の開始時の値とイベントのパブリッシュ時の実際の値との差(SNMP デルタ値)が指定された値と一致したとき。

SNMP 通知イベント ディテクタ:SNMP トラップを代行受信し、スイッチで受信されたメッセージを通知します。着信メッセージが特定の値に一致したとき、または定義されたしきい値を超えたときにイベントが生成されます。

Syslog イベント ディテクタ:正規表現のパターンの一致を Syslog メッセージで選別できます。指定時間内に特定発生回数がログされることを要求することにより、選択メッセージをさらに限定できます。指定イベント基準の一致により、設定済みポリシー処理がトリガーされます。

タイマー イベント ディテクタ:次のタイマーのイベントをパブリッシュします。

絶対 Time-of-Day(ToD)タイマーは、指定日時になったときにイベントをパブリッシュします。

カウントダウン タイマーは、タイマーがゼロにカウントダウンしたときにイベントをパブリッシュします。

ウォッチドッグ タイマーは、タイマーがゼロにカウントダウンしたときにイベントをパブリッシュします。タイマーは自動的に初期値にリセットされ、カウントダウンが再開されます。

CRON タイマーは、イベントをパブリッシュするときを定義する UNIX 標準の CRON 指定を使用してイベントをパブリッシュします。CRON タイマーは、1 分間に複数回イベントをパブリッシュしません。

ウォッチドッグ イベント ディテクタ(IOSWDSysMon):次のうちいずれかのイベントが発生したときにイベントをパブリッシュします。

Cisco IOS プロセスの CPU 利用率がしきい値を超えたとき。

Cisco IOS プロセスのメモリ利用率がしきい値を超えたとき。

2 つのイベントを同時に監視でき、片方のイベントまたは両方のイベントが指定しきい値を超えることが、イベント パブリッシュ基準で要求されます。

EEM の処理

イベントに応答して、次の処理が発生します。

指定カウンタの変更

アプリケーション特有のイベントのパブリッシュ

SNMP トラップの生成

プライオリティが設定された Syslog メッセージの生成

Cisco IOS ソフトウェアのリロード

EEM のポリシー

EEM ではイベントを監視して情報を提供したり、監視対象イベントが発生したかしきい値に達したときに訂正処理を実行したりすることができます。EEM ポリシーは、イベントおよびそのイベントの発生時に実行する処理を定義するエンティティです。

EEM には、アプレットとスクリプトの 2 種類があります。アプレットは、CLI 設定内で定義する単純なポリシーです。イベント選別基準およびそのイベントが発生したときに実行する処理を定義する簡潔な方法です。スクリプトは、ASCII エディタを使用してネットワーキング デバイスで定義します。スクリプトはネットワーキング デバイスにコピーされ、EEM で登録されます。

EEM を使用して独自のポリシーの作成と実装を行うには、EEM ポリシーの Tool Command Language(TCL)スクリプトを使用します。

シスコではキーワード拡張という形式で TCL を拡張し、EEM ポリシーの開発を容易にしています。このキーワードでは、検出されたイベント、そのあとの処理、ユーティリティ情報、カウンタ値、システム情報が識別されます。

EEM ポリシーとスクリプトの設定については、『Cisco IOS Network Management Configuration Guide, Release 12.4T』を参照してください。

EEM の環境変数

EEM の EEM ポリシーでは環境変数が使用されます。この環境変数は、CLI コマンドおよび event manager environment コマンドを実行して、EEM ポリシー TCL スクリプトで定義します。次の環境変数を EEM で定義できます。

ユーザ定義変数

ユーザがユーザ定義ポリシー用に定義します。

シスコ定義変数

シスコが特定のサンプル ポリシー用に定義します。

シスコ組み込み変数(EEM アプレットで使用可能)

シスコが定義し、読み取り専用か読み取りと書き込みのどちらかになります。読み取り専用変数は、アプレットの実行開始前にシステムによって設定されます。単一の読み取りと書き込みの変数 _exit_status では、同期イベントからトリガーされたポリシーの終了ステータスを設定できます。

シスコ定義環境変数およびシスコ システム定義環境変数は、1 つの特定イベント ディテクタまたはすべてのイベント ディテクタに適用できます。ユーザが定義したかサンプル ポリシーでシスコが定義した環境変数は、グローバル コンフィギュレーション コマンド event manager environment を使用して設定します。EEM ポリシーで変数を定義してから、ポリシーを登録する必要があります。

EEM でサポートされる環境変数については、『Cisco IOS Network Management Configuration Guide, Release 12.4T』を参照してください。

EEM 3.2

EEM 3.2 は、Cisco IOS リリース 12.2(52)SE 以降でサポートされ、次のイベント ディテクタが組み込まれています。

近隣探索:近隣探索イベント ディテクタには、次の場合に、自動近接検出に応答するポリシーをパブリッシュする機能があります。

Cisco Discovery Protocol(CDP; シスコ検出プロトコル)キャッシュ エントリが追加、削除、またはアップデートされたとき。

Link Layer Discovery Protocol(LLDP)キャッシュ エントリが追加、削除、またはアップデートされたとき。

インターフェイス リンク ステータスが変更されたとき。

インターフェイス ライン ステータスが変更されたとき。

アイデンティティ:アイデンティティ イベント ディテクタは、Authentication, Authorization, Accounting(AAA; 認証、許可、アカウンティング)許可および認証が成功したとき、障害が発生したとき、またはポート上の通常のユーザ トラフィックが通過を許可されたあとにイベントを生成します。

MAC アドレス テーブル:MAC アドレス テーブル イベント ディテクタは、MAC アドレス テーブルで MAC アドレスが学習されたときにイベントを生成します。


) このディテクタは、スイッチ プラットフォームでだけサポートされ、MAC アドレスが学習されるレイヤ 2 インターフェイスでだけ使用できます。レイヤ 3 インターフェイスはアドレスを学習せず、ルータは通常、学習された MAC アドレスの EEM を通知するのに必要な MAC アドレス テーブル インフラストラクチャをサポートしません。


EEM 3.2 には、アプレットと新しいイベント ディテクタがともに動作できるようにするための CLI コマンドも組み込まれています。

EEM 3.2 の機能の詳細については、EEM 3.2 のマニュアルを参照してください。URL は次のとおりです。

http://www.cisco.com/en/US/docs/ios/netmgmt/configuration/guide/nm_eem_3.2.html

EEM の設定

ここでは、次の設定情報について説明します。

「EEM のアプレットの登録と定義」

「組み込みイベントマネージャの TCL スクリプトの登録と定義」

EEM の設定の詳細については、『Cisco IOS Network Management Configuration Guide, Release 12.4T』を参照してください。

EEM のアプレットの登録と定義

イネーブル EXEC モードを開始し、コンフィギュレーション コマンド event applet と action applet を使用してこのタスクを実行して、EEM でのアプレットの登録および EEM アプレットの定義を行います。


) EEM アプレットでは、イベント アプレット コマンドが 1 つだけ許可されます。処理アプレット コマンドは複数許可されます。コマンド no event および no action を指定しない場合、コンフィギュレーション モードを終了すると、アプレットは削除されます。


 

コマンド
目的

ステップ 1

configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

event manager applet applet-name

EEM でアプレットを登録し、アプレット コンフィギュレーション モードを開始します。

ステップ 3

event snmp oid oid-value get-type { exact | next } entry-op { gt | ge | eq | ne | lt | le } entry-val entry-val [ exit-comb { or | and }] [ exit-op { gt | ge | eq | ne | lt | le }] [ exit-val exit-val ] [ exit-time exit-time-val ] poll-interval poll-int-val

EEM アプレットの実行の原因となるイベント基準を指定します。

(任意)終了基準。終了基準を指定しない場合は、イベント監視がすぐに再び有効になります。

ステップ 4

action label syslog [ priority priority-level ] msg msg-text

EEM アプレットがトリガーされたときの処理を指定します。その他の CLI コマンドをアプレットに追加するには、この処理を繰り返します。

(任意)priority キーワードでは、Syslog メッセージのプライオリティ レベルを指定します。これを選択した場合は、priority-level 引数を定義する必要があります。

msg-text 引数は、文字テキスト、環境変数、またはこの 2 つの組み合わせにすることができます。

ステップ 5

end

アプレット コンフィギュレーション モードを終了し、特権 EXEC モードに戻ります。

次の例は、SNMP オブジェクト ID で指定したフィールドのうち、いずれかが定義済みしきい値を超えたときの EEM の出力を示しています

Switch(config-applet)# event snmp oid 1.3.6.1.4.1.9.9.48.1.1.1.6.1 get-type exact entry-op lt entry-val 5120000 poll-interval 10
  • 次の例は、EEM イベントに対応して実行される処理を示しています。
Switch(config-applet)# action 1.0 syslog priority critical msg "Memory exhausted; current available memory is $_snmp_oid_val bytes"
 
Switch (config-applet)# action 2.0 force-switchover

組み込みイベントマネージャTCL スクリプトの登録と定義

TCL スクリプトを EEM で登録し、TCL スクリプト コマンドとポリシー コマンドを定義するには、特権 EXEC モードを開始してこのタスクを実行します。

 

コマンド
目的

ステップ 1

configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

show event manager environment [all | variable-name]

(任意)show event manager environment コマンドにより、EEM 環境変数の名前と値が表示されます。

(任意)all キーワードでは、EEM 環境変数が表示されます。

(任意)variable-name 引数では、指定した環境変数の情報が表示されます。

ステップ 3

configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 4

event manager environment variable-name string

指定した EEM 環境変数の値を設定します。必要なすべての環境変数にこの手順を繰り返します。

ステップ 5

event manager policy policy-file-name [ type system ] [ trap ]

ポリシーで定義した指定イベントが発生したときに実行する EEM ポリシーを登録します。

ステップ 6

exit

グローバル コンフィギュレーション モードを終了し、特権 EXEC モードに戻ります。

次の例は、show event manager environment コマンドの出力例です。

Switch# show event manager environment all
No. Name Value
1 _cron_entry 0-59/2 0-23/1 * * 0-6
2 _show_cmd show ver
3 _syslog_pattern .*UPDOWN.*Ethernet1/0.*
4 _config_cmd1 interface Ethernet1/0
5 _config_cmd2 no shut
 

次の例は、ソフトウェアによって割り当てられて、毎日の毎時、毎分、毎秒に設定される CRON タイマー環境変数を示しています。

Switch (config)# event manager environment_cron_entry 0-59/2 0-23/1 * * 0-6
 

次の例は、システム ポリシーとして登録されている tm_cli_cmd.tcl という名前の EEM ポリシーを示しています。システム ポリシーは、Cisco IOS イメージの一部です。まず、ユーザが定義した TCL スクリプトをフラッシュ メモリにコピーする必要があります。

 
Switch (config)# event manager policy tm_cli_cmd.tcl type system

EEM 情報の表示

EEM 登録済みポリシーや EEM 履歴データなど、EEM に関する情報を表示するには、『 Cisco IOS Network Management Command Reference 』を参照してください。