ネットワーク管理 コンフィギュレーション ガイド Cisco IOS Release 15.1S
Cisco IOS コマンドライン インターフェイス (CLI)を使用した Embedded Event Manager(EEM)ポリシーの記述
Cisco IOS コマンドライン インターフェイス(CLI)を使用した Embedded Event Manager(EEM)ポリシーの記述
発行日;2012/02/02 | 英語版ドキュメント(2011/04/25 版) | ドキュメントご利用ガイド | ダウンロード ; この章pdf , ドキュメント全体pdf (PDF - 5MB) | フィードバック

目次

Cisco IOS コマンドライン インターフェイス(CLI)を使用した Embedded Event Manager(EEM)ポリシーの記述

この章の構成

Cisco IOS CLI を使用して EEM ポリシーを記述するための前提条件

Cisco IOS CLI を使用した EEM ポリシーの記述について

Embedded Event Manager ポリシー

EEM アプレット

EEM スクリプト

EEM アプレットに使用される Embedded Event Manager 組み込み環境変数

Cisco IOS CLI を使用した EEM ポリシーの記述方法

Embedded Event Manager アプレットの登録と定義

EEM 環境変数

EEM アクション ラベルのアルファベット順

トラブルシューティングのヒント

手動で実行する Embedded Event Manager ポリシーの登録と定義

Embedded Event Manager ポリシーの登録解除

すべての Embedded Event Manager ポリシー実行の一時停止

Embedded Event Manager を使用したスタブ オブジェクトの設定とトラッキング

拡張オブジェクト トラッキング

Embedded Event Manager ポリシーの履歴データ表示

Embedded Event Manager の登録済みポリシー表示

イベント SNMP 通知の設定

複数イベント サポートの設定

イベント設定パラメータの設定

EEM クラスベース スケジューリングの設定

前提条件

スケジュールされた EEM ポリシー イベントまたはイベント キューをホールドする

EEM ポリシー イベントまたはイベント キューの実行の再開

保留 EEM ポリシー イベントまたはイベント キューのクリア

EEM ポリシー イベントまたはイベント キューのスケジューリング パラメータの変更

クラスベースでスケジュールされた EEM ポリシーのアクティビティの確認

クラスベースのアクティブ EEM ポリシーの確認

保留 EEM ポリシーの確認

EEM アプレット(インタラクティブ CLI)サポートの設定

同期 EEM アプレットのアクティブ コンソールからの入力の読み取りと書き込み

SNMP ライブラリ拡張機能の設定

前提条件

SNMP Get および Set オペレーション

SNMP トラップ要求およびインフォーム要求

SNMP ライブラリ拡張機能の設定方法

SNMP OID 通知の EEM アプレットの設定

EEM アプレットの可変ロジックの設定

前提条件

EEM アプレットの可変ロジックの設定

条件付きブロックのループの指定

if else 条件付きブロックの指定

foreach 反復文の指定

正規表現の使用

変数の値の増加

イベント SNMP オブジェクトの設定

前提条件

認証、認可、アカウンティング(AAA)認証を無効にする

Embedded Event Manager アプレットの説明の設定

Cisco IOS CLI を使用して EEM ポリシーを記述する設定例

Embedded Event Manager アプレット設定:例

Embedded Event Manager ポリシーの手動での実行:例

Embedded Event Manager を使用したスタブ オブジェクトの設定とトラッキング:例

Embedded Event Manager Watchdog System Monitor(Cisco IOS)イベント ディテクタの設定:例

SNMP ライブラリ拡張機能設定:例

SNMP Get オペレーション:例

SNMP GetID オペレーション:例

Set オペレーション:例

SNMP 通知の生成:例

EEM アプレットの可変ロジックの設定:例

イベント SNMP オブジェクトの設定:例

EEM アプレットの説明の設定:例

関連情報

その他の参考資料

関連資料

規格

MIB

RFC

シスコのテクニカル サポート

Cisco IOS CLI を使用した EEM ポリシー記述の機能情報

Cisco IOS コマンドライン インターフェイス(CLI)を使用した Embedded Event Manager(EEM)ポリシーの記述

この章では、Cisco IOS Command-Line Interface(CLI; コマンドライン インターフェイス)アプレットを使用して、Cisco IOS ソフトウェア障害およびイベントを処理する Embedded Event Manager(EEM)ポリシーを記述する方法について説明します。EEM は、イベント検出と回復を Cisco IOS 内部で直接行うための分散型でカスタマイズされた手法です。EEM では、イベントを監視し、イベント発生が検出されたとき、およびしきい値を超えたときに情報通知や是正などの任意のアクションを実施できます。EEM ポリシー エンジンは、障害およびその他のイベントが発生したときに通知を受け取ります。EEM ポリシーは、システムの現在の状態に基づいて回復を実行し、該当するイベントのポリシーに指定されたアクションを実行します。回復アクションはポリシーが実行されたときにトリガーされます。

この章で紹介する機能情報の入手方法

ご使用の Cisco IOS ソフトウェア リリースによっては、この章に記載されている機能の中に、一部サポートされていないものがあります。この章に記載されている特定の機能に関する説明へのリンク、および各機能がサポートされているリリースのリストについては、「Cisco IOS CLI を使用した EEM ポリシー記述の機能情報」を参照してください。

プラットフォーム、Cisco IOS ソフトウェア イメージ、および Cisco Catalyst OS ソフトウェア イメージの各サポート情報の入手

Cisco Feature Navigator を使用すると、プラットフォーム、Cisco IOS ソフトウェア イメージ、および Cisco Catalyst OS ソフトウェア イメージの各サポート情報を検索できます。Cisco Feature Navigator には、 http://www.cisco.com/go/cfn からアクセスします。Cisco.com のアカウントは必要ありません。

Cisco IOS CLI を使用して EEM ポリシーを記述するための前提条件

EEM ポリシーを記述する前に、「 Embedded Event Manager Overview 」の章で説明している概念を理解している必要があります。

action cns-event コマンドが使用される場合は、Cisco Networking Services(CNS)イベント ゲートウェイへのアクセスを設定する必要があります。

action force-switchover コマンドが使用される場合は、デバイスにセカンダリ プロセッサを設定する必要があります。

action snmp-trap コマンドが使用される場合は、 snmp-server enable traps event-manager コマンドをイネーブルにして、SNMP トラップの Cisco IOS デバイスから SNMP サーバへの送信を許可する必要があります。その他の関連する snmp-server コマンドも設定する必要があります。詳細については、 action snmp-trap コマンドのページを参照してください。

Cisco IOS CLI を使用した EEM ポリシーの記述について

Cisco IOS CLI を使用して EEM ポリシーを記述するには、次の概念を理解しておく必要があります。

「Embedded Event Manager ポリシー」

「EEM アプレットに使用される Embedded Event Manager 組み込み環境変数」

「EEM アプレットに使用される Embedded Event Manager 組み込み環境変数」

Embedded Event Manager ポリシー

EEM では、イベントを監視し、イベント発生が検出されたとき、およびしきい値を超えたときに情報通知や是正などのアクションを実施できます。EEM ポリシーは、イベントとそのイベント発生時に実行するアクションを定義するエンティティです。EEM ポリシーには、アプレットとスクリプトの 2 つのタイプがあります。アプレットは、CLI 設定に定義された、ポリシーの単純な形式です。スクリプトは、Tool Command Language(Tcl)で記述されたポリシーの形式です。

EEM アプレット

EEM アプレットは、イベント スクリーニング基準とイベント発生時に実行するアクションを定義する簡潔な方法です。アプレット コンフィギュレーション モードでは、3 種類のコンフィギュレーション文がサポートされます。 event コマンドを使用して実行するアプレットをトリガーするイベント基準を指定し、 action コマンドを使用して、EEM アプレットがトリガーされるときに実行されるアクションを指定し、 set コマンドを使用して EEM アプレット変数の値を設定します。現在、_exit_status 変数だけが、 set コマンドでサポートされます。

アプレット コンフィギュレーションでは、 event コンフィギュレーション コマンドを 1 個だけ使用できます。アプレット コンフィギュレーション モードが終了し、 event コマンドが存在しない場合は、このアプレットにイベントが割り当てられていないことを示す警告が表示されます。イベントが指定されない場合、このアプレットは登録されたと見なされません。このアプレットにアクションが割り当てられない場合、イベントはトリガーされますが、アクションは実行されません。1 つのアプレット コンフィギュレーション内で複数の action コンフィギュレーション コマンドが使用できます。 show event manager policy registered コマンドを使用して、登録されたアプレットの一覧を表示します。

EEM アプレットを修正する前に、アプレット コンフィギュレーション モードを終了するまで既存のアプレットを置き換えられないことに注意してください。アプレット コンフィギュレーション モードでアプレットを修正中であっても、既存のアプレットを実行できます。アプレットを登録解除することなく修正することが安全な方法です。アプレット コンフィギュレーション モードを終了すると、古いアプレットが登録解除され、新しいバージョンが登録されます。

action コンフィギュレーション コマンドは、 label 引数を使用することで一意に識別できます。label 引数には任意の文字列値が使用できます。アクションは、 label 引数をソート キーとして、英数字のキーの昇順にソートされ、この順序で実行されます。

Embedded Event Manager は、ポリシーそのものに含まれるイベント仕様に基づいてポリシーをスケジューリングし、実行します。アプレット コンフィギュレーション モードが終了するとき、EEM は、入力された event コマンドと action コマンドを検査し、指定されたイベントの発生時に実行されるようにアプレットを登録します。

EEM スクリプト

ネットワーキング デバイスから離れて、ASCII エディタを使用してスクリプトを定義します。続いてスクリプトはネットワーキング デバイスにコピーされ EEM に登録されます。Tcl スクリプトは EEM でサポートされます。

EEM では、Tcl を使用して独自のポリシーを記述、実装できます。EEM ポリシーの記述には、次の手順が含まれます。

ポリシーが実行されるイベントの選択。

イベントの記録およびイベントへの対応に関連付けられたイベント ディテクタ オプションの定義。

イベント発生時に実行されるアクションの選択。

シスコは、Tcl に EEM ポリシー開発を促進するキーワード拡張機能の形式を加えました。キーワードの主要なカテゴリでは、検出されたイベント、後続のアクション、ユーティリティ情報、カウンタの値、システム情報が特定されます。Tcl を使用して EEM ポリシーを記述する方法については、「 Writing Embedded Event Manager Policies Using Tcl 」の章を参照してください。

EEM アプレットに使用される Embedded Event Manager 組み込み環境変数

EEM 組み込み環境変数は、シスコ定義の環境変数のサブセットです。組み込み変数は、EEM アプレットでだけ利用できます。組み込み変数は、読み込み専用であるか、または読み込みおよび書き込み用のいずれかです。これらの変数は、1 個の特定のイベント ディテクタまたはすべてのイベント ディテクタに適用されます。 表 1 に、イベント ディテクタおよびサブイベントごとの読み込み専用のシスコ組み込み環境変数の一覧をアルファベット順に示します。

 

表 1 EEM 組み込み環境変数(読み込み専用)

環境変数
説明
すべてのイベント

_event_id

パブリッシュされた該当イベントの ID を示す一意の番号。同一のイベントで複数のポリシーを実行可能であり、その場合、各ポリシーは同一の event_id を保持します。

_event_type

イベントのタイプ。

_event_type_string

イベントをトリガーしたイベントの種類を識別する ASCII 文字列。

_event_pub_sec
_event_pub_msec

EEM に対してイベントがパブリッシュされた、秒単位およびミリ秒単位の時間。

_event_severity

イベントの重大度。

Application-Specific イベント ディテクタ

_application_component_id

イベント アプリケーション コンポーネント ID。

_application_data1

イベントがパブリッシュされたときにアプリケーション固有のイベントに渡される、環境変数の値、キャラクタ テキスト、またはその両方の組み合わせ。

_application_data2

イベントがパブリッシュされたときにアプリケーション固有のイベントに渡される、環境変数の値、キャラクタ テキスト、またはその両方の組み合わせ。

_application_data3

イベントがパブリッシュされたときにアプリケーション固有のイベントに渡される、環境変数の値、キャラクタ テキスト、またはその両方の組み合わせ。

_application_data4

イベントがパブリッシュされたときにアプリケーション固有のイベントに渡される、環境変数の値、キャラクタ テキスト、またはその両方の組み合わせ。

_application_sub_system

イベント アプリケーション サブシステム番号。

_application_type

アプリケーションのタイプ。

CLI イベント ディテクタ

_cli_msg

CLI イベントをトリガーした、完全に展開されたメッセージ。

_cli_msg_count

イベントがパブリッシュされる前にメッセージ一致が発生した回数。

Counter イベント ディテクタ

_counter_name

カウンタの名前。

_counter_value

カウンタの値。

Enhanced Object Tracking イベント ディテクタ

_track_number

トラッキング対象オブジェクトの数。

_track_state

トラッキング対象オブジェクトの状態(ダウン、またはアップ)。

Generic Online Diagnostics(GOLD)イベント ディテクタ

_action_notify

GOLD イベント フラグのアクション通知情報(False または True)。

_event_severity

イベントの重大度(Normal、Minor、または Major)。

_gold_bl

起動診断レベル、次のいずれかの値である。

0:完全診断

1:最小診断

2:バイパス診断

_gold_card

GOLD 障害イベントが検出されたカード。

_gold_cf testnum

連続的な障害。 testnum はテスト番号。たとえば、 _gold_cf3 は、テスト 3 の連続的な障害の EEM 組み込み環境変数です。

_gold_ci

カード インデックス。

_gold_cn

カードの名前。

_gold_ec testnum

テスト エラー コード。 testnum はテスト番号。たとえば、 _gold_ec3 は、テスト 3 のエラー コードの EEM 組み込み環境変数です。

_gold_lf testnum

最終障害時間。 testnum はテスト番号。たとえば、 _gold_lf3 は、テスト 3 の最終障害時間の EEM 組み込み変数です。

タイムスタンプの形式は mmm dd yyyy hh : mm : ss です。例:Mar 11 2005 08:47:00。

_gold_new_failure

GOLD イベント フラグの新しいテスト障害情報(False または True)。

_gold_overall_result

総合診断結果、次のいずれかの値である。

0:OK

3:マイナー エラー

4:メジャー エラー

14:結果不明

_gold_pc

ポート数。

_gold_rc testnum

テスト総実行回数。 testnum はテスト番号。たとえば、 _gold_rc3 は、テスト 3 の総実行回数の EEM 組み込み変数です。

_gold_sn

カード シリアル番号。

_gold_sub_card

GOLD 障害イベントが検出されたサブカード。

_gold_ta testnum

テスト アトリビュート。 testnum はテスト番号。たとえば、 _gold_ta3 は、テスト 3 のアトリビュートの EEM 組み込み変数です。

_gold_tc

テスト数。

_gold_tf testnum

合計障害回数。 testnum はテスト番号。たとえば、 _gold_tf3 は、テスト 3 の合計障害回数の EEM 組み込み変数です。

_gold_tn testnum

テストの名前。 testnum はテスト番号。たとえば、 _gold_tn3 は、テスト 3 の名前の EEM 組み込み変数です。

_gold_tr testnum

テストの結果。 testnum はテスト番号。たとえば、 _gold_tr6 は、テスト 6 の EEM 組み込み変数です。テスト 6 は、ポートごとのテストではなく、デバイスごとのテストでもありません。

テスト結果は、次の値のうちのいずれかです。

P:診断結果 Pass

F:診断結果 Fail

U:診断結果 Unknown

_gold_tr testnum d devnum

デバイスごとのテスト結果。 testnum はテスト番号で、 devnum はデバイス番号です。たとえば、 _gold_tr3d20 は、テスト 3、デバイス 20 のテスト結果の EEM 組み込み変数です。

テスト結果は、次の値のうちのいずれかです。

P:診断結果 Pass

F:診断結果 Fail

U:診断結果 Unknown

_gold_tr testnum p portnum

ポートごとのテスト結果。 testnum はテスト番号で、 portnum はポート番号です。たとえば、 _gold_tr5p20 は、テスト 5、ポート 20 のテスト結果の EEM 組み込み変数です。

テスト結果は、次の値のうちのいずれかです。

P:診断結果 Pass

F:診断結果 Fail

U:診断結果 Unknown

_gold_tt

テストのタイプ。次のうちのいずれかです。

1:起動診断

2:オンデマンド診断

3:スケジュール診断

4:モニタリング診断

Interface Counter イベント ディテクタ

_interface_is_increment

現在のインターフェイス カウンタ値が、絶対値(0)か増分値(1)かを示す値。

_interface_name

監視されるインターフェイスの名前。

_interface_parameter

監視されるインターフェイス カウンタの名前。

_interface_value

現在のインターフェイス カウンタ値と比較される値。

None イベント ディテクタ

_event_id

1 であれば挿入イベントを示し、2 であれば削除イベントを示す値。

_none_argc

_none_arg1

_none_arg2

_none_arg3

_none_arg4

_none_arg5

_none_arg6

_none_arg7

_none_arg8

_none_arg9

_none_arg10

_none_arg11

_none_arg12

_none_arg13

_none_arg14

_none_arg15

Extensible Markup Language(XML)Simple Object Access Protocol(SOAP)コマンドからスクリプトに渡されるパラメータ。

OIR イベント ディテクタ

_oir_event

1 であれば挿入イベントを示し、2 であれば削除イベントを示す値。

_oir_slot

OIR イベントのスロット番号。

Resource イベント ディテクタ

_resource_configured_threshold

設定されている ERM しきい値。

_resource_current_value

ERM によって報告された、現在の値。

_resource_dampen_time

ERM 減衰時間、ナノ秒単位。

_resource_direction

ERM イベント方向。イベント方向は、アップ、ダウン、または、変更なしのうちのいずれかです。

_resource_level

ERM イベント レベル。イベント レベルは、Normal、Minor、Major、および Critical の 4 つです。

_resource_notify_data_flag

ERM 通知データ フラグ。

_resource_owner_id

ERM リソース オーナー ID。

_resource_policy_id

ERM ポリシー ID。

_resource_policy_violation_flag

ERM ポリシー違反フラグ(False または True)。

_resource_time_sent

ERM イベント時間、ナノ秒単位。

_resource_user_id

ERM リソース ユーザ ID。

Redundancy Framework(RF)イベント ディテクタ

_rf_event

0 であれば RF イベントでないことを示し、1 であれば RF イベントであることを示す値。

RPC イベント ディテクタ

_rpc_event

0 であればエラーがないことを示し、1 から 83 までの値であればエラーを示す値。

_rpc_argc

_rpc_arg0

_rpc_arg1

_rpc_arg2

_rpc_arg3

_rpc_arg4

_rpc_arg5

_rpc_arg6

_rpc_arg7

_rpc_arg8

_rpc_arg9

_rpc_arg10

_rpc_arg11

_rpc_arg12

_rpc_arg13

_rpc_arg14

XML SOAP コマンドからアプレットに渡されるパラメータ。

SNMP イベント ディテクタ

_snmp_exit_event

0 であれば exit イベントでないことを示し、1 であれば exit イベントであることを示す値。

_snmp_oid

パブリッシュされるイベントの原因となった SNMP オブジェクトの ID。

_snmp_oid_delta_val

現在の SNMP オブジェクト ID の値と、イベントが最後にトリガーされたときの値の実際の増分。

_snmp_oid_val

イベントがパブリッシュされたときの SNMP オブジェクト ID 値。

SNMP 通知イベント ディテクタ

_snmp_notif_oid

ユーザ指定オブジェクト ID。

_snmp_notif_oid_val

ユーザ指定オブジェクト ID 値。

_snmp_notif_src_ip_addr

SNMP Protocol Data Unit(PDU; プロトコル データ ユニット)の発信元 IP アドレス。

_snmp_notif_dest_ip_addr

SNMP PDU の宛先の IP アドレス。

_x_x_x_x_x_x_x(varbind)

SNMP PDU varbind 情報。

_snmp_notif_trunc_vb_buf

バッファの領域不足から varbind 情報が切り捨てられているかどうかを示します。

Syslog イベント ディテクタ

_syslog_msg

パブリッシュされるイベントの原因となる syslog メッセージ。

System Manager(Process)イベント ディテクタ

_process_dump_count

Posix プロセスがダンプされた回数。

_process_exit_status

終了時の Posix プロセスの状態。

_process_fail_count

Posix プロセスが失敗した回数。

_process_instance

Posix プロセスのインスタンス数。

_process_last_respawn

最後に再生成された Posix プロセス。

_process_node_name

Posix プロセスのノード名。

_process_path

Posix プロセスのパス。

_process_process_name

Posix プロセスの名前。

_process_respawn_count

Posix プロセスが再生成された回数。

Timer イベント ディテクタ

_timer_remain

タイマーの期限が切れるまでの使用可能時間。

(注) この環境変数は、CRON タイマーには使用できません。

_timer_time

最後のイベントがトリガーされた時間。

_timer_type

タイマーのタイプ。

Watchdog System Monitor(IOSWDSysMon)イベント ディテクタ

_ioswd_node

Route Processor(RP; ルート プロセッサ)レポーティング ノードのスロット番号。

_ioswd_num_subs

存在するサブイベントの数。

全 Watchdog System Monitor(IOSWDSysMon)サブイベント

_ioswd_sub1_present
_ioswd_sub2_present

サブイベント 1 またはサブイベント 2 の存在を示す値。値 1 は、サブイベントが存在することを示し、値 0 はサブイベントが存在しないことを示します。

_ioswd_sub1_type
_ioswd_sub2_type

イベントのタイプ(cpu_proc、または mem_proc)。

Watchdog System Monitor(IOSWDSysMon)cpu_proc サブイベント

_ioswd_sub1_path
_ioswd_sub2_path

サブイベントのプロセス名。

_ioswd_sub1_period
_ioswd_sub2_period

サブイベントの測定に使用される時間間隔(秒単位、オプションでミリ秒単位)。

_ioswd_sub1_pid
_ioswd_sub2_pid

サブイベントのプロセス ID。

_ioswd_sub1_taskname
_ioswd_sub2_taskname

サブイベントのタスク名。

_ioswd_sub1_value
_ioswd_sub2_value

パーセンテージで測定されたサブイベントの CPU 使用率。

Watchdog System Monitor(IOSWDSysMon)mem_proc サブイベント

_ioswd_sub1_diff
_ioswd_sub2_diff

イベントをトリガーした差のパーセンテージの値。

変数が 1 である場合に限って設定されます。

_ioswd_sub1_is_percent
_ioswd_sub2_is_percent

値がパーセンテージであるかどうかを識別する番号。0 であれば値がパーセンテージではないことを意味し、1 であれば値がパーセンテージであることを意味します。

_ioswd_sub1_path
_ioswd_sub2_path

サブイベントのプロセス名。

_ioswd_sub1_pid
_ioswd_sub2_pid

サブイベントのプロセス ID。

_ioswd_sub1_taskname
_ioswd_sub2_taskname

サブイベントのタスク名。

_ioswd_sub1_value
_ioswd_sub2_value

パーセンテージで測定されたサブイベントの CPU 使用率。

Watchdog System Monitor(WDSysMon)イベント ディテクタ

_wd_sub1_present
_wd_sub2_present

サブイベント 1 またはサブイベント 2 の存在を示す値。値 1 は、サブイベントが存在することを示し、値 0 はサブイベントが存在しないことを示します。

_wd_num_subs

存在するサブイベントの数。

_wd_sub1_type
_wd_sub2_type

イベントのタイプ(cpu_proc、cpu_tot、deadlock、dispatch_mgr、mem_proc、mem_tot_avail、または mem_tot_used)。

Watchdog System Monitor(WDSysMon)cpu_proc サブイベント

_wd_sub1_node
_wd_sub2_node

サブイベント RP レポーティング ノードのスロット番号。

_wd_sub1_period
_wd_sub2_period

サブイベントの測定に使用される時間間隔(秒単位、オプションでミリ秒単位)。

_wd_sub1_procname
_wd_sub2_procname

サブイベントのプロセス名。

_wd_sub1_value
_wd_sub2_value

パーセンテージで測定されたサブイベントの CPU 使用率。

Watchdog System Monitor(WDSysMon)cpu_tot サブイベント

_wd_sub1_node
_wd_sub2_node

サブイベント RP レポーティング ノードのスロット番号。

_wd_sub1_period
_wd_sub2_period

サブイベントの測定に使用される時間間隔(秒単位、オプションでミリ秒単位)。

_wd_sub1_value
_wd_sub2_value

パーセンテージで測定されたサブイベントの CPU 使用率。

Watchdog System Monitor(WDSysMon)deadlock サブイベント

_wd_sub1_entry_ [1-N] _b_node
_wd_sub2_entry_ [1-N] _b_node

サブイベント RP レポーティング ノードのスロット番号。

_wd_sub1_entry_ [1-N] _b_pid
_wd_sub2_entry_ [1-N] _b_pid

サブイベントのプロセス ID。

_wd_sub1_entry_ [1-N] _b_procname
_wd_sub2_entry_ [1-N] _b_procname

サブイベントのプロセス名。

_wd_sub1_entry_ [1-N] _b_tid
_wd_sub2_entry_ [1-N] _b_tid

サブイベントのタイム ID。

_wd_sub1_entry_ [1-N] _node
_wd_sub2_entry_ [1-N] _node

サブイベント RP レポーティング ノードのスロット番号。

_wd_sub1_entry_ [1-N] _pid
_wd_sub2_entry_ [1-N] _pid

サブイベントのプロセス ID。

_wd_sub1_entry_ [1-N] _procname
_wd_sub2_entry_ [1-N] _procname

サブイベントのプロセス名。

_wd_sub1_entry_ [1-N] _state
_wd_sub2_entry_ [1-N] _state

サブイベントのタイム ID。

_wd_sub1_entry_ [1-N] _tid
_wd_sub2_entry_ [1-N] _tid

サブイベントのタイム ID。

_wd_sub1_num_entries
_wd_sub2_num_entries

サブイベントの数。

Watchdog System Monitor(WDSysMon)dispatch サブイベント

_wd_sub1_node
_wd_sub2_node

サブイベント RP レポーティング ノードのスロット番号。

_wd_sub1_period
_wd_sub2_period

サブイベントの測定に使用される時間間隔(秒単位、オプションでミリ秒単位)。

_wd_sub1_procname
_wd_sub2_procname

サブイベントのプロセス名。

_wd_sub1_value
_wd_sub2_value

パーセンテージで測定されたサブイベントの CPU 使用率。

Watchdog System Monitor(WDSysMon)mem_proc サブイベント

_wd_sub1_diff
_wd_sub2_diff

イベントをトリガーした差のパーセンテージの値。

変数が 1 である場合に限って設定されます。

_wd_sub1_is_percent
_wd_sub2_is_percent

値がパーセンテージであるかどうかを識別する番号。0 であれば値がパーセンテージではないことを意味し、1 であれば値がパーセンテージであることを意味します。

_wd_sub1_node
_wd_sub2_node

サブイベント RP レポーティング ノードのスロット番号。

_wd_sub1_period
_wd_sub2_period

サブイベントの測定に使用される時間間隔(秒単位、オプションでミリ秒単位)。

_wd_sub1_pid
_wd_sub2_pid

サブイベントのプロセス ID。

_wd_sub1_procname
_wd_sub2_procname

サブイベントのプロセス名。

_wd_sub1_value
_wd_sub2_value

パーセンテージで測定されたサブイベントの CPU 使用率。

Watchdog System Monitor(WDSysMon)mem_tot_avail and mem_tot_used サブイベント

_wd_sub1_avail
_wd_sub2_avail

サブイベントに使用可能なメモリ。

_wd_sub1_diff
_wd_sub2_diff

イベントをトリガーした差のパーセンテージの値。

変数が 1 である場合に限って設定されます。

_wd_sub1_is_percent
_wd_sub2_is_percent

値がパーセンテージであるかどうかを識別する番号。0 であれば値がパーセンテージではないことを意味し、1 であれば値がパーセンテージであることを意味します。

_wd_sub1_node
_wd_sub2_node

サブイベント RP レポーティング ノードのスロット番号。

_wd_sub1_period
_wd_sub2_period

サブイベントの測定に使用される時間間隔(秒単位、オプションでミリ秒単位)。

_wd_sub1_value
_wd_sub2_value

パーセンテージで測定されたサブイベントの CPU 使用率。

_wd_sub1_used
_wd_sub2_used

サブイベントが使用したメモリ。

Cisco IOS CLI を使用した EEM ポリシーの記述方法

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

「Embedded Event Manager アプレットの登録と定義」

「手動で実行する Embedded Event Manager ポリシーの登録と定義」

「Embedded Event Manager ポリシーの登録解除」

「すべての Embedded Event Manager ポリシー実行の一時停止」

「Embedded Event Manager を使用したスタブ オブジェクトの設定とトラッキング」

「Embedded Event Manager ポリシーの履歴データ表示」

「Embedded Event Manager の登録済みポリシー表示」

「イベント SNMP 通知の設定」

「複数イベント サポートの設定」

「EEM クラスベース スケジューリングの設定」

「EEM アプレット(インタラクティブ CLI)サポートの設定」

「SNMP ライブラリ拡張機能の設定」

「EEM アプレットの可変ロジックの設定」

「イベント SNMP オブジェクトの設定」

「認証、認可、アカウンティング(AAA)認証を無効にする」

「Embedded Event Manager アプレットの説明の設定」

Embedded Event Manager アプレットの登録と定義

アプレットを Embedded Event Manager に登録し、Cisco IOS CLI event コマンドおよび action コマンドを使用して定義するには、次の作業を実行します。EEM アプレットでは、 event コマンドを 1 個だけ使用できます。複数の action コマンドが可能です。 event コマンドと action コマンドが指定されない場合、コンフィギュレーション モードの終了時にアプレットは削除されます。

このタスクで使用される SNMP イベント ディテクタ、および syslog action コマンドは、すべてのイベント ディテクタおよび action コマンドの単なる代表です。他のイベント ディテクタおよび action コマンドの使用例については、「Embedded Event Manager アプレット設定:例」を参照してください。

EEM 環境変数

event manager environment コンフィギュレーション コマンドを使用して EEM ポリシーの EEM 環境変数を定義できます。慣例として、すべてのシスコ EEM 環境変数は、「 _ 」で始まります。将来的な競合を避けるため、「 _ 」で始まる新しい変数を定義しないことをお勧めします。

show event manager environment 特権 EXEC コマンドを使用して、システムの EEM 環境変数セットを表示できます。

たとえば、イベント発生時に E メールを送信する EEM ポリシーを作成できます。 表 2 に、EEM ポリシーで使用できる E メール特有の環境変数の説明を示します。

 

表 2 EEM E メール特有の環境変数

環境変数
説明

_email_server

E メール送信に使用される Simple Mail Transfer Protocol(SMTP; シンプル メール転送プロトコル)メール サーバ。

E メール サーバ名、Mailservername は、次のテンプレート形式のいずれかで使用できます。

username:password@host

username@host

host

_email_to

E メールの送信先アドレス。

engineering@example.com

_email_from

E メールの送信元アドレス。

devtest@example.com

_email_cc

E メールのコピーの送信先アドレス。

manager@example.com

EEM アクション ラベルのアルファベット順

EEM アクション ラベルは、任意の文字列値が可能な一意の ID です。アクションは、ラベルをソート キーとして使用して、英数字のキーの昇順(辞書順)にソートされ、実行されます。ラベルとして数字を使用している場合は、英数字ソートは、10.0 は 1.0 よりも後ですが、2.0 よりも前になることに注意してください。このような場合、01.0、02.0 のような数字を使用する、または頭文字の後に同様の数字を続けることを推奨します。

手順の概要

1. enable

2. show event manager environment [ all | variable-name ]

3. configure terminal

4. event manager environment variable-name string

5. ステップ 4 を、必要なすべての環境変数に繰り返します。

6. event manager applet applet-name

7. event snmp oid oid-value get-type { exact | next } entry-op operator entry-val entry-value [ exit-comb { or | and }] [ exit-op operator ] [ exit-val exit-value ] [ exit-time exit-time-value ] poll-interval poll-int-value

8. action label cli command cli-string [ pattern pattern-string ]

9. action label syslog [ priority priority-level ] msg msg-text facility string

10. action label mail server server-address to to-address from from-address [ cc cc-address ] subject subject body body-text

11. 必要に応じて action コマンドを追加します。

12. end

手順の詳細

コマンドまたはアクション
目的

ステップ 1

enable

 

Router> enable

特権 EXEC モードをイネーブルにします。

プロンプトが表示されたら、パスワードを入力します。

ステップ 2

show event manager environment [ all | variable-name ]

 

Router# show event manager environment all

(任意)EEM 環境変数の名前と値を表示します。

オプションの all キーワードは、すべての EEM 環境変数を表示します。

オプションの variable-name 引数は、指定された環境変数に関する情報を表示します。

ステップ 3

configure terminal

 

Router# configure terminal

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

ステップ 4

event manager environment variable-name string

 

Router(config)# event manager environment _email_to engineering@example.com

指定された EEM 環境変数の値を設定します。

この例では、E メール送信先の E メール アドレスを保持する環境変数は、engineering@example.com に設定されます。

ステップ 5

ステップ 4 を、必要なすべての環境変数に繰り返します。

ステップ 4 を繰り返して、ステップ 6 で登録されるポリシーに必要なすべての環境変数を設定します。

ステップ 6

event manager applet applet-name

 

Router(config)# event manager applet memory-fail

Embedded Event Manager(EEM)にアプレットを登録し、アプレット コンフィギュレーション モードを開始します。

ステップ 7

event snmp oid oid-value get-type { exact | next } entry-op operator entry-val entry-value [ exit-comb { or | and }] [ exit-op operator ] [ exit-val exit-value ] [ exit-time exit-time-value ] poll-interval poll-int-value

 

Router(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 90

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

この例では、空きメモリが 5120000 を下回ったときに EEM イベントがトリガーされます。

終了基準はオプションです。指定されない場合、イベントのモニタリングは、すぐに再び有効になります。

ステップ 8

action label cli command cli-string [ pattern pattern-string ]

 
Router(config-applet)# action 1.0 cli command "enable"
Router(config-applet)# action 2.0 cli command "clear counters Ethernet0/1" pattern "confirm"
Router(config-applet)# action 3.0 cli command "y"

EEM アプレットがトリガーされたときに Cisco IOS CLI コマンドを実行するアクションを指定します。

pattern キーワードはオプションで、コマンド文字列が入力を求める場合にだけ使用されます。 action cli コマンドは、オプションの pattern キーワードで指定された応答プロンプトを受け取ったときに終了します。次の応答プロンプトに一致する正規表現パターンを指定する必要があります。正しくないパターンを指定すると、 action cli コマンドが、maxrun タイマー期限切れによるアプレット実行タイムアウトまで、ずっと待機する原因となります。

実行されるアクションは、 pattern キーワードが、 clear counters Ethernet0/1 コマンドの confirm 引数を指定したときに実行する EEM アプレットの指定です。このケースでは、コマンド文字列は「confirm」という入力を要求します。その入力には、「yes」または「no」が続くと考えられます。

ステップ 9

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

 

Router(config-applet)# action 1.0 syslog priority critical msg "Memory exhausted; current available memory is $_snmp_oid_val bytes"

 

Router(config-applet)# action 1.0 syslog priority errors facility EEM-FAC message “TEST MSG”

EEM アプレットがトリガーされたときに実行されるアクションを指定します。

この例では、実行されるアクションは syslog にメッセージを書き込むことです。

オプションの priority キーワードは syslog メッセージのプライオリティ レベルを指定します。選択した場合は、 priority-level 引数を定義する必要があります。

msg-text 引数は、キャラクタ テキスト、環境変数、またはその両方の組み合わせが可能です。

facility キーワードは、生成されるメッセージの場所を指定します。

string 引数は、キャラクタ テキスト、環境変数、またはその両方の組み合わせが可能です。

ステップ 10

action label mail server server-address to to-address from from-address [ cc cc-address ] subject subject body body-text

 

Router(config-applet)# action 2.0 mail server 192.168.1.10 to engineering@example.com from devtest@example.com subject "Memory failure" body "Memory exhausted; current available memory is $_snmp_oid_val bytes"

EEM アプレットがトリガーされたときにショート メールを送信するアクションを指定します。

server-address 引数は、E メールの転送に使用される E メール サーバの完全修飾ドメイン名を指定します。

to-address 引数は、E メールの送信先の E メール アドレスを指定します。

from-address 引数は、E メール送信元の E メール アドレスを指定します。

subject 引数は、英数字の文字列で、E メールのサブジェクト ラインの内容を指定します。

body-text 引数は、英数字の文字列で、E メールのテキストの内容を指定します。

ステップ 11

必要に応じて action コマンドを追加します。

--

ステップ 12

end

 

Router(config-applet)# end

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

トラブルシューティングのヒント

特権 EXEC モードで debug event manager コマンドを使用して、EEM コマンド操作のトラブルシューティングを行います。debugging コマンドは注意して使用してください。生成される出力量によってルータの動作が遅くなったり、停止したりすることがあります。シスコ エンジニアの管理下に限ってこのコマンドを使用することを推奨します。

手動で実行する Embedded Event Manager ポリシーの登録と定義

EEM ポリシーを手動で実行するには 2 つの方法があります。EEM は、通常、ポリシーそのものに含まれるイベント仕様に基づいてポリシーをスケジューリングし、実行します。 event none コマンドでは、EEM が手動でトリガー可能な EEM ポリシーを識別できます。ポリシーを実行するには、アプレット コンフィギュレーション モードで action policy コマンドを使用するか、または特権 EXEC モードで event manager run コマンドを実行するかのいずれかです。

event manager run コマンドを使用して手動で実行される EEM ポリシーを登録するには、次の作業を実行します。 action policy コマンドを使用して手動でポリシーを実行する方法については、「Embedded Event Manager ポリシーの手動での実行:例」を参照してください。

手順の概要

1. enable

2. configure terminal

3. event manager applet applet-name

4. event none

5. action label syslog [ priority priority-level ] msg msg-text facility string

6. end

7. event manager run applet-name

手順の詳細

コマンドまたはアクション
目的

ステップ 1

enable

 

Router> enable

特権 EXEC モードをイネーブルにします。

プロンプトが表示されたら、パスワードを入力します。

ステップ 2

configure terminal

 

Router# configure terminal

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

ステップ 3

event manager applet applet-name

 

Router(config)# event manager applet manual-policy

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

ステップ 4

event none

 

Router(config-applet)# event none

EEM に登録して手動で起動される EEM ポリシーを指定します。

ステップ 5

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

 

Router(config-applet)# action 1.0 syslog msg "Manual-policy triggered"

 

EEM アプレットがトリガーされたときに実行されるアクションを指定します。

この例では、実行されるアクションは syslog にメッセージを書き込むことです。

オプションの priority キーワードは syslog メッセージのプライオリティ レベルを指定します。選択した場合は、 priority-level 引数を定義する必要があります。

msg-text 引数は、キャラクタ テキスト、環境変数、またはその両方の組み合わせが可能です。

facility キーワードは、生成されるメッセージの場所を指定します。

string 引数は、キャラクタ テキスト、環境変数、またはその両方の組み合わせが可能です。

ステップ 6

end

 

Router(config-applet)# end

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

ステップ 7

event manager run applet-name

 

Router# event manager run manual-policy

登録された EEM ポリシーを手動で実行します。

Embedded Event Manager ポリシーの登録解除

EEM ポリシーを実行コンフィギュレーション ファイルから削除するには、次の作業を実行します。ポリシーの実行はキャンセルされます。

手順の概要

1. enable

2. show event manager policy registered [ description [ policy-name ] | detailed policy-filename [ system | user ] | [ event-type event-name ] [ system | user ] [ time-ordered | name-ordered ]]

3. configure terminal

4. no event manager policy policy-filename

5. exit

6. ステップ 2 を繰り返して、ポリシーが削除されたことを確認します。

手順の詳細

コマンドまたはアクション
目的

ステップ 1

enable

 

Router> enable

特権 EXEC モードをイネーブルにします。

プロンプトが表示されたら、パスワードを入力します。

ステップ 2

show event manager policy registered [ description [ policy-name ] | detailed policy-filename [ system | user ] | [ event-type event-name ] [ system | user ] [ time-ordered | name-ordered ]]

 

Router# show event manager policy registered

(任意)現在登録されている EEM ポリシーを表示します。

オプションの system キーワードおよび user キーワードは登録されているシステム ポリシーおよびユーザ ポリシーを表示します。

キーワードが指定されない場合は、すべてのイベント タイプに対する登録された EEM ポリシーが時間順に表示されます。

ステップ 3

configure terminal

 

Router# configure terminal

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

ステップ 4

no event manager policy policy-filename

 

Router(config)# no event manager policy IPSLAping1

ポリシーを登録解除するために EEM ポリシーを設定から削除します。

ステップ 5

exit

 

Router(config)# exit

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

ステップ 6

ステップ 2 を繰り返して、ポリシーが削除されたことを確認します。

 

Router# show event manager policy registered

--

次に、 show event manager policy registered 特権 EXEC コマンドを使用して、現在登録されている 2 個の EEM アプレットを表示している例を示します。

Router# show event manager policy registered
 
No. Class Type Event Type Trap Time Registered Name
1 applet system snmp Off Fri Aug 12 17:42:52 2005 IPSLAping1
oid {1.3.6.1.4.1.9.9.42.1.2.9.1.6.4} get-type exact entry-op eq entry-val {1}
exit-op eq exit-val {2} poll-interval 90.000
action 1.0 syslog priority critical msg "Server IPecho Failed: OID=$_snmp_oid_val"
action 1.1 snmp-trap strdata "EEM detected server reachability failure to 10.1.88.9"
action 1.2 publish-event sub-system 88000101 type 1 arg1 "10.1.88.9" arg2 "IPSLAEcho"
arg3 "fail"
action 1.3 counter name _IPSLA1F op inc value 1
2 applet system snmp Off Thu Sep 15 05:57:16 2005 memory-fail
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 90
action 1.0 syslog priority critical msg Memory exhausted; current available memory is
$_snmp_oid_val bytes
action 2.0 force-switchover
 

次の例では、 show event manager policy registered 特権 EXEC コマンドを使用して、 no event manager policy コマンドを入力した後でアプレット IPSLAping1 が削除されていることを示しています。

Router# show event manager policy registered
 
No. Class Type Event Type Trap Time Registered Name
1 applet system snmp Off Thu Sep 15 05:57:16 2005 memory-fail
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 90
action 1.0 syslog priority critical msg Memory exhausted; current available memory is
$_snmp_oid_val bytes
action 2.0 force-switchover

すべての Embedded Event Manager ポリシー実行の一時停止

すべての EEM ポリシーの実行をただちに一時停止するには、次の作業を実行します。一時的なパフォーマンスまたはセキュリティ面での理由から、ポリシーの登録解除ではなく一時停止が必要なことがあります。

手順の概要

1. enable

2. show event manager policy registered [ description [ policy-name ] | detailed policy-filename [ system | user ] | [ event-type event-name ] [ system | user ] [ time-ordered | name-ordered ]]

3. configure terminal

4. event manager scheduler suspend

5. exit

手順の詳細

コマンドまたはアクション
目的

ステップ 1

enable

 

Router> enable

特権 EXEC モードをイネーブルにします。

プロンプトが表示されたら、パスワードを入力します。

ステップ 2

show event manager policy registered [ description [ policy-name ] | detailed policy-filename [ system | user ] | [ event-type event-name ] [ system | user ] [ time-ordered | name-ordered ]]

 

Router# show event manager policy registered

(任意)現在登録されている EEM ポリシーを表示します。

オプションの system キーワードおよび user キーワードは登録されているシステム ポリシーおよびユーザ ポリシーを表示します。

キーワードが指定されない場合は、すべてのイベント タイプに対する登録された EEM ポリシーが時間順に表示されます。

ステップ 3

configure terminal

 

Router# configure terminal

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

ステップ 4

event manager scheduler suspend

 

Router(config)# event manager scheduler suspend

すべての EEM ポリシーの実行がすぐに一時停止されます。

ステップ 5

exit

 

Router(config)# exit

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

Embedded Event Manager を使用したスタブ オブジェクトの設定とトラッキング

スタブ オブジェクトを作成し、スタブ オブジェクトの状態を設定し、トラッキング対象オブジェクトが変化したときに実行される EEM アプレットを設定するには、次の作業を実行します。EEM アプレット内でオブジェクトの状態の設定および読み込みの両方を行うアクションが指定されます。次のタスクでは、他の Enhanced Object Tracking(EOT;拡張オブジェクト トラッキング)クライアントから操作される EOT オブジェクトを EEM が定義できます。EEM ポリシーは、他の EOT クライアント用または EEM が定義したオブジェクト用に定義されたオブジェクトを含む任意の EOT オブジェクトに対してトリガーできます。

拡張オブジェクト トラッキング

オブジェクト トラッキングは、当初、ユーザがインターフェイスのラインプロトコル ステートをトラッキングできるだけの単純なトラッキングメカニズムとして、Hot Standby Router Protocol(HSRP; ホットスタンバイ ルータ プロトコル)に導入されました。拡張オブジェクト トラッキングは、トラッキング対象オブジェクトと、トラッキング対象オブジェクトが変更されたときにクライアントが実施するアクションとを全面的に分離します。したがって、EEM、Virtual Router Redundancy Protocol(VRRP; 仮想ルータ冗長プロトコル)、または Gateway Load Balancing Protocol(GLBP)などの複数のクライアントが、トラッキング プロセスにトラッキング対象を登録でき、同一オブジェクトをトラッキング可能であり、さらに、オブジェクト変更時に異なるアクションを実行できます。

各トラッキング対象オブジェクトは、トラッキング コマンドライン インターフェイス(CLI)で指定された一意の番号で識別されます。クライアント プロセスはこの番号を使用して特定のオブジェクトをトラッキングします。トラッキング プロセスは定期的に、トラッキング対象オブジェクトをポーリングし、値の変更を確認します。トラッキング対象オブジェクトの変更は、すぐに、または指定された遅延後に、対象のクライアント プロセスに通知されます。オブジェクトの値は、アップまたはダウンとして報告されます。

EOT イベント ディテクタは、トラッキング対象のオブジェクトが変更されたときイベントをパブリッシュします。

手順の概要

1. enable

2. configure terminal

3. track object-number stub-object

4. default-state { up | down }

5. exit

6. event manager applet applet-name

7. event [ label ] track object-number [ state { up | down | any }]

8. action label track set object-number state { up | down }

9. action label track read object-number

10. end

11. show track [ object-number [ brief ]]

手順の詳細

コマンドまたはアクション
目的

ステップ 1

enable

 

Router> enable

特権 EXEC モードをイネーブルにします。

プロンプトが表示されたら、パスワードを入力します。

ステップ 2

configure terminal

 

Router# configure terminal

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

ステップ 3

track object-number stub-object

 

Router(config)# track 2 stub-object

EEM を使用してトラッキングされるスタブ オブジェクトを作成して、トラッキング コンフィギュレーション モードを開始します。

object-number 引数を使用して、トラッキング対象オブジェクトに番号を割り当てます。

ステップ 4

default-state { up | down }

 

Router(config-track)# default-state up

スタブ オブジェクトのデフォルト状態を設定します。

この例では、オブジェクトのデフォルト状態はアップに設定されています。

ステップ 5

exit

 

Router(config-track)# exit

トラッキング コンフィギュレーション モードを終了し、グローバル コンフィギュレーション モードに戻ります。

ステップ 6

event manager applet applet-name

 

Router(config)# event manager applet track-two

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

ステップ 7

event [ label ] track object-number [ state { up | down | any }]

 

Router(config-applet)# event track 2 state down

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

この例では、Cisco IOS オブジェクト トラッキング サブシステムが、トラッキング対象のオブジェクト番号 2 の、アップ状態からダウン状態への遷移を報告するときに、EEM イベントがトリガーされます。

ステップ 8

action label track set object-number state { up | down }

 

Router(config-applet)# action 1.0 track set 2 state up

EEM アプレットがトリガーされたときに実行されるアクションを指定します。

この例では、実行されるアクションはトラッキング対象のオブジェクト番号 2 の状態をアップに設定します。

ステップ 9

action label track read object-number

 

Router(config-applet)# action 2.0 track read 2

EEM アプレットがトリガーされたときに実行されるアクションを指定します。

この例では、実行されるアクションはトラッキング対象のオブジェクト番号 2 の状態を読み取ります。

_track_state 読み取り専用変数は、このコマンドが実行されたときに設定されます。

ステップ 10

end

 

Router(config-applet)# end

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

ステップ 11

show track [ object-number [ brief ]]

 

Router# show track 2

(任意)トラッキングプロセスによるトラッキング対象のオブジェクトの情報を表示します。

オプションの object-number 引数は、指定されたオブジェクトのトラッキング情報を表示します。

オプションの brief キーワードは、1 行の情報を表示します。

次に、 show track 特権 EXEC コマンドを使用して、トラッキング対象のオブジェクト番号 2 の情報を表示する例を示します。

Router# show track 2
Track 2
Stub-object
State is Up
1 change, last change 00:00:04, by Undefined

Embedded Event Manager ポリシーの履歴データ表示

履歴テーブルのサイズを変更し、EEM 履歴データを表示するには、次の任意の作業を実行します。

手順の概要

1. enable

2. configure terminal

3. event manager history size { events | traps } [ size ]

4. exit

5. show event manager history events [ detailed ] [ maximum number ]

6. show event manager history traps { server | policy }

手順の詳細


ステップ 1 enable

特権 EXEC モードをイネーブルにします。プロンプトが表示されたら、パスワードを入力します。

Router> enable
 

ステップ 2 configure terminal

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

Router# configure terminal
 

ステップ 3 event manager history size { events | traps } [ size ]

このコマンドを使用して、EEM イベント履歴テーブルのサイズ、または、EEM SNMP トラップ履歴テーブルのサイズを変更します。次に、EEM イベント履歴テーブルのサイズを 30 エントリに変更する例を示します。

Router(config)# event manager history size events 30
 

ステップ 4 exit

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

Router(config)# exit
 

ステップ 5 show event manager history events [ detailed ] [ maximum number ]

このコマンドを使用して、各 EEM イベントの詳細情報を表示します。次に例を示します。

Router# show event manager history events
 
No. Time of Event Event Type Name
1 Fri Aug13 21:42:57 2004 snmp applet: SAAping1
2 Fri Aug13 22:20:29 2004 snmp applet: SAAping1
3 Wed Aug18 21:54:48 2004 snmp applet: SAAping1
4 Wed Aug18 22:06:38 2004 snmp applet: SAAping1
5 Wed Aug18 22:30:58 2004 snmp applet: SAAping1
6 Wed Aug18 22:34:58 2004 snmp applet: SAAping1
7 Wed Aug18 22:51:18 2004 snmp applet: SAAping1
8 Wed Aug18 22:51:18 2004 application applet: CustApp1
 

ステップ 6 show event manager history traps { server | policy }

このコマンドを使用して、EEM サーバまたは EEM ポリシーのいずれかから送信された EEM SNMP トラップを表示します。次に、EEM ポリシー内からトリガーされた EEM SNMP トラップが表示される例を示します。

Router# show event manager history traps policy
 
No. Time Trap Type Name
1 Wed Aug18 22:30:58 2004 policy EEM Policy Director
2 Wed Aug18 22:34:58 2004 policy EEM Policy Director
3 Wed Aug18 22:51:18 2004 policy EEM Policy Director
 


 

Embedded Event Manager の登録済みポリシー表示

登録済みの EEM ポリシーを表示するには、次の任意の作業を実行します。

手順の概要

1. enable

2. show event manager policy registered [ event-type event-name ] [ time-ordered | name-ordered ]

手順の詳細


ステップ 1 enable

特権 EXEC モードをイネーブルにします。プロンプトが表示されたら、パスワードを入力します。

Router> enable
 

ステップ 2 show event manager policy registered [ event-type event-name ] [ time-ordered | name-ordered ]

このコマンドを time-ordered キーワードとともに使用して、現在登録されているポリシーの情報を時間でソートして表示します。次に例を示します。

Router# show event manager policy registered time-ordered
 
No. Type Event Type Time Registered Name
1 applet snmp Thu May30 05:57:16 2004 memory-fail
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 90
action 1.0 syslog priority critical msg "Memory exhausted; current available memory
is $_snmp_oid_val bytes"
action 2.0 force-switchover
2 applet syslog Wed Jul16 00:05:17 2004 intf-down
pattern {.*UPDOWN.*Ethernet1/0.*}
action 1.0 cns-event msg "Interface state change: $_syslog_msg"
 

このコマンドを name-ordered キーワードとともに使用して、現在登録されているポリシーの情報を名前でソートして表示します。次に例を示します。

Router# show event manager policy registered name-ordered
 
No. Type Event Type Time Registered Name
1 applet syslog Wed Jul16 00:05:17 2004 intf-down
pattern {.*UPDOWN.*Ethernet1/0.*}
action 1.0 cns-event msg "Interface state change: $_syslog_msg"
2 applet snmp Thu May30 05:57:16 2004 memory-fail
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 90
action 1.0 syslog priority critical msg "Memory exhausted; current available memory
is $_snmp_oid_val bytes"
action 2.0 force-switchover
 

このコマンドを event-type キーワードとともに使用して、 event-name 引数で指定されたイベント タイプの現在登録されているポリシーの情報を表示します。次に例を示します。

Router# show event manager policy registered event-type syslog
 
No. Type Event Type Time Registered Name
1 applet syslog Wed Jul16 00:05:17 2004 intf-down
pattern {.*UPDOWN.*Ethernet1/0.*}
action 1.0 cns-event msg "Interface state change: $_syslog_msg"


 

イベント SNMP 通知の設定

SNMP 通知を設定するには、次の作業を実行します。

前提条件

Cisco IOS Release 12.4(20)T、12.2(33)SXI、または以降のリリースを実行する必要があります。

SNMP イベント マネージャが、 snmp-server manager コマンドを使用して設定されている必要があります。

手順の概要

1. enable

2. configure terminal

3. event manager applet applet-name

4. event [ tag event-tag ] snmp-notification oid oid-string oid-val comparison-value op operator [ maxrun maxruntime-number ] [ src-ip-address ip-address ] [ dest-ip-address ip-address ] [ default seconds ] [ direction { incoming | outgoing }] [ msg-op { drop | send }]

5. exit

手順の詳細

コマンドまたはアクション
目的

ステップ 1

enable

 

Router> enable

特権 EXEC モードをイネーブルにします。

プロンプトが表示されたら、パスワードを入力します。

ステップ 2

configure terminal

 

Router# configure terminal

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

ステップ 3

event manager applet applet-name

 

Router(config)# event manager applet snmp

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

ステップ 4

event [ tag event-tag ] snmp-notification oid oid-string oid-val comparison-value op operator [ maxrun maxruntime-number ] [ src-ip-address ip-address ] [ dest-ip-address ip-address ] [ default seconds ] [ direction { incoming | outgoing }] [ msg-op { drop | send }]

 

Router(config-applet)# event snmp-notification dest-ip-address 192.168.1.1 oid 1 op eq oid-val 10

簡易ネットワーク管理プロトコル(SNMP)通知のサンプリングによって実行される Embedded Event Manager(EEM)アプレットのイベント基準を指定します。

ステップ 5

end

 

Router(config-applet)# end

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

複数イベント サポートの設定

複数イベント サポート機能は、Cisco IOS Release 12.4(20)T 以降のリリースに導入され、複数イベントを EEM サーバに登録する機能が追加されました。複数イベント サポートには、1 個以上のイベントの発生、1 個以上のトラッキング対象オブジェクトの状態、および、発生するイベントの時間間隔が含まれます。イベント パラメータは、CLI コマンドで指定されます。複数イベントを扱うためのデータ構造には、複数のイベント ID と相関関係ロジックが含まれます。このデータは、複数イベントを EEM サーバに登録するために使用されます。

イベント設定パラメータの設定

trigger コマンドは、トリガー アプレット コンフィギュレーション モードを開始し、EEM アプレットの複数イベント設定文を指定します。トリガー文は、各イベント文に指定される tag 引数を使用して複数イベント文を関連付けます。イベントは指定されたパラメータに基づいて発生します。

手順の概要

1. enable

2. configure terminal

3. event manager applet applet-name

4. event [ tag event-tag ] cli pattern regular-expression sync { yes | no skip { yes | no }} [ occurs num-occurrences ] [ period period-value ] [ maxrun maxruntime-number ]

5. trigger [ occurs occurs-value ] [ period period-value ] [ period-start period-start-value ] [ delay delay-value ]

6. correlate { event event-tag | track object-number } [ boolean-operator { event event-tag | track tracked-object } ...]

7. attribute tag event-tag [ occurs occurs-value ]

8. action label cli command cli-string

手順の詳細

 

コマンドまたはアクション
目的

ステップ 1

enable

 

Router> enable

特権 EXEC モードをイネーブルにします。

プロンプトが表示されたら、パスワードを入力します。

ステップ 2

configure terminal

 

Router# configure terminal

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

ステップ 3

event manager applet applet-name

 

Router(config)# event manager applet EventInterface

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

ステップ 4

event [ tag event-tag ] cli pattern regular-expression sync { yes | no skip { yes | no }} [ occurs num-occurrences ] [ period period-value ] [ maxrun maxruntime-number ]

 

Router(config-applet)# event tag 1.0 cli pattern “show bgp all” sync yes occurs 32 period 60 maxrun 60

Cisco IOS コマンドライン インターフェイス(CLI)コマンドの一致によって実行される EEM アプレットのイベント基準を指定します。

ステップ 5

trigger [ occurs occurs-value ] [ period period-value ] [ period-start period-start-value ] [ delay delay-value ]

 

Router(config-applet)# trigger occurs 1 period-start “0 8 * * 1-5” period 60

EEM アプレットの複雑なイベント設定パラメータを指定します。

ステップ 6

correlate { event event-tag | track object-number } [ boolean-operator { event event-tag | track tracked-object } ...]

 

Router(config-applet)# correlate event 1.0 or event 2.0 and track 10

EEM アプレットのトリガー モードの複雑なイベント相互関係を指定します。

ステップ 7

attribute tag event-tag [ occurs occurs-value ]

 

Router(config-applet)# attribute tag 1.0 occurs 1

EEM アプレットの複雑なイベントをビルドする最大 8 個のアトリビュート文を指定します。

ステップ 8

action label cli command cli-string

 

Router(config-applet)# action 1.0 cli command “show mwmory”

EEM アプレットがトリガーされたときに CLI コマンドを実行するアクションを指定します。

次に、60 秒の間に show bgp all CLI コマンド、および "COUNT" を含む任意の syslog メッセージが発生したときに実行されるアプレットの例を示します。

event manager applet delay_50
event tag 1.0 cli pattern "show bgp all" sync yes occurs 32 period 60 maxrun 60
event tag 2.0 syslog pattern "COUNT"
trigger occurs 1 delay 50
correlate event 1.0 or event 2.0
attribute tag 1.0 occurs 1
attribute tag 2.0 occurs 1
action 1.0 cli command "show memory"
action 2.0 cli command "enable"
action 3.0 cli command "config terminal"
action 4.0 cli command " ip route 192.0.2.0 255.255.255.224 192.0.2.12"
action 91.0 cli command "exit"
action 99.0 cli command "show ip route | incl 192.0.2.5"

EEM クラスベース スケジューリングの設定

Embedded Event Manager(EEM)ポリシーをスケジュールし、ポリシー スケジュール オプションを設定するには、次の作業を実行します。このタスクでは、2 個の EEM 実行スレッドが作成され、デフォルト クラスに割り当てられたアプレットが実行されます。

EEM ポリシーは、登録時に class キーワードを使用して、クラスに割り当てられます。クラスなしで登録された EEM ポリシーは、デフォルト クラスに割り当てられます。デフォルト クラスを保持するスレッドは、スレッドが作業に利用可能であるとき、デフォルト クラスをサービスします。特定のクラス文字に割り当てられたスレッドは、スレッドが作業に利用可能であるとき、クラス文字が一致する任意のポリシーをサービスします。

EEM 実行スレッドが、指定されたクラスのポリシー実行に利用可能でない場合で、クラスのスケジューラ ルールが設定されている場合は、ポリシーは該当クラスのスレッドが実行可能になるまで待ちます。同じ入力イベントからトリガーされた同期ポリシーは、同一の実行スレッドにスケジュールされなければなりません。

前提条件

この機能を使用するには、Cisco IOS Release 12.4(22)T 以降のリリースを実行している必要があります

手順の概要

1. enable

2. configure terminal

3. event manager scheduler { applet | axp | call-home } thread class class-options number thread-number

4. exit

手順の詳細

コマンドまたはアクション
目的

ステップ 1

enable

 

Router> enable

特権 EXEC モードをイネーブルにします。

プロンプトが表示されたら、パスワードを入力します。

ステップ 2

configure terminal

 

Router# configure terminal

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

ステップ 3

event manager scheduler { applet | axp | call-home } thread class class-options number thread-number

 

Router(config)# event manager scheduler applet thread class default number 2

EEM ポリシーをスケジュールし、ポリシー スケジューリング オプションを設定します。

この例では、2 個の EEM 実行スレッドが作成され、デフォルト クラスに割り当てられたアプレットが実行されます。

ステップ 4

exit

 

Router(config)# exit

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

スケジュールされた EEM ポリシー イベントまたはイベント キューをホールドする

EEM スケジューラで、スケジュールされた EEM ポリシー イベントまたはイベント キューをホールドするには、次の作業を実行します。このタスクでは、すべての保留 EEM ポリシーが表示されます。ジョブ ID 2 を使用して特定されるポリシーは、EEM スケジューラでホールドされています。最初のステップは、ジョブ ID 2 のポリシーは、状態が Pending から Held に変更されていることを示しています。

前提条件

この機能を使用するには、Cisco IOS Release 12.4(22)T 以降のリリースを実行している必要があります

手順の概要

1. enable

2. show event manager policy pending [ queue-type { applet | call-home | axp | script } class class-options | detailed ]

3. event manager scheduler hold { policy job-id | queue-type { applet | call-home | axp | script } class class-options | all } [ processor { rp_primary | rp_standby }]

4. show event manager policy pending [ queue-type { applet | call-home | axp | script } class class-options | detailed ]

手順の詳細

コマンドまたはアクション
目的

ステップ 1

enable

 

Router> enable

特権 EXEC モードをイネーブルにします。

プロンプトが表示されたら、パスワードを入力します。

ステップ 2

show event manager policy pending [ queue-type { applet | call-home | axp | script } class class-options | detailed ]

 

Router# show event manager policy pending

保留 EEM ポリシーを表示します。

ステップ 3

event manager scheduler hold { all | policy job-id | queue-type { applet | call-home | axp | script } class class-options } [ processor { rp_primary | rp_standby }]

 

Router# event manager scheduler hold policy 2

EEM スケジューラで、スケジュールされた EEM ポリシー イベントまたはイベント キューをホールドします。

この例では、ジョブ ID 2 のポリシーがホールドされます。

ステップ 4

show event manager policy pending [ queue-type { applet | call-home | axp | script } class class-options | detailed ]

 

Router# show event manager policy pending

他の保留ポリシーとともに、ステップ 3 でホールドされた EEM ポリシーの状態が Held と表示されます。

次に、すべての保留 EEM ポリシーの表示方法とジョブ ID 2 の EEM ポリシーをホールドする例を示します。

Router# show event manager policy pending
 
no. job id status time of event event type name
1 1 pend Thu Sep 7 02:54:04 2006 syslog applet: one
2 2 pend Thu Sep 7 02:54:04 2006 syslog applet: two
3 3 pend Thu Sep 7 02:54:04 2006 syslog applet: three
 
Router# event manager scheduler hold policy 2
 
Router# show event manager policy pending
 
no. job id status time of event event type name
1 1 pend Thu Sep 7 02:54:04 2006 syslog applet: one
2 2 held Thu Sep 7 02:54:04 2006 syslog applet: two
3 3 pend Thu Sep 7 02:54:04 2006 syslog applet: three

EEM ポリシー イベントまたはイベント キューの実行の再開

EEM ポリシー イベントまたはイベント キューの実行を再開するには、次の作業を実行します。このタスクでは、「スケジュールされた EEM ポリシー イベントまたはイベント キューをホールドする」でホールドされたポリシーの実行を再開できます。

前提条件

この機能を使用するには、Cisco IOS Release 12.4(22)T 以降のリリースを実行している必要があります。

手順の概要

1. enable

2. show event manager policy pending

3. event manager scheduler release { all | policy policy-id | queue-type { applet | call-home | axp | script }} class class-options [ processor { rp_primary | rp_standby }]

4. show event manager policy pending

手順の詳細

コマンドまたはアクション
目的

ステップ 1

enable

 

Router> enable

特権 EXEC モードをイネーブルにします。

プロンプトが表示されたら、パスワードを入力します。

ステップ 2

show event manager policy pending

 

Router# show event manager policy pending

保留およびホールドされた EEM ポリシーを表示します。

』を参照してください。

ステップ 3

event manager scheduler release { all | policy policy-id | queue-type { applet | call-home | axp | script }} class class-options [ processor { rp_primary | rp_standby }]

 

Router# event manager scheduler release policy 2

指定された EEM ポリシーの実行を再開します。

例では、ジョブ ID 2 のポリシーの実行を再開する方法を示しています。

ステップ 4

show event manager policy pending

 

Router# show event manager policy pending

他の保留ポリシーとともに、ステップ 3 で再開された EEM ポリシーの状態が pending と表示されます。

』を参照してください。

次に、すべての保留 EEM ポリシーの表示方法、および実行を再開するポリシーを指定する方法、ポリシーが保留状態に戻っていることを確認する例を示します。

Router# show event manager policy pending
 
no. job id status time of event event type name
1 1 pend Thu Sep 7 02:54:04 2006 syslog applet: one
2 2 held Thu Sep 7 02:54:04 2006 syslog applet: two
3 3 pend Thu Sep 7 02:54:04 2006 syslog applet: three
 
Rotuer# event manager scheduler release policy 2
 
Rotuer# show event manager policy pending
 
no. job id status time of event event type name
1 1 pend Thu Sep 7 02:54:04 2006 syslog applet: one
2 2 pend Thu Sep 7 02:54:04 2006 syslog applet: two
3 3 pend Thu Sep 7 02:54:04 2006 syslog applet: three

保留 EEM ポリシー イベントまたはイベント キューのクリア

実行中または実行を保留中の EEM ポリシー イベントをクリアするには、次の作業を実行します。このタスクでは、ジョブ ID 2 のポリシーが保留キューからクリアされます。ポリシーがクリアされる前後に保留中のポリシーを表示するには、 show event manager policy pending コマンドが使用されます。

前提条件

この機能を使用するには、Cisco IOS Release 12.4(22)T 以降のリリースを実行している必要があります

手順の概要

1. enable

2. show event manager policy pending

3. event manager scheduler clear { all | policy policy-id | queue-type { applet | call-home | axp | script }} class class-options [ processor { rp_primary | rp_standby }

4. show event manager policy pending

手順の詳細

コマンドまたはアクション
目的

ステップ 1

enable

 

Router> enable

特権 EXEC モードをイネーブルにします。

プロンプトが表示されたら、パスワードを入力します。

ステップ 2

show event manager policy pending

 

Router# show event manager policy pending

保留 EEM ポリシーを表示します。

』を参照してください。

ステップ 3

event manager scheduler clear { all | policy job-id | queue-type { applet | call-home | axp | script } class class-options } [ processor { rp_primary | rp_standby }]

 

Router# event manager scheduler clear policy 2

実行中または実行を保留中の EEM ポリシーをクリアします。

この例では、ジョブ ID 2 のポリシーが保留キューからクリアされます。

ステップ 4

show event manager policy pending

 

Router# show event manager policy pending

ステップ 3 でクリアされたポリシーを除く、すべての保留 EEM ポリシーを表示します。

』を参照してください。

次に、実行を保留されたジョブ ID 2 のポリシーをクリアする例を示します。ポリシーがクリアされる前後に保留中のポリシーを表示するには、 show コマンドが使用されます。

Router# show event manager policy pending
 
no. job id status time of event event type name
1 1 pend Thu Sep 7 02:54:04 2006 syslog applet: one
2 2 pend Thu Sep 7 02:54:04 2006 syslog applet: two
3 3 pend Thu Sep 7 02:54:04 2006 syslog applet: three
 
Router# event manager scheduler clear policy 2
 
Router# show event manager policy pending
 
no. job id status time of event event type name
1 1 pend Thu Sep 7 02:54:04 2006 syslog applet: one
3 3 pend Thu Sep 7 02:54:04 2006 syslog applet: three

EEM ポリシー イベントまたはイベント キューのスケジューリング パラメータの変更

EEM ポリシー イベントのスケジューリング パラメータを変更するには、次の作業を実行します。 show event manager policy pending コマンドは、B またはデフォルト クラスに割り当てられたポリシーを表示します。次に、現時点での保留ポリシーはすべてクラス A に変更されます。設定変更後、 show event manager policy pending コマンドは、すべてのポリシーがクラス A に割り当てられていることを示しています。

前提条件

この機能を使用するには、Cisco IOS Release 12.4(22)T 以降のリリースを実行している必要があります

手順の概要

1. enable

2. show event manager policy pending

3. event manager scheduler modify { all | policy job-id | queue-type { applet | call-home | axp | script } | class class-options } [ queue-priority { high | last | low | normal }] [ processor { rp_primary | rp_standby }]

4. show event manager policy pending

手順の詳細

コマンドまたはアクション
目的

ステップ 1

enable

 

Router> enable

特権 EXEC モードをイネーブルにします。

プロンプトが表示されたら、パスワードを入力します。

ステップ 2

show event manager policy pending

 

Router# show event manager policy pending

保留 EEM ポリシーを表示します。

』を参照してください。

ステップ 3

event manager scheduler modify { all | policy job-id | queue-type { applet | call-home | axp | script } | class class-options } [ queue-priority { high | last | low | normal }] [ processor { rp_primary | rp_standby }]

 

Router# event manager scheduler modify all class A

EEM ポリシーのスケジューリング パラメータを変更します。

この例では、現時点での保留 EEM ポリシーはすべてクラス A に割り当てられています。

ステップ 4

show event manager policy pending

 

Router# show event manager policy pending

他の保留ポリシーとともに、ステップ 3 で変更された EEM ポリシーが表示されます。

』を参照してください。

次に、EEM ポリシーのスケジューリング パラメータを変更する例を示します。この例では、 show event manager policy pending コマンドは、B またはデフォルト クラスに割り当てられたポリシーを表示します。次に、現時点での保留ポリシーはすべてクラス A に変更されます。設定変更後、 show event manager policy pending コマンドで、すべてのポリシーがクラス A に割り当てられていることを確認します。

Router# show event manager policy pending
 
no. class status time of event event type name
1 default pend Thu Sep 7 02:54:04 2006 syslog applet: one
2 default pend Thu Sep 7 02:54:04 2006 syslog applet: two
3 B pend Thu Sep 7 02:54:04 2006 syslog applet: three
 
Router# event manager scheduler modify all class A
 
Router# show event manager policy pending
 
no. class status time of event event type name
1 A pend Thu Sep 7 02:54:04 2006 syslog applet: one
2 A pend Thu Sep 7 02:54:04 2006 syslog applet: two
3 A pend Thu Sep 7 02:54:04 2006 syslog applet: three

クラスベースでスケジュールされた EEM ポリシーのアクティビティの確認

クラスベースでスケジュールされた、EEM ポリシーのアクティビティを確認するには、 show event manager scheduler コマンドを使用します。

前提条件

この機能を使用するには、Cisco IOS Release 12.4(22)T 以降のリリースを実行している必要があります

手順の概要

1. show event manager scheduler thread [ queue-type { applet | call-home | axp | script } class class-options | detailed ]

手順の詳細


ステップ 1 show event manager scheduler thread [ queue-type { applet | call-home | axp | script } class class-options | detailed ]

このコマンドは、スケジューラの視点からのすべての EEM 実行スレッドと実行中ポリシーの詳細を表示します。このコマンドには、オプション キーワード detailed および queue-type があります。次に、このコマンドの出力例を示します。

Router# show event manager scheduler thread
 
1 Script threads service class default
total: 1 running: 1 idle: 0
2 Script threads service class range A-D
total: 3 running: 0 idle: 3
3 Applet threads service class default
total: 32 running: 0 idle: 32
4 Applet threads service class W X
total: 5 running: 0 idle: 5
 

スケジューラ スレッドを使用している実行中ポリシーの詳細を表示するには、 detailed キーワードを使用します。次に、このキーワードの出力例を示します。

Router# show event manager scheduler thread detailed
 
1 Script threads service class default
total: 5 running: 5 idle: 0
1 job id: 12341, pid: 101, name: loop.tcl
2 job id: 12352, pid: 52, name: loop.tcl
3 job id: 12363, pid: 55, name: loop.tcl
4 job id: 12395, pid: 53, name: loop.tcl
5 job id: 12588, pid: 102, name: loop.tcl
 
2 Applet threads service class default
total: 32 running: 5 idle: 27
1 job id: 15585, pid: 104, name: WDOG_SYSLG_CNTR_TRACK_INTF_APPL
2 job id: 15586, pid: 105, name: WDOG_SYSLG_CNTR_TRACK_INTF_APPL
3 job id: 15587, pid: 106, name: WDOG_SYSLG_CNTR_TRACK_INTF_APPL
4 job id: 15589, pid: 107, name: WDOG_SYSLG_CNTR_TRACK_INTF_APPL
5 job id: 15590, pid: 80, name: WDOG_SYSLG_CNTR_TRACK_INTF_APPL
 

キュータイプのスケジューラ スレッドを表示するには、 queue-type キーワードを使用します。次に、このキーワードの出力例を示します。

Router# show event manager sched thread queue-type applet
 
1 Applet threads service class default
total: 32 running: 7 idle: 25
 
Router# show event manager sched thread queue-type applet detailed
 
1 Applet threads service class default
total: 32 running: 5 idle: 27
1 job id: 15700, pid: 103, name: WDOG_SYSLG_CNTR_TRACK_INTF_APPL
2 job id: 15701, pid: 104, name: WDOG_SYSLG_CNTR_TRACK_INTF_APPL
3 job id: 15703, pid: 106, name: WDOG_SYSLG_CNTR_TRACK_INTF_APPL
4 job id: 15704, pid: 107, name: WDOG_SYSLG_CNTR_TRACK_INTF_APPL
5 job id: 15706, pid: 55, name: WDOG_SYSLG_CNTR_TRACK_INTF_APPL
 

クラスベースのアクティブ EEM ポリシーの確認

アクティブな、または実行中の EEM ポリシーを確認するには、 show event manager policy active コマンドを使用します。

前提条件

この機能を使用するには、Cisco IOS Release 12.4(22)T 以降のリリースを実行している必要があります

手順の概要

1. show event manager policy active [ queue-type { applet | call-home | axp | script } class class-options | detailed ]

手順の詳細


ステップ 1 show event manager policy active [ queue-type { applet | call-home | axp | script } class class-options | detailed ]

このコマンドは、実行中の EEM ポリシーだけを表示します。このコマンドには、オプション キーワード class detailed および queue-type があります。次に、このコマンドの出力例を示します。

Router# show event manager policy active
 
no. job id p s status time of event event type name
1 12598 N A running Mon Oct29 20:49:37 2007 timer watchdog loop.tcl
2 12609 N A running Mon Oct29 20:49:42 2007 timer watchdog loop.tcl
3 12620 N A running Mon Oct29 20:49:46 2007 timer watchdog loop.tcl
4 12650 N A running Mon Oct29 20:49:59 2007 timer watchdog loop.tcl
5 12842 N A running Mon Oct29 20:51:13 2007 timer watchdog loop.tcl
 
default class - 6 applet events
no. job id p s status time of event event type name
1 15852 N A running Mon Oct29 21:11:09 2007 counter WDOG_SYSLG_CNTR_TRACK_INTF_APPL
2 15853 N A running Mon Oct29 21:11:09 2007 counter WDOG_SYSLG_CNTR_TRACK_INTF_APPL
3 15854 N A running Mon Oct29 21:11:10 2007 counter WDOG_SYSLG_CNTR_TRACK_INTF_APPL
4 15855 N A running Mon Oct29 21:11:10 2007 timer watchdog WDOG_SYSLG_CNTR_TRACK_INTF_APPL
5 15856 N A running Mon Oct29 21:11:11 2007 counter WDOG_SYSLG_CNTR_TRACK_INTF_APPL
6 15858 N A running Mon Oct29 21:11:11 2007 counter WDOG_SYSLG_CNTR_TRACK_INTF_APPL

保留 EEM ポリシーの確認

実行が保留中の EEM ポリシーを確認するには、 show event manager policy pending コマンドを使用します。Cisco IOS Release 12.4(22)T では、このコマンドに EEM クラスベースのスケジューリング オプションを指定するためのオプションのキーワードが追加されました。

前提条件

この機能を使用するには、Cisco IOS Release 12.4(22)T 以降のリリースを実行している必要があります

手順の概要

1. show event manager policy pending [ queue-type { applet | call-home | axp | script } class class-options | detailed ]

手順の詳細


ステップ 1 show event manager policy pending [ queue-type { applet | call-home | axp | script } class class-options | detailed ]

このコマンドは、保留ポリシーだけを表示します。このコマンドには、オプション キーワード class detailed および queue-type があります。次に、このコマンドの出力例を示します。

Router# show event manager policy pending
 
no. job id p s status time of event event type name
1 12851 N A pend Mon Oct29 20:51:18 2007 timer watchdog loop.tcl
2 12868 N A pend Mon Oct29 20:51:24 2007 timer watchdog loop.tcl
3 12873 N A pend Mon Oct29 20:51:27 2007 timer watchdog loop.tcl
4 12907 N A pend Mon Oct29 20:51:41 2007 timer watchdog loop.tcl
5 13100 N A pend Mon Oct29 20:52:55 2007 timer watchdog loop.tcl


 

EEM アプレット(インタラクティブ CLI)サポートの設定

Cisco IOS Release 12.4(22)T で、同期アプレットがローカル コンソール(TTY)とのインタラクションをサポートするように拡張されました。ユーザがコンソールで直接入力し、入力を表示できるように、2 個の新しいコマンド、 action gets action puts が追加されました。同期アプレットの出力は、System Logger をバイパスします。ローカル コンソールは、アプレットによって開かれ、対応する同期イベント ディテクタ pty によってサービスされます。同期出力は、開かれたコンソールに向けられます。

EEM アプレット インタラクティブ CLI サポートの設定の詳細については、「同期 EEM アプレットのアクティブ コンソールからの入力の読み取りと書き込み」を参照してください。

同期 EEM アプレットのアクティブ コンソールからの入力の読み取りと書き込み

Cisco IOS Release 12.4(22)T で、同期アプレットがローカル コンソール(TTY)とのインタラクションをサポートするように拡張されました。

EEM アプレット インタラクティブ CLI サポートを実装するには、次の作業を実行します。

「アクティブ コンソールからの読み取り」

「アクティブ コンソールへの入力の書き込み」

アクティブ コンソールからの読み取り

同期ポリシーがトリガーされたとき、関連するコンソールがパブリッシュ情報仕様に格納されます。ポリシー ディテクタは、この情報を event_reqinfo コール内で問い合わせ、 action gets コマンドで使用するために与えられたコンソール情報を格納します。

action gets コマンドは、アクティブ コンソールからの入力の 1 行を読み、入力を変数に格納します。後続の改行文字は戻されません。

前提条件

この機能を使用するには、Cisco IOS Release 12.4(22)T 以降のリリースを実行している必要があります

手順の概要

1. enable

2. configure terminal

3. event manager applet applet-name

4. event none

5. action label gets variable

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

7. exit

手順の詳細

コマンドまたはアクション
目的

ステップ 1

enable

 

Router> enable

特権 EXEC モードをイネーブルにします。

プロンプトが表示されたら、パスワードを入力します。

ステップ 2

configure terminal

 

Router# configure terminal

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

ステップ 3

event manager applet applet-name

 

Router(config)# event manager applet action

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

ステップ 4

event none

 

Router(config-applet)# event none

EEM に登録して手動で起動される EEM ポリシーを指定します。

ステップ 5

action label gets variable

 

Router(config-applet)# action label2 gets input

EEM アプレットがトリガーされたときに、同期アプレットのローカル コンソールから入力を取得し、与えられた変数に値を格納します。

ステップ 6

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

 

Router(config-applet)# action label3 syslog msg “Input entered was \”$input\“”

EEM アプレットがトリガーされたときに実行されるアクションを指定します。

この例では、実行されるアクションはステップ 5で指定された変数の値を syslog に書き込むことです。

ステップ 7

exit

 

Router(config-applet)# exit

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

次に、同期アプレットのローカル tty から入力を取得して値を格納する例を示します。

Router(config)# event manager applet action
Router(config-applet)# event none
Router(config-applet)# action label2 gets input

Router(config-applet)# action label3 syslog msg "Input entered was \"$input\""

アクティブ コンソールへの入力の書き込み

同期ポリシーがトリガーされたとき、関連するコンソールがパブリッシュ情報仕様に格納されます。ポリシー ディテクタは、この情報を event_reqinfo コール内で問い合わせ、 action puts コマンドで使用するために与えられたコンソール情報を格納します。

action puts コマンドは、アクティブ コンソールに文字列を書き込みます。 nonewline キーワードが指定されない限り、改行文字が表示されます。同期アプレットの action puts コマンドからの出力は、直接コンソールに表示され、System Logger をバイパスします。非同期アプレットの action puts コマンドの出力は、System Logger に向けられます。

前提条件

この機能を使用するには、Cisco IOS Release 12.4(22)T 以降のリリースを実行している必要があります

手順の概要

1. enable

2. configure terminal

3. event manager applet applet-name

4. event none

5. action label regexp string-pattern string-input [ string-match [ string-submatch1 ] [ string-submatch2 ] [ string-submatch3 ]]

6. action label puts [ nonewline ] string

7. exit

8. event manager run applet-name

手順の詳細

コマンドまたはアクション
目的

ステップ 1

enable

 

Router> enable

特権 EXEC モードをイネーブルにします。

プロンプトが表示されたら、パスワードを入力します。

ステップ 2

configure terminal

 

Router# configure terminal

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

ステップ 3

event manager applet applet-name

 

Router(config)# event manager applet action

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

ステップ 4

event none

 

Router(config-applet)# event none

EEM に登録して手動で起動される EEM ポリシーを指定します。

ステップ 5

action label regexp string-pattern string-input [ string-match [ string-submatch1 ] [ string-submatch2 ] [ string-submatch3 ]]

 

Router(config-applet)# action 1 regexp "(.*) (.*) (.*)" "one two three" _match _sub1

EEM アプレットがトリガーされたときに入力文字列の正規表現パターンと比較するアクションを指定します。

ステップ 6

action label puts [ nonewline ] string

 

Router(config-applet)# action 2 puts "match is $_match"

EEM アプレットがトリガーされたときにデータを直接ローカル コンソールに出力するアクションを指定します。

nonewline キーワードはオプションであり、改行文字を表示しないために使用します。

ステップ 7

exit

 

Router(config-applet)# exit

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

ステップ 8

event manager run applet-name

 

Router# event manager run action

登録された EEM ポリシーを手動で実行します。

この例では、ステップ 3 で登録されたポリシーがトリガーされ、ステップ 5 およびステップ 6 で指定された、関連付けられたアクションが実行されます。

次に、 action puts コマンドがデータを直接ローカル コンソールに出力する例を示します。

Router(config-applet)# event manager applet puts
Router(config-applet)# event none
Router(config-applet)# action 1 regexp "(.*) (.*) (.*)" "one two three" _match _sub1
Router(config-applet)# action 2 puts "match is $_match"
Router(config-applet)# action 3 puts "submatch 1 is $_sub1"
Router# event manager run puts
match is one two three
submatch 1 is one
 

SNMP ライブラリ拡張機能の設定

EEM ポリシーの SNMP ライブラリ拡張機能を設定するには、次の概念について十分に理解しておく必要があります。

SNMP Get および Set オペレーション

SNMP トラップ要求およびインフォーム要求

前提条件

この機能を使用するには、Cisco IOS Release 12.4(22)T 以降のリリースを実行している必要があります

SNMP Get および Set オペレーション

Cisco IOS Release 12.4(22)T では、SNMP ライブラリ拡張機能によって、SNMP get-one、get-next、getid および set-type 操作の機能を含めるように、EEM アプレットの action info コマンド、および Tcl の sys_reqinfo_snmp コマンドが拡張されました。

SNMP Get オペレーション

SNMP イベント マネージャは SNMP get オペレーションを実行して、管理対象オブジェクトの 1 つ以上の変数を取得します。 action info type snmp oid get-type コマンドおよび action info type snmp getid コマンドを使用すると、取得する変数とエージェントの IP アドレスを指定することで、SNMP イベント マネージャを SNMP get 要求を送信するように設定できます。

たとえば、OID の値が 1.3.6.1.2.1.1.1 である変数を取得する場合、変数値、1.3.6.1.2.1.1.1 を指定する必要があります。指定された値が一致しない場合、トラップが生成され、エラーメッセージが syslog 履歴に書き込まれます。

action info type snmp oid get-type コマンドは、実行される get オペレーションのタイプを指定します。正確な変数を取得するには、get オペレーションのタイプとして exact を指定する必要があります。指定された OID 値の辞書順での後続値を取得するには、get オペレーションのタイプを next に設定する必要があります。

表 3 に SNMP get オペレーションから取得された値が格納される組み込み変数を示します。

表 3 action info type snmp oid コマンドの組み込み変数

組み込み変数
説明

_info_snmp_oid

SNMP オブジェクト ID。

_info_snmp_value

割り当てられた SNMP データ エレメントの値文字列。

GetID の動作

action info type snmp getid コマンドは次の変数を SNMP エンティティから取得します。

sysDescr.0

sysObjectID.0

sysUpTime.0

sysContact.0

sysName.0

sysLocation.0

表 4 に SNMP getID オペレーションから取得された値が格納される組み込み変数を示します。

表 4 action info type snmp getid コマンドの組み込み変数

組み込み変数
説明

_info_snmp_syslocation_oid

sysLocation 変数の OID 値。

_info_snmp_syslocation_value

sysLocation 変数の値文字列。

_info_snmp_sysdescr_oid

sysDescr 変数の OID 値。

_info_snmp_sysdescr_value

sysDescr 変数の値文字列。

_info_snmp_sysobjectid_oid

sysObjectID 変数の OID 値。

_info_snmp_sysobjectid_value

sysObjectID 変数の値文字列。

_info_snmp_sysuptime_oid

sysUptime 変数の OID 値。

_info_snmp_sysuptime_value

sysUptime 変数の値文字列。

_info_snmp_syscontact_oid

sysContact 変数の OID 値。

_info_snmp_syscontact_value

sysContact 変数の値文字列。

get オペレーション要求は、ローカル ホストとリモート ホストの両方に送信できます。

SNMP Set オペレーション

Management Information Base(MIB; 管理情報ベース)ビューでは、すべての SNMP 変数にデフォルト値が割り当てられています。SNMP イベント マネージャは、set オペレーションによってこれらの MIB 変数の値を変更できます。set オペレーションは、読み取りと書き込みアクセスが許可されたシステムでだけ実行できます。

set オペレーションを実行するには、変数のタイプと変数に割り当てられる値を指定する必要があります。

表 5 に、OID タイプと各 OID タイプに有効な値を示します。

表 5 set オペレーションの OID タイプおよび値

OID タイプ
説明

counter32

最小値が 0 の 32 ビットの数値。最大値に到達すると、カウンタが 0 にリセットされます。0 ~ 4294967295 の範囲の整数値が有効です。

gauge

最小値が 0 の 32 ビットの数値。たとえば、ルータ上のインターフェイスの速度は、Gauge オブジェクト タイプを使用して計測されます。0 ~ 4294967295 の範囲の整数値が有効です。

integer

管理対象オブジェクトのコンテキスト内の番号が付けられたタイプを指定する場合は、32 ビットの数字が使用されます。たとえば、ルータ インターフェイスの操作ステータスを設定するには、1 がアップ、2 がダウンを表します。0 ~ 4294967295 の範囲の整数値が有効です。

ipv4

IP バージョン 4 アドレス。ドット付き 10 進表記の IPv4 アドレスが有効です。

octet string

物理アドレスを表すために使用される、16 進表記のオクテット文字列。テキスト文字列が有効です。

string

テキスト文字列を表すために使用される、テキスト表記のオクテット文字列。テキスト文字列が有効です。

unsigned32

10 進の値を表すために使用される、32 ビットの数値。0 ~ 4294967295 の範囲の符号なし整数値が有効です。

set オペレーションは、ローカル ホストとリモート ホストの両方で実行できます。

SNMP トラップ要求およびインフォーム要求

トラップは、SNMP マネージャまたは Network Management Station(NMS; ネットワーク管理ステーション)にネットワーク状態を警告する SNMP 通知です。

SNMP インフォーム要求は、SNMP マネージャにネットワーク状態を警告する SNMP 通知を参照し、SNMP マネージャからの受信の確認を要求します。

SNMP イベントは、SNMP MIB オブジェクト ID 値がサンプリングされたとき、または、SNMP カウンタが定義されたしきい値を超えたときに発生します。通知がイネーブルであり、該当するイベントが設定されている場合、SNMP トラップまたはインフォーム メッセージが生成されます。イベント マネージャ サーバによって SNMP トラップまたはインフォーム メッセージが受信されたとき、SNMP 通知イベントがトリガーされます。

Embedded Event Manager(EEM)アプレットがトリガーされたときに SNMP トラップまたはインフォーム メッセージを送信するには、 action info type snmp trap コマンド、および action info type snmp inform コマンドが使用されます。CISCO-EMBEDDED-EVENT-MGR-MIB.my を使用して、トラップおよびインフォーム メッセージが定義されます。

SNMP ライブラリ拡張機能の設定方法

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

SNMP Get および Set オペレーションの EEM Applet 設定

SNMP OID 通知の EEM アプレットの設定

SNMP Get および Set オペレーションの EEM Applet 設定

ポリシーをイベント マネージャ サーバに登録する一方で、SNMP イベントに関連付けられたアクションを設定できます。

SNMP set および get オペレーションの EEM アプレットを設定するには、次の作業を実行します。

前提条件

Cisco IOS Release 12.4(22)T 以降のリリースを実行している必要があります

SNMP イベント マネージャが、 snmp-server manager コマンドを使用して設定されている必要があります。

SNMP エンティティへのアクセスを有効にするため、 snmp-server community コマンドを使用して、SNMP コミュニティ文字列が設定される必要があります。

手順の概要

1. enable

2. configure terminal

3. event manager applet applet-name

4. event snmp oid oid-value get-type { exact | next } entry-op operator entry-val entry-value [ exit-comb { or | and }] [ exit-op operator ] [ exit-val exit-value ] [ exit-time exit-time-value ] poll-interval poll-int-value

5. action label info type snmp oid oid-value get-type { exact | next } [ community community-string ] [ ipaddr ip-address ]

6. action label info type snmp oid oid-value set-type oid-type oid-type-value community community-string [ ipaddr ip-address ]

7. action label info type snmp getid oid-value [ community community-string ] [ ipaddr ip-address ]

8. exit

手順の詳細

コマンドまたはアクション
目的

ステップ 1

enable

 

Router> enable

特権 EXEC モードをイネーブルにします。

プロンプトが表示されたら、パスワードを入力します。

ステップ 2

configure terminal

 

Router# configure terminal

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

ステップ 3

event manager applet applet-name

 

Router(config)# event manager applet snmp

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

ステップ 4

event snmp oid oid-value get-type { exact | next } entry-op operator entry-val entry-value [ exit-comb { or | and }] [ exit-op operator ] [ exit-val exit-value ] [ exit-time exit-time-value ] poll-interval poll-int-value

 

Router(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 90

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

この例では、空きメモリが 5120000 を下回ったときに EEM イベントがトリガーされます。

終了基準はオプションです。指定されない場合、イベントのモニタリングは、すぐに再び有効になります。

ステップ 5

action label info type snmp oid oid-value get-type { exact | next } [ community community-string ][ ipaddr ip-address ]

 

Router(config-applet)# action 1.3 info type

snmp oid 1.3.6.1.4.1.9.9.48.1.1.1.6.1 get-type

exact community public ipaddr 172.17.16.69

実行する get オペレーションのタイプを指定します。

この例では、get オペレーションのタイプが exact と指定され、コミュニティ文字列が public と指定されます。

ステップ 6

action label info type snmp oid oid-value set-type oid-type oid-type-value community community-string [ ipaddr ip-address ]

 

Router(config-applet)# action 1.4 info type

snmp oid 1.3.6.1.4.1.9.9.48.1.1.1.6.1 set-type

integer 42220 sysName.0 community rw ipaddr

172.17.16.69

(任意)設定される変数を指定します。

この例では、sysName.0 変数が set オペレーションに指定され、コミュニティ文字列に rw が指定されます。

(注) set オペレーションの場合、SNMP コミュニティ文字列を指定する必要があります。

ステップ 7

action label info type snmp getid oid-value [ community community-string ] [ ipaddr ip-address ]

 

Router(config-applet)# action 1.3 info type

snmp getid community public ipaddr 172.17.16.69

(任意)個々の変数が getid オペレーションによって取得される必要があるかどうかを指定します。

ステップ 8

exit

 

Router(config)# exit

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

SNMP OID 通知の EEM アプレットの設定

SNMP 通知を設定するには、次の作業を実行します。

前提条件

Cisco IOS Release 12.4(22)T 以降のリリースを実行している必要があります

SNMP イベント マネージャを、 snmp-server manager コマンドを使用して設定し、SNMP エージェントが EEM ポリシーのために生成された SNMP トラップを送受信するように設定する必要があります。

snmp-server enable traps event-manager コマンド、および snmp-server enable traps コマンドを使用して SNMP トラップ要求と SNMP インフォーム要求をイネーブルにして、トラップ要求とインフォーム要求の Cisco IOS デバイスからイベント マネージャ サーバへの送信を許可する必要があります。

手順の概要

1. enable

2. configure terminal

3. event manager applet applet-name

4. event snmp oid oid-value get-type { exact | next } entry-op operator entry-val entry-value [ exit-comb { or | and }] [ exit-op operator ] [ exit-val exit-value ] [ exit-time exit-time-value ] poll-interval poll-int-value

5. action label info type snmp var variable-name oid oid-value oid-type oid-type-value

6. action label info type snmp trap enterprise-oid enterprise-oid-value generic-trapnum generic-trap-number specific-trapnum specific-trap-number trap-oid trap-oid-value trap-var trap-variable

7. action label info type snmp inform trap-oid trap-oid-value trap-var trap-variable community community-string ipaddr ip-address

8. exit

手順の詳細

コマンドまたはアクション
目的

ステップ 1

enable

 

Router> enable

特権 EXEC モードをイネーブルにします。

プロンプトが表示されたら、パスワードを入力します。

ステップ 2

configure terminal

 

Router# configure terminal

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

ステップ 3

event manager applet applet-name

 

Router(config)# event manager applet snmp

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

ステップ 4

event snmp oid oid-value get-type { exact | next } entry-op operator entry-val entry-value [ exit-comb { or | and }] [ exit-op operator ] [ exit-val exit-value ] [ exit-time exit-time-value ] poll-interval poll-int-value

 

Router(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 90

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

この例では、空きメモリが 5120000 を下回ったときに EEM イベントがトリガーされます。

終了基準はオプションです。指定されない場合、イベントのモニタリングは、すぐに再び有効になります。

ステップ 5

action label info type snmp var variable-name oid oid-value oid-type oid-type-value

 

Router(config-applet)# action 1.3 info type

snmp var sysDescr.0 oid

1.3.6.1.4.1.9.9.48.1.1.1.6.1 integer 4220

管理対象オブジェクトのインスタンスとその値を指定します。

この例では、sysDescr.0 変数が使用されています。

ステップ 6

action label info type snmp trap enterprise-oid enterprise-oid-value generic-trapnum generic-trap-number specific-trapnum specific-trap-number trap-oid trap-oid-value trap-var trap-variable

 

Router(config-applet)# action 1.4 info type

snmp trap enterprise-oid 1.3.6.1.4.1.1

generic-trapnum 4 specific-trapnum 7 trap-oid

1.3.6.1.4.1.1.226.0.2.1 trap-var sysUpTime.0

EEM アプレットがトリガーされたときに SNMP トラップを生成します。

この例では、authenticationFailure トラップが生成されます。

(注) 固有のトラップ番号は、enterprise イベントが発生したときに生成される enterprise-specific トラップを示します。標準トラップ番号が 6 に設定されていない場合、指定した固有のトラップ番号がトラップの生成に使用されます。

ステップ 7

action label info type snmp inform trap-oid trap-oid-value trap-var trap-variable community community-string ipaddr ip-address

 

Router(config-applet)# action 1.4 info type

snmp inform trap-oid 1.3.6.1.4.1.1.226.0.2.1

trap-var sysUpTime.0 community public ipaddr

172.69.16.2

EEM アプレットがトリガーされたときに SNMP インフォーム要求を生成します。

この例では、sysUpTime.0 変数のインフォーム要求が生成されます。

ステップ 8

exit

 

Router(config)# exit

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

EEM アプレットの可変ロジックの設定

EEM アプレットの可変ロジック機能は、Cisco IOS Release 12.4(22)T 以降のリリースに導入され、EEM アプレット内での条件付きロジック利用機能が追加されました。アプレットには、可変ロジックが導入される前は、イベントがトリガーされたときに各アクションが設定された順に実行されるリニア構造だけがありました。条件付きロジックは、アプレット内のアクションのフローを条件式に従って変更する制御構造を追加します。各制御構造には、ループ アクションや、構造を実行するかどうかを決定する if/else アクションを含むアプレット アクションのリストが含まれます。

アプレット コンフィギュレーション モードの情報は、action コマンドの内容を設定するための背景として示されます。

Tool Command Language(Tcl)とアプレット(CLI)ベースの EEM ポリシーの間で一貫したユーザ インターフェイスを実現するには、次の基準に従います。

Tcl ベースの実装では、イベント仕様基準は TCL で記述されます。

アップレット ベースの実装では、イベント仕様データは CLI アプレット サブモード コンフィギュレーション文を使用して記述されます。

アプレット コンフィギュレーション モードは、event manager applet コマンドを使用して開始します。アプレット コンフィギュレーション モードでは、config プロンプトが、(config-applet)# に変わります。アプレット コンフィギュレーション モードでは、2 種類のコンフィギュレーション文がサポートされます。

event:アプレットが実行される原因となるイベント基準を指定するために使用します。

action:実行する組み込みアクションを指定するために使用します。

1 つのアプレット コンフィギュレーション内で複数の action アプレット コンフィギュレーション コマンドが使用できます。 action アプレット コンフィギュレーション コマンドが存在しない場合は、終了時に、このアプレットに文が割り当てられていないことを示す警告が表示されます。このアプレットに文が割り当てられない場合、イベントはトリガーされますが、アクションは実行されません。アプレット コンフィギュレーション モードでコマンドが指定されない場合は、終了時にアプレットが削除されます。exit applet config コマンドは、アプレット コンフィギュレーション モードを終了するために使用されます。

前提条件

この機能を使用するには、Cisco IOS Release12.4(22)T 以降のリリースを実行している必要があります

EEM アプレットの可変ロジックの設定

EEM 3.0 は、アプレット内で単純な可変ロジックを可能にするための新しいアプレット action コマンドを追加しました。

action コマンドを使用して可変ロジックを設定するには、次の作業を実行します。

「条件付きブロックのループの指定」

「if else 条件付きブロックの指定」

「foreach 反復文の指定」

「正規表現の使用」

「変数の値の増加」

条件付きブロックのループの指定

EEM アプレットがトリガーされたときに、条件付きブロックのループを指定するには、次の作業を実行します。次のタスクでは、変数の値が 10 よりも小さいかどうかを確認するために、条件付きループが設定されます。変数の値が 10 よりも小さい場合は、メッセージ「i is $_i」が syslog に書き込まれます。


) Cisco IOS Release 12.4(22)T では、set(EEM)コマンドが action set コマンドに置き換えられました。詳細については、action label set コマンドを参照してください。set(EEM)コマンドが 12.4(22)T 以降のリリースで入力された場合、IOS パーサーは set コマンドを action label set コマンドに変換します。


手順の概要

1. enable

2. configure terminal

3. event manager applet applet-name

4. action label set

5. action label while string_op1 operator string_op2

6. 必要に応じてアクションを追加します。

7. action label end

手順の詳細

コマンドまたはアクション
目的

ステップ 1

enable

 

Router> enable

特権 EXEC モードをイネーブルにします。

プロンプトが表示されたら、パスワードを入力します。

ステップ 2

configure terminal

 

Router# configure terminal

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

ステップ 3

event manager applet applet-name

 

Router(config)# event manager applet condition

Embedded Event Manager(EEM)にアプレットを登録し、アプレット コンフィギュレーション モードを開始します。

ステップ 4

action label set

 

 

Router(config-applet)# action 1.0 set i 2

イベントに対するアクションを設定します。

この例では、変数 i の値が 2 に設定されます。

ステップ 5

action label while string_op1 operator string_op2

 

Router(config-applet)# action 2 while $i lt 10

条件付きブロックのループを指定します。

この例では、変数 i の値が 10 よりも小さいかどうかを確認するために、ループが設定されます。

ステップ 6

必要に応じてアクションを追加します。

 
Router(config-applet)# action 3 action syslog msg "i is $i"

action コマンドで指示されたアクションを実行します。

この例では、メッセージ、「i is $_i」が syslog に書き込まれます。

ステップ 7

action label end

 

 
Router(config-applet)# action 3 end

実行中のアクションを終了します。

if else 条件付きブロックの指定

if 条件付き文の開始とそれに続く else 条件付き文を指定するには、次の作業を実行します。if 条件付き文と else 条件付き文は、それぞれを結合して使用することも、別々に使用することもできます。このタスクでは、変数の値が 5 に設定されます。次に、変数の値が 10 よりも小さいかどうかを確認するために、if 条件付きブロックが指定されます。if 条件付きブロックが満たされる場合にメッセージ「x is less than 10」を出力する action コマンドが指定されます。

if 条件付きブロックに続いて、else 条件付き部位ロックが指定されます。if 条件付きブロックが満たされない場合にメッセージ「x is greater than 10」を出力する action コマンドが指定されます。

手順の概要

1. enable

2. configure terminal

3. event manager applet applet-name

4. action label set

5. action label if [ stringop1 ] { eq | gt | ge | lt | le | ne } [ stringop2 ]

6. 必要に応じてアクションを追加します。

7. action label else

8. 必要に応じてアクションを追加します。

9. action label end

手順の詳細

コマンドまたはアクション
目的

ステップ 1

enable

 

Router> enable

特権 EXEC モードをイネーブルにします。

プロンプトが表示されたら、パスワードを入力します。

ステップ 2

configure terminal

 

Router# configure terminal

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

ステップ 3

event manager applet applet-name

 

Router(config)# event manager applet ifcondition

Embedded Event Manager(EEM)にアプレットを登録し、アプレット コンフィギュレーション モードを開始します。

ステップ 4

action label set

 

Router(config-applet)# action 1.0 set x 5

イベントに対するアクションを設定します。

この例では、変数 i の値が 5 に設定されます。

ステップ 5

action label if [ stringop1 ] { eq | gt | ge | lt | le | ne } [ stringop2 ]

 

Router(config-applet)# action 2.0 if $x lt 10

if 条件付き文を指定します。

この例では、if 条件付き文は変数の値が 10 よりも小さいかどうかを確認します。

ステップ 6

必要に応じてアクションを追加します。

 
Router(config-applet)# action 3.0 puts “$x is less than 10”

action コマンドで指示されたアクションを実行します。

この例では、メッセージ、「5 is less than 10」が画面に表示されます。

ステップ 7

action label else

 

Router(config-applet)# action 4.0 else

else 条件付き文を指定します。

ステップ 8

必要に応じてアクションを追加します。

 

Router(config-applet)# action 5.0

action コマンドで指示されたアクションを実行します。

この例では、メッセージ、「5 is greater than 10」が画面に表示されます。

ステップ 9

end

 
Router(config-applet)# end

実行中のアクションを終了します。

foreach 反復文の指定

デリミタをトークン化パターンとして使用して入力文字列上で繰り返す条件付き文を指定するには、次の作業を実行します。foreach 反復文は目的の情報を取得するためにコレクションを使用して繰り返すために使用されます。デリミタは、正規表現パターン文字列です。各反復で見つかったトークンは、与えられた iterator 変数に割り当てられます。すべての算術演算は、長整数としてオーバーフローのチェックなしで実行されます。この例では、変数 x の値が 5 に設定されます。反復文は、入力文字列 red、blue、green、orange の間、実行するように設定されます。入力文字列の各エレメントに対して、対応するメッセージが画面に表示されます。

手順の概要

1. enable

2. configure terminal

3. event manager applet applet-name

4. action label foreach [ string-iterator ] [ string-input ] [ string-delimiter ]

5. 任意の action コマンドを指定します。

6. action label end

手順の詳細

コマンドまたはアクション
目的

ステップ 1

enable

 

Router> enable

特権 EXEC モードをイネーブルにします。

プロンプトが表示されたら、パスワードを入力します。

ステップ 2

configure terminal

 

Router# configure terminal

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

ステップ 3

event manager applet applet-name

 

Router(config)# event manager applet iteration

Embedded Event Manager(EEM)にアプレットを登録し、アプレット コンフィギュレーション モードを開始します。

ステップ 4

action label foreach [ string-iterator ] [ string-input ] [ string-delimiter ]

 

Router(config-applet)# action 2.0 foreach iterator "red blue green orange"

デリミタをトークン化パターンとして使用して、入力文字列上で繰り返します。

この例では、入力のエレメント、red、blue、green、および、orange の間、反復が実行されます。

ステップ 5

任意の action コマンドを指定します。

 

Router(config-applet)# action 3.0 puts "Iterator is $iterator"

action コマンドで指示されたアクションを実行します。

この例では、次のメッセージが画面に表示されます。

Iterator is red

Iterator is blue

Iterator is green

Iterator is orange

ステップ 6

action label end

 
Router(config-applet)# action 4.0 end

実行中のアクションを終了します。

正規表現の使用

正規表現パターンを入力文字列と比較するには、次の作業を実行します。正規表現を使用すると、比較される文字列として可能性のある文字列のセットを表す規則を指定できます。このタスクでは、

手順の概要

1. enable

2. configure terminal

3. event manager applet applet-name

4. action label regexp string-pattern string-input [ string-match [ string-submatch1 ] [ string-submatch2 ] [ string-submatch3 ]]

手順の詳細

コマンドまたはアクション
目的

ステップ 1

enable

 

Router> enable

特権 EXEC モードをイネーブルにします。

プロンプトが表示されたら、パスワードを入力します。

ステップ 2

configure terminal

 

Router# configure terminal

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

ステップ 3

event manager applet applet-name

 

 

Router(config)# event manager applet regexp

Embedded Event Manager(EEM)にアプレットを登録し、アプレット コンフィギュレーション モードを開始します。

ステップ 4

action label regexp string-pattern string-input [ string-match [ string-submatch1 ] [ string-submatch2 ] [ string-submatch3 ]]

 

Router(config-applet)# action 2.0 regexp "(.*) (.*) (.*)" "red blue green" _match _sub1

入力文字列と比較する表現パターンを指定します。

この例では、「red blue green」の入力文字列が指定されます。表現パターンが入力文字列と完全に一致したとき、結果全体の red blue green が変数 _match に格納され、サブマッチ red が変数 _sub1 に格納されます。

変数の値の増加

変数の値を増加させるには、次の作業を実行します。このタスクでは変数の値が 20 に設定され、次に値が 12 だけ増加します。

手順の概要

1. enable

2. configure terminal

3. event manager applet applet-name

4. action label set

5. action label increment variable-name long-integer

手順の詳細

コマンドまたはアクション
目的

ステップ 1

enable

 

Router> enable

特権 EXEC モードをイネーブルにします。

プロンプトが表示されたら、パスワードを入力します。

ステップ 2

configure terminal

 

Router# configure terminal

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

ステップ 3

event manager applet applet-name

 

Router(config)# event manager applet increment

Embedded Event Manager(EEM)にアプレットを登録し、アプレット コンフィギュレーション モードを開始します。

ステップ 4

action label set

 

Router(config-applet)# action 1.0 set varname 20

イベントに対するアクションを設定します。

この例では、変数の値が 20 に設定されます。

ステップ 5

action label increment variable-name long-integer

 
Router(config-applet)# action 2.0 increment varname 12

変数の値が指定された長整数だけ増加します。

この例では、変数の値が 12 だけ増加します。

イベント SNMP オブジェクトの設定

SNMP オブジェクトのサンプリングによって実行される Embedded Event Manager(EEM)アプレットの簡易ネットワーク管理プロトコル(SNMP)オブジェクト イベントを登録するには、次の作業を実行します。

前提条件

この機能を使用するには、Cisco IOS Release 15.0(1)T 以降のリリースを実行している必要があります

手順の概要

1. enable

2. configure terminal

3. event manager applet applet-name

4. event snmp-object oid oid-value type value sync { yes | no } skip { yes | no } istable { yes | no } [ default seconds ] [ maxrun maxruntime-number ]

5. exit

手順の詳細

コマンドまたはアクション
目的

ステップ 1

enable

 

Router> enable

特権 EXEC モードをイネーブルにします。

プロンプトが表示されたら、パスワードを入力します。

ステップ 2

configure terminal

 

Router# configure terminal

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

ステップ 3

event manager applet applet-name

 

Router(config)# event manager applet manual-policy

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

ステップ 4

event snmp-object oid oid-value type value sync { yes | no } skip { yes | no } istable { yes | no } [ default seconds ] [ maxrun maxruntime-number ]

 

Router(config-applet)# event snmp-object oid 1.9.9.9.9 type gauge sync yes

action 1 syslog msg "oid = $_snmp_oid"

action 2 syslog msg "request = $_snmp_request"

action 3 syslog msg "request_type = $_snmp_request_type"

 

Embedded Event Manager(EEM)アプレット用の Simple Network Management Protocol(SNMP; 簡易ネットワーク管理プロトコル)オブジェクト イベントを登録し、オブジェクトの SNMP GET および SET 要求を代行受信します。

デフォルトでは、このコマンドは設定されていません。このコマンドが設定されると、デフォルトは構文オプションの説明と同一になります。

oid キーワードは、SNMP オブジェクト ID(object ID)を指定します。

oid-value 引数は、SNMP ドット付き表記のデータ エレメントのオブジェクト ID 値です。OID は、関連する MIB(CISCO-EMBEDDED-EVENT-MGR-MIB)内にタイプとして定義され、各タイプはオブジェクト値を保持します。

istable キーワードは、OID が SNMP テーブルかどうかを指定します。

sync キーワードは、アプレットを同期モードで実行するよう指定します。アプレットからの戻りコードは、SNMP 要求に応答するかどうかを示します。コード 0 は「要求に応答しない」、コード 1 は「要求に応答する」を意味します。アプレットからの戻りコードが要求に応答すると、 action snmp-object-value コマンドを使用して、オブジェクトのアプレットで値が指定されます。

type キーワードは、オブジェクトのタイプを指定します。

value 引数はオブジェクトの値です。

skip キーワード は、CLI コマンドの実行をスキップするかどうかを指定します

default キーワードは、SET 要求または GET 要求をアプレットが通常処理する時間を指定します。 default キーワードが指定されない場合は、デフォルトの時間が 30 秒に設定されます。

milliseconds 引数は、SNMP Object イベント ディテクタがポリシーの終了を待つ時間です。

maxrun キーワードは、アプレットの最大ランタイムを指定します。 maxrun キーワードが指定されている場合、 maxruntime-number 値を指定する必要があります。 maxrun キーワードが指定されていない場合、デフォルトのアプレット ランタイムは 20 秒です。

milliseconds 引数は、ミリ秒単位のアプレットの最大ランタイムです。この引数が指定されない場合、デフォルトの 20 秒ランタイム制限が使用されます。

ステップ 5

exit

 

Router(config)# exit

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

認証、認可、アカウンティング(AAA)認証を無効にする

トリガーされたときに、EEM ポリシーが Authentication, Authorization, and Accounting(AAA; 認証、認可、アカウンティング)認証をバイパスするようにするには、次の作業を実行します。

手順の概要

1. enable

2. configure terminal

3. event manager applet applet-name [ authorization bypass ] [ class class-options ] [ trap ]

4. exit

手順の詳細

コマンドまたはアクション
目的

ステップ 1

enable

 

Router> enable

特権 EXEC モードをイネーブルにします。

プロンプトが表示されたら、パスワードを入力します。

ステップ 2

configure terminal

 

Router# configure terminal

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

ステップ 3

event manager applet applet-name [ authorization bypass ] [ class class-options ] [ trap ]

 
Router(config-applet)# event manager applet one class A authorization bypass

Embedded Event Manager(EEM)にアプレットを登録し、アプレット コンフィギュレーション モードを開始します。

ステップ 4

exit

 

Router(config)# exit

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

Embedded Event Manager アプレットの説明の設定

EEM アプレットについて記述するには、次の作業を実行します。アプレットの説明は、他のアプレット設定の前でも後でも、任意の順序で追加できます。すでに説明があるアプレットに新しい説明を設定すると、現在の説明が上書きされます。アプレットの説明はオプションです。

アプレットに新しい説明を設定するには、次の作業を実行します。

手順の概要

1. enable

2. configure terminal

3. event manager applet applet-name

4. description line

5. event syslog pattern regular-expression

6. action label syslog msg msg-text

7. end

手順の詳細

コマンドまたはアクション
目的

ステップ 1

enable

 

Router> enable

特権 EXEC モードをイネーブルにします。

プロンプトが表示されたら、パスワードを入力します。

ステップ 2

configure terminal

 

Router# configure terminal

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

ステップ 3

event manager applet applet-name

 

Router(config)# event manager applet increment

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

ステップ 4

description line

 

Router(config-applet)# description "This applet looks for the word count in syslog messages"

簡易ネットワーク管理プロトコル(SNMP)のサンプリングによって実行される EEM アプレットの説明を追加または変更します。

ステップ 5

event syslog pattern regular-expression

 

Router(config-applet)# event syslog pattern "count"

syslog メッセージの一致によって実行される Embedded Event Manager(EEM)アプレットのイベント基準を指定します。

ステップ 6

action label syslog msg msg-text

 

Router(config-applet)# action 1 syslog msg hi

EEM アプレットがトリガーされたときに実行されるアクションを指定します。

この例では、実行されるアクションは syslog にメッセージを書き込むことです。

msg-text 引数は、キャラクタ テキスト、環境変数、またはその両方の組み合わせが可能です。

コマンドまたはアクション
目的

ステップ 7

end

 

Router(config-applet)# end

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

Cisco IOS CLI を使用して EEM ポリシーを記述する設定例

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

「Embedded Event Manager アプレット設定:例」

「Embedded Event Manager ポリシーの手動での実行:例」

「Embedded Event Manager を使用したスタブ オブジェクトの設定とトラッキング:例」

「Embedded Event Manager Watchdog System Monitor(Cisco IOS)イベント ディテクタの設定:例」

「SNMP ライブラリ拡張機能設定:例」

「EEM アプレットの可変ロジックの設定:例」

「EEM アプレットの説明の設定:例」

Embedded Event Manager アプレット設定:例

次に、一部の EEM イベント ディテクタの EEM アプレット作成例を示します。これらの例は、「Embedded Event Manager アプレットの登録と定義」で説明された手順に従っています。

Application-Specific イベント ディテクタ

次に、EventPublish_A という名前のポリシーが、20 秒ごとに実行され、番号が 1 のイベント タイプを、番号 798 のサブシステムにパブリッシュする例を示します。サブシステムの値、798 は、イベントのパブリッシュが EEM ポリシーから発生することを指定します。EventPublish_B という名前の 2 番目のポリシーは、EEM イベント タイプ 1 が発生したときに実行されるように、subsystem 798 に登録されます。EventPublish_B ポリシーは実行されるときに、EventPublish_A から引数として渡されたデータを含むメッセージを syslog に送信します。

event manager applet EventPublish_A
event timer watchdog time 20.0
action 1.0 syslog msg "Applet EventPublish_A"
action 2.0 publish-event sub-system 798 type 1 arg1 twenty
exit
event manager applet EventPublish_B
event application sub-system 798 type 1
action 1.0 syslog msg "Applet EventPublish_B arg1 $_application_data1"

CLI イベント ディテクタ

次に、Cisco IOS write memory CLI コマンドが実行されたときに実行する EEM アプレットを指定する例を示します。アプレットは、このイベントが syslog メッセージによって生成した通知を提供します。この例では、 sync キーワードが yes 引数とともに設定されています。これは、このポリシーの実行が完了したときに、イベント ディテクタに通知されることを意味します。ポリシーの終了状態が、CLI コマンドが実行されるかどうかを決定します。この例では、ポリシーの終了状態は 1 に設定され、CLI コマンドは実行されます。

event manager applet cli-match
event cli pattern "write mem.*" sync yes
action 1.0 syslog msg "$_cli_msg Command Executed"
set 2.0 _exit_status 1
 

次に、 CLI パターン を test 引数と比較するアプレットの例を示します。 show access-list test が入力されたとき、CLI イベント ディテクタは、test 引数を比較し、アプレットがトリガーされます。 debug event manager detector cli 出力が追加され、num_matches が 1 に設定されたことが表示されます。

!
event manager applet EEM-PIPE-TEST
event cli pattern "test" sync yes
action 1.0 syslog msg "Pattern matched!"
!
*Aug 23 23:19:59.827: check_eem_cli_policy_handler: command_string=show access-lists test
*Aug 23 23:19:59.827: check_eem_cli_policy_handler: num_matches = 1, response_code = 4
*Aug 23 23:19:59.843: %HA_EM-6-LOG: EEM-PIPE-TEST: Pattern matched!
 

) CLI イベント ディテクタによる機能は、有効な IOS CLI コマンドでの正規表現パターン比較機能だけです。これには、リダイレクションが使用される場合のパイプ記号(|)以降のテキストは含まれません。


次に、 show version | include test が入力されたときに、CLI イベント ディテクタがパイプ記号(|)以降に入力された文字と一致しないため、アプレットがトリガーに失敗し、 debug event manager detector cli 出力は、num_matches が 0(ゼロ)に設定されることを示す例を示します。

*Aug 23 23:20:16.827: check_eem_cli_policy_handler: command_string=show version
*Aug 23 23:20:16.827: check_eem_cli_policy_handler: num_matches = 0, response_code = 1

Counter イベント ディテクタおよび Timer イベント ディテクタ

次に、EventCounter_A ポリシーが 1 分に 1 回実行されるように設定され、既知のカウンタ critical_errors を増加させる例を示します。2 番目のポリシー、policy--EventCounter_B は、既知のカウンタ critical_errors がしきい値 3 を超えたときにトリガーされるように登録されます。EventCounter_B ポリシーが実行されたとき、カウンタは 0 にリセットされます。

event manager applet EventCounter_A
event timer watchdog time 60.0
action 1.0 syslog msg “EventCounter_A”
action 2.0 counter name critical_errors op inc value 1
exit
event manager applet EventCounter_B
event counter name critical_errors entry-op gt entry-val 3 exit-op lt exit-val 3
action 1.0 syslog msg “EventCounter_B”
action 2.0 counter name critical_errors op set value 0

Interface Counter イベント ディテクタ

次に、EventInterface という名前のポリシーが、ファスト イーサネット インターフェイス 0/0 の receive_throttle カウンタが 5 ずつ増加するたびに、トリガーされる例を示します。カウンタをチェックするポーリング間隔は、90 秒ごとに 1 回実行するように指定されます。

event manager applet EventInterface
event interface name FastEthernet0/0 parameter receive_throttle entry-op ge entry-val 5
entry-val-is-increment true poll-interval 90
action 1.0 syslog msg "Applet EventInterface"

Resource イベント ディテクタ

次に、CPU 使用率が高い場合に報告するように定義された、ポリシーの ERM イベント レポートに基づいてイベント基準を指定する例を示します。

event manager applet policy-one
event resource policy cpu-high
action 1.0 syslog msg “CPU high at $_resource_current_value percent”

RF イベント ディテクタ

RF イベント ディテクタは、デュアル ルート プロセッサ(RP)を備えたネットワーキング デバイスでだけ利用できます。次に、RF 状態変化通知に基づいてイベント基準を指定する例を示します。

event manager applet start-rf
event rf event rf_prog_initialization
action 1.0 syslog msg "rf state rf_prog_initialization reached"

Remote Procedure Call(RPC)イベント ディテクタ

RPC イベント ディテクタによって、外部エンティティがルータまたはスイッチに対して Simple Object Access Protocol(SOAP)要求を作成でき、定義された EEM ポリシーまたはスクリプトを実行できます。次に、Event_RPC という名前の EEM アプレットが EEM スクリプトを実行するように登録されている例を示します。

event manager applet Event_RPC
event rpc
action print puts "hello there"
 

次に、SOAP 要求と返信メッセージの形式の例を示します。

<?xml version="1.0" encoding="UTF-8"?>
<SOAP:Envelope xmlns:SOAP="http://www.cisco.com/eem.xsd">
<SOAP:Body>
<run_eemscript>
<script_name>Event_RPC</script_name>
</run_eemscript>
</SOAP:Body>
</SOAP:Envelope>
 
 
]]>]]>
 
<?xml version="1.0" encoding="UTF-8"?><SOAP:Envelope xmlns:SOAP="http://www.cisco.com/eem.xsd"><SOAP:Body><run_eemscript_response><return_code>0</return_code><output></output></run_eemscript_response></SOAP:Body></SOAP:Envelope>]]>]]>
 

SNMP イベント ディテクタ

次に、CPU 使用率が 75% を上回ったときに実行する EEM アプレットを指定する例を示します。EEM アプレットが実行されるとき、CLI コマンド enable および show cpu processes が実行され、 show cpu processes コマンドの結果が含まれる E メールがエンジニアに送信されます。

event manager applet snmpcpuge75
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 75
poll-interval 10
action 1.0 cli command "enable"
action 2.0 cli command "show process cpu"
action 3.0 mail server "192.168.1.146" to "engineer@cisco.com" from "devtest@cisco.com"
subject "B25 PBX Alert" body "$_cli_result"
 

次の例はより複雑で、プライマリ ルート プロセッサ(RP)がメモリ不足で実行されているときに、セカンダリ(冗長)RP へのスイッチを引き起こす EEM アプレットを設定する例を示します。

この例は、メモリ リークの原因となるソフトウェア障害に対する予防措置を実施する方法を示しています。ここで実行されるアクションは、メモリ リークの可能性が検出されたときに、冗長 RP へのスイッチングによってダウンタイムを削減することを意図しています。

図 1 は、EEM イメージを実行しているデュアル RP ルータを示しています。EEM アプレットは、 event manager applet コマンドを使用して CLI によって登録されています。プライマリ RP の使用可能なメモリが、指定されたしきい値 5,120,000 バイトを下回ったときに、アプレットは実行されます。アプレット アクションは、利用可能なメモリのバイト数を示すメッセージを syslog に書き込み、セカンダリ RP へスイッチします。

図 1 デュアル RP トポロジ

 

ポリシーの登録に使用されるコマンドは、次のとおりです。

event manager applet memory-demo
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 90
action 1.0 syslog priority critical msg "Memory exhausted; current available memory is
$_snmp_oid_val bytes"
action 2.0 force-switchover
 

show event manager policy registered コマンドを使用すると登録されたアプレットが表示されます。

Router# show event manager policy registered
 
No. Type Event Type Time Registered Name
1 applet snmp Thu Jan30 05:57:16 2003 memory-demo
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 90
action 1.0 syslog priority critical msg "Memory exhausted; current available memory is
$_snmp_oid_val bytes"
action 2.0 force-switchover
 

この例の目的のために、ルータでメモリ削減が強制され、メモリ削減の監視ために一連の show memory コマンドが実行されます。

Router# show memory
 
Head Total(b) Used(b) Free(b) Lowest(b) Largest(b)
Processor 53585260 212348444 119523060 92825384 92825384 92365916
Fast 53565260 131080 70360 60720 60720 60668
 
Router# show memory
 
Head Total(b) Used(b) Free(b) Lowest(b) Largest(b)
Processor 53585260 212364664 164509492 47855172 47855172 47169340
Fast 53565260 131080 70360 60720 60720 60668
 
Router# show memory
 
Head Total(b) Used(b) Free(b) Lowest(b) Largest(b)
Processor 53585260 212369492 179488300 32881192 32881192 32127556
Fast 53565260 131080 70360 60720 60720 60668
 

しきい値に達したときに、EEM イベントがトリガーされます。memory-demo という名前のアプレットが実行され、これによって、syslog メッセージがコンソールに出力され、セカンダリ RP へのスイッチが発生します。次のメッセージが記録されます。

00:08:31: %HA_EM-2-LOG: memory-demo: Memory exhausted; current available memory is
4484196 bytes
00:08:31: %HA_EM-6-FMS_SWITCH_HARDWARE: fh_io_msg: Policy has requested a hardware
switchover
 

次は、プライマリ RP とセカンダリ(冗長)RP の両方での show running-config コマンドの出力の一部です。

redundancy
mode sso
.
.
!
event manager applet memory-demo
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 90
action 1.0 syslog priority critical msg "Memory exhausted; current available memory
is $_snmp_oid_val bytes"
action 2.0 force-switchover

SNMP 通知イベント ディテクタ

次に、 event snmp-notification が設定される前に、 snmp-server community public RW コマンド、および snmp-server manager コマンドを設定する例を示します。

snmp-server community public RW
snmp-server manager
 

次に、宛先 IP アドレス 192.168.1.1 であり、ID が 1 でその値が 10 であるオブジェクトの SNMP 通知を受け取ったときに、SNMP_Notification という名前の EEM アプレットが実行されるように登録する例を示します。

event manager applet SNMP_Notification
event snmp-notification dest_ip_address 192.168.1.1 oid 1 op eq oid-value 10
action 1 policy eem_script

Syslog イベント ディテクタ

次に、syslog がイーサネット インターフェイス 1/0 のダウンを認識したときに実行する EEM アプレットを指定する例を示します。アプレットはインターフェイスに関するメッセージを syslog に送信します。

event manager applet interface-down
event syslog pattern “.*UPDOWN.*Ethernet1/0.*” occurs 4
action 1.0 syslog msg "Ethernet interface 1/0 changed state 4 times"

Embedded Event Manager ポリシーの手動での実行:例

次に、手動で実行する EEM ポリシー(アプレットまたはスクリプト)の設定に None イベント ディテクタを使用する例を示します。

イベント マネージャ run コマンドの使用

次に、 event manager run コマンドを使用して、手動でポリシーを実行する例を示します。ポリシーは、アプレット コンフィギュレーション モードで event none コマンドを使用して登録され、グローバル コンフィギュレーション モードで event manager run コマンドを使用して実行されます。

event manager applet manual-policy
event none
action 1.0 syslog msg "Manual-policy triggered"
end
!
event manager run manual-policy

action policy コマンドの使用

次に、 action policy コマンドを使用して、手動でポリシーを実行する例を示します。ポリシーは、アプレット コンフィギュレーション モードで event none コマンドを使用して登録され、続いてアプレット コンフィギュレーション モードで action policy コマンドを使用して実行されます。

event manager applet manual-policy
event none
action 1.0 syslog msg "Manual-policy triggered"
exit
!
event manager applet manual-policy-two
event none
action 1.0 policy manual-policy
end
!
event manager run manual-policy-two

Embedded Event Manager を使用したスタブ オブジェクトの設定とトラッキング:例

次に、スタブ オブジェクトを作成し、スタブ オブジェクトの状態を設定し、トラッキング対象オブジェクトが変化したときに実行される EEM アプレットを設定する例を示します。Enhanced Object Tracking(EOT)イベント ディテクタが使用され、アクションはオブジェクトのステータスの設定と読み取りの両方が指定されます。この例では、他の EOT クライアントから操作される EOT オブジェクトを EEM が定義できます。EEM ポリシーは、他の EOT クライアント用または EEM が定義したオブジェクト用に定義されたオブジェクトを含む任意の EOT オブジェクトに対してトリガーできます。

track 10 stub-object
default-state down
!
event manager applet track-ten
event track 10 state any
action 1.0 track set 10 state up
action 2.0 track read 10

Embedded Event Manager Watchdog System Monitor(Cisco IOS)イベント ディテクタの設定:例

次に、Cisco IOS watchdog system monitor (IOSWDSysMon) イベント ディテクタの動作を具体的に表示する 3 個の EEM アプレットの設定例を示します。

Watchdog System Monitor サンプル 1 ポリシー

第 1 のポリシーは、IP Input という名前のプロセスの平均 CPU 使用率が 10 秒間 1% 以上になったときにアプレットをトリガーします。

event manager applet IOSWD_Sample1
event ioswdsysmon sub1 cpu-proc taskname "IP Input" op ge val 1 period 10
action 1.0 syslog msg "IOSWD_Sample1 Policy Triggered"

Watchdog System Monitor サンプル 2 ポリシー

第 2 のポリシーは、Net Input という名前のプロセスによる合計メモリ使用量が 100 kb を超えたときアプレットをトリガーします。

event manager applet IOSWD_Sample2
event ioswdsysmon sub1 mem-proc taskname "Net Input" op gt val 100 is-percent false
action 1.0 syslog msg "IOSWD_Sample2 Policy Triggered"

Watchdog System Monitor サンプル 3 ポリシー

第 3 のポリシーは、IP RIB Update という名前のプロセスによる合計メモリ使用量が、60 秒のサンプリング時間全体で、50% を超えて増加したときにアプレットをトリガーします。

event manager applet IOSWD_Sample3
event ioswdsysmon sub1 mem-proc taskname "IP RIB Update" op gt val 50 is-percent true period 60
action 1.0 syslog msg "IOSWD_Sample3 Policy Triggered"
 

3 個のポリシーが設定され、複数のワークステーションからネットワーキング デバイスに対して繰り返し大量の ping が実行されます。そのためネットワーキング デバイスは一定の利用量を記録します。これにより、ポリシー 1 およびポリシー 2 がトリガーされ、コンソールに次のメッセージが表示されます。

00:42:23: %HA_EM-6-LOG: IOSWD_Sample1: IOSWD_Sample1 Policy Triggered
00:42:47: %HA_EM-6-LOG: IOSWD_Sample2: IOSWD_Sample2 Policy Triggered
 
 

登録されたポリシーを表示するには、 show event manager policy registered コマンドを使用します。

Router# show event manager policy registered
 
No. Class Type Event Type Trap Time Registered Name
1 applet system ioswdsysmon Off Fri Jul 23 02:27:28 2004 IOSWD_Sample1
sub1 cpu_util {taskname {IP Input} op ge val 1 period 10.000 }
action 1.0 syslog msg "IOSWD_Sample1 Policy Triggered"
 
2 applet system ioswdsysmon Off Fri Jul 23 02:23:52 2004 IOSWD_Sample2
sub1 mem_used {taskname {Net Input} op gt val 100 is_percent FALSE}
action 1.0 syslog msg "IOSWD_Sample2 Policy Triggered"
 
3 applet system ioswdsysmon Off Fri Jul 23 03:07:38 2004 IOSWD_Sample3
sub1 mem_used {taskname {IP RIB Update} op gt val 50 is_percent TRUE period 60.000 }
action 1.0 syslog msg "IOSWD_Sample3 Policy Triggered"

SNMP ライブラリ拡張機能設定:例

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

SNMP Get オペレーション:例

SNMP GetID オペレーション:例

Set オペレーション:例

SNMP 通知の生成:例

SNMP Get オペレーション:例

次に、get 要求をローカル ホストに送信する例を示します。

Router(config)# event manager applet snmp
 
Router(config-applet)# event snmp oid 1.3.6.1.2.1.1.1.0 get-type exact entry-op lt entry-val 5120000 poll-interval 90
 
Router(config-applet)# action 1.3 info type snmp oid 1.3.6.1.2.1.1.1.0 get-type exact community public
 
Router(config-applet)# action 1.3 info type snmp oid 1.3.6.1.2.1.1.4.0 get-type next community public

 

次のログ メッセージが SNMP イベント マネージャ ログに書き込まれます。

1d03h:%HA_EM-6-LOG: lg: 1.3.6.1.2.1.1.1.0
1d04h:%HA_EM-6-LOG: lgn: 1.3.6.1.2.1.1.5.0

次に、get 要求をリモート ホストに送信する例を示します。

Router(config)# event manager applet snmp
 
Router(config-applet)# event snmp oid 1.3.6.1.2.1.1.1.0 get-type exact entry-op lt entry-val 5120000 poll-interval 90
 
Router(config-applet)# action 1.3 info type snmp oid 1.3.6.1.2.1.1.4.0 get-type next community public ipaddr 172.17.16.69
 
Router(config-applet)# action 1.3 info type snmp getid 1.3.6.1.2.1.1.1.0 community public ipaddr 172.17.16.69
 

次のログ メッセージが SNMP イベント マネージャ ログに書き込まれます。

1d03h:%HA_EM-6-LOG: lg: 1.3.6.1.2.1.1.1.0
1d04h:%HA_EM-6-LOG: lgn: 1.3.6.1.2.1.1.5.0

SNMP GetID オペレーション:例

次に、getid 要求をローカル ホストに送信する例を示します。

Router(config)# event manager applet snmp
 
Router(config-applet)# event snmp oid 1.3.6.1.2.1.1.1.0 get-type exact entry-op lt entry-val 5120000 poll-interval 90
 
Router(config-applet)# action 1.3 info type snmp getid community public
 

次のログ メッセージが SNMP イベント マネージャ ログに書き込まれます。

1d04h:%HA_EM-6-LOG: lgid: _info_snmp_sysname_oid=1.3.6.1.2.1.1.5.0
1d04h:%HA_EM-6-LOG: lgid: _info_snmp_sysname_value=jubjub.cisco.com
1d04h:%HA_EM-6-LOG: lgid: _info_snmp_syslocation_oid=1.3.6.1.2.1.1.6.0
1d04h:%HA_EM-6-LOG: lgid: _info_snmp_syslocation_value=
1d04h:%HA_EM-6-LOG: lgid: _info_snmp_sysdescr_oid=1.3.6.1.2.1.1.1.0
1d04h:%HA_EM-6-LOG: lgid: _info_snmp_sysobjectid_oid=1.3.6.1.2.1.1.2.0
1d04h:%HA_EM-6-LOG: lgid: _info_snmp_sysobjectid_value=products.222
1d04h:%HA_EM-6-LOG: lgid: _info_snmp_sysuptime_oid=1.3.6.1.2.1.1.3.0
1d04h:%HA_EM-6-LOG: lgid: _info_snmp_sysuptime_oid=10131676
1d04h:%HA_EM-6-LOG: lgid: _info_snmp_syscontact_oid=1.3.6.1.2.1.1.4.0
1d04h:%HA_EM-6-LOG: lgid: _info_snmp_syscontact_value=YYY
 

次に、getid 要求をリモート ホストに送信する例を示します。

Router(config)# event manager applet snmp
 
Router(config-applet)# event snmp oid 1.3.6.1.2.1.1.1.0 get-type exact entry-op lt entry-val 5120000 poll-interval 90
 
Router(config-applet)# action 1.3 info type snmp getid 1.3.6.1.2.1.1.1.0 community public ipaddr 172.17.16.69
 

次のログ メッセージが SNMP イベント マネージャ ログに書き込まれます。

1d04h:%HA_EM-6-LOG: lgid: _info_snmp_sysname_oid=1.3.6.1.2.1.1.5.0
1d04h:%HA_EM-6-LOG: lgid: _info_snmp_sysname_value=jubjub.cisco.com
1d04h:%HA_EM-6-LOG: lgid: _info_snmp_syslocation_oid=1.3.6.1.2.1.1.6.0
1d04h:%HA_EM-6-LOG: lgid: _info_snmp_syslocation_value=
1d04h:%HA_EM-6-LOG: lgid: _info_snmp_sysdescr_oid=1.3.6.1.2.1.1.1.0
1d04h:%HA_EM-6-LOG: lgid: _info_snmp_sysobjectid_oid=1.3.6.1.2.1.1.2.0
1d04h:%HA_EM-6-LOG: lgid: _info_snmp_sysobjectid_value=products.222
1d04h:%HA_EM-6-LOG: lgid: _info_snmp_sysuptime_oid=1.3.6.1.2.1.1.3.0
1d04h:%HA_EM-6-LOG: lgid: _info_snmp_sysuptime_oid=10131676
1d04h:%HA_EM-6-LOG: lgid: _info_snmp_syscontact_oid=1.3.6.1.2.1.1.4.0
1d04h:%HA_EM-6-LOG: lgid: _info_snmp_syscontact_value=YYY
 

Set オペレーション:例

次に、set オペレーションをローカル ホストで実行する例を示します。

Router(config)# event manager applet snmp
 
Router(config-applet)# event snmp oid 1.3.6.1.2.1.1.1.0 get-type exact entry-op lt entry-val 5120000 poll-interval 90
 
Router(config-applet)# action 1.3 info type snmp oid 1.3.6.1.2.1.1.4.0 set-type integer 5 sysName.0 community public
 

次のログ メッセージが SNMP イベント マネージャ ログに書き込まれます。

1d04h:%HA_EM-6-LOG: lset: 1.3.6.1.2.1.1.4.0
1d04h:%HA_EM-6-LOG: lset: XXX
 

次に、set オペレーションをリモート ホストで実行する例を示します。

Router(config)# event manager applet snmp
 
Router(config-applet)# event snmp oid 1.3.6.1.2.1.1.1.0 get-type exact entry-op lt entry-val 5120000 poll-interval 90
 
Router(config-applet)# action 1.3 info type snmp oid 1.3.6.1.2.1.1.4.0 set-type integer 5 sysName.0 community public ipaddr 172.17.16.69
 

次のログ メッセージが SNMP イベント マネージャ ログに書き込まれます。

1d04h:%HA_EM-6-LOG: lset: 1.3.6.1.2.1.1.4.0
1d04h:%HA_EM-6-LOG: lset: XXX
 

SNMP 通知の生成:例

次に、sysUpTime.0 変数の SNMP トラップを設定する例を示します。

Router(config)# event manager applet snmp
 
Router(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 90
 
Router(config-applet)# action 1.3 info type snmp var sysUpTime.0 oid 1.3.6.1.4.1.9.9.43.1.1.6.1.3.41 integer 2
 
Router(config-applet)# action 1.4 info type snmp trap enterprise-oid ciscoSyslogMIB.2 generic-trapnum 6 specific-trapnum 1 trap-oid 1.3.6.1.4.1.9.9.41.2.0.1 trap-var sysUpTime.0
 

debug snmp packets コマンドがイネーブルにされている場合、次の出力が生成されます。

Router# debug snmp packets
 
1d04h: SNMP: Queuing packet to 172.69.16.2
1d04h: SNMP: V1 Trap, ent ciscoSyslogMIB.2, addr 172.19.rap 1
clogHistoryEntry.3 = 4
clogHistoryEntry.6 = 9999
1d04h: SNMP: Queuing packet to 172.19.208.130
1d04h: SNMP: V1 Trap, ent ciscoSyslogMIB.2, addr 172.19.rap 1
clogHistoryEntry.3 = 4
clogHistoryEntry.6 = 9999
1d04h: SNMP: Packet sent via UDP to 172.69.16.2
1d04h: SNMP: Packet sent via UDP to 172.69.16.2
infra-view10:
Packet Dump:
30 53 02 01 00 04 04 63 6f 6d 6d a4 48 06 09 2b
06 01 04 01 09 09 29 02 40 04 ac 13 d1 17 02 01
06 02 01 01 43 04 00 9b 82 5d 30 29 30 12 06 0d
2b 06 01 04 01 09 09 29 01 02 03 01 03 02 01 04
30 13 06 0d 2b 06 01 04 01 09 09 29 01 02 03 01
06 02 02 27 0f
Received SNMPv1 Trap:
Community: comm
Enterprise: ciscoSyslogMIBNotificationPrefix
Agent-addr: 172.19.209.23
Enterprise Specific trap.
Enterprise Specific trap: 1
Time Ticks: 10191453
clogHistSeverity = error(4)
clogHistTimestamp = 9999
 

次に、sysUpTime.0 変数の SNMP インフォーム要求を設定する例を示します。

Router(config)# event manager applet snmp
 
Router(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 90
 
Router(config-applet)# action 1.3 info type snmp var sysUpTime.0 oid 1.3.6.1.4.1.9.9.43.1.1.6.1.3.41 integer 2
 
Router(config-applet)# action 1.4 info type snmp inform trap-oid 1.3.6.1.4.1.9.9.43.2.0.1 trap-var sysUpTime.0 community public ipaddr 172.19.209.24
 

debug snmp packets コマンドがイネーブルにされている場合、次の出力が生成されます。

Router# debug snmp packets
 
1d04h: SNMP: Inform request, reqid 24, errstat 0, erridx 0
sysUpTime.0 = 10244391
snmpTrapOID.0 = ciscoConfigManMIB.2.0.1
ccmHistoryEventEntry.3.40 = 1
1d04h: SNMP: Packet sent via UDP to 172.19.209.24.162
1d04h: SNMP: Packet received via UDP from 172.19.209.24 on FastEthernet0/0
1d04h: SNMP: Response, reqid 24, errstat 0, erridx 0
1d04h: SNMP: Response, reqid 24, errstat 0, erridx 0
1d04h: SNMP: Inform request, reqid 25, errstat 0, erridx 0
sysUpTime.0 = 10244396
snmpTrapOID.0 = ciscoConfigManMIB.2.0.1
ccmHistoryEventEntry.3.41 = 2
1d04h: SNMP: Packet sent via UDP to 172.19.209.24.162
1d04h: SNMP: Packet received via UDP from 172.19.209.24 on FastEthernet0/0
1d04h: SNMP: Response, reqid 25, errstat 0, erridx 0
1d04h: SNMP: Response, reqid 25, errstat 0, erridx 0
Router# debug snmp packets
5d04h: SNMP: Packet received via UDP from 172.19.209.23 on FastEthernet0/0
5d04h: SNMP: Inform request, reqid 24, errstat 0, erridx 0
sysUpTime.0 = 10244391
snmpTrapOID.0 = ciscoConfigManMIB.2.0.1
ccmHistoryEventEntry.3.40 = 1
5d04h: dest if_index = 1
5d04h: dest ip addr= 172.19.209.24
5d04h: SNMP: Response, reqid 24, errstat 0, erridx 0
5d04h: SNMP: Packet sent via UDP to 172.19.209.23.57748
5d04h: SNMP: Packet received via UDP from 172.19.209.23 on FastEthernet0/0
5d04h: SNMP: Inform request, reqid 25, errstat 0, erridx 0
 

EEM アプレットの可変ロジックの設定:例

このセクションでは、一部の選択された action コマンドの例を示します。アプレット内の可変ロジックをサポートするすべての action コマンドについては、表 6を参照してください。

次の例では、条件付きループ while if および foreach を使用してデータを出力しています。 action divide action increment および action puts などの他の action コマンドは、条件が満たされときに実行されるアクションの定義に使用されます。

event manager applet printdata

event none

action 100 set colors "red green blue"

action 101 set shapes "square triangle rectange"

action 102 set i "1"

action 103 while $i lt 6

action 104 divide $i 2

action 105 if $_remainder eq 1

action 106 foreach _iterator "$colors"

action 107 puts nonewline "$_iterator "

action 108 end

action 109 puts ""

action 110 else

action 111 foreach _iterator "$shapes"

action 112 puts nonewline "$_iterator "

action 113 end

action 114 puts ""

action 115 end

action 116 increment i

action 117 end

 

イベント マネージャ アプレット ex が実行されたとき、次の出力が得られます。

event manager run printdata

red green blue

square triangle rectange

red green blue

square triangle rectange

red green blue

 

次の例では、2 個の環境変数、poll_interface と max_rx_rate が、それぞれ、F0/0 と 3 に設定されます。30 秒ごとに、インターフェイスで rx 比率の調査が行われます。rx 比率がしきい値を上回った場合は、syslog メッセージが表示されます。

このアプレットは、インターフェイスの調査に foreach 条件付き文を使用します。また、RXPS に属する値を EEM 環境変数に設定された max_rx_rate と比較するために、if 条件付きブロックを使用します。

event manager environment poll_interfaces F0/0

event manager environment max_rx_rate 3

 

ev man app check_rx_rate

ev timer watchdog name rx_timer time 30

action 100 foreach int $poll_interfaces

action 101 cli command "en"

action 102 cli command "show int $int summ | beg ------"

action 103 foreach line $_cli_result "\n"

action 105 regexp ".*[0-9]+\s+[0-9]+\s+[0-9]+\s+[0-9]+\s+[0-9]+\s+([0-9]+)\s+.*" $line junk rxps

action 106 if $_regexp_result eq 1

action 107 if $rxps gt $max_rx_rate

action 108 syslog msg "Warning rx rate for $int is > than threshold. Current value is $rxps (threshold is $max_rx_rate)"

action 109 end

action 110 end

action 111 end

action 112 end

 

Example syslog message:

 

Oct 16 09:29:26.153: %HA_EM-6-LOG: c: Warning rx rate for F0/0 is > than threshold. Current value is 4 (threshold is 3)

 

The output of show int F0/0 summ is of the format:

 

#show int f0/0 summ

 

*: interface is up

IHQ: pkts in input hold queue IQD: pkts dropped from input queue

OHQ: pkts in output hold queue OQD: pkts dropped from output queue

RXBS: rx rate (bits/sec) RXPS: rx rate (pkts/sec)

TXBS: tx rate (bits/sec) TXPS: tx rate (pkts/sec)

TRTL: throttle count

 

Interface IHQ IQD OHQ OQD RXBS RXPS TXBS TXPS TRTL

-------------------------------------------------------------------------

* FastEthernet0/0 0 87283 0 0 0 0 0 0 0

 


) アプレット内の可変ロジックをサポートするその他の action コマンドを使用するには、表 6 にあるコマンドを使用してください。


 

表 6 使用できる action コマンド

Action コマンド
目的

action add

EEM アプレットがトリガーされたときに 2 つの変数の値を足します。

action append

EEM アプレットがトリガーされたときに、与えられた値に変数の現在の値をアペンドします。

action break

EEM アプレットがトリガーされたときに、すぐにアクションのループを終了します。

action comment

EEM アプレットがトリガーされたときにアプレットにコメントを追加します。

action context retrieve

EEM アプレットがトリガーされたときに、与えられたコンテキスト名キーのセットで特定される変数を取得します。

action context save

EEM アプレットがトリガーされたときに、複数のポリシー トリガー全体の情報を保存します。

action continue

EEM アプレットがトリガーされたときに、アクションのループを継続します。

action decrement

EEM アプレットがトリガーされたときに、変数の値をデクリメントします。

action divide

EEM アプレットがトリガーされたときに、与えられた序数の値で非除数を割ります。

action else

EEM アプレットがトリガーされたときに、if / else 条件付きアクション ブロックの else 条件付きアクション ブロックの開始を指定します。

action elseif

EEM アプレットがトリガーされたときに、else / if 条件付きアクション ブロックの else 条件付きアクション ブロックの開始を特定します。

action end

EEM アプレットがトリガーされたときに、if / else および while 条件付きアクション ブロックの条件付きアクション ブロック終了の ID を指定します。

action exit

EEM アプレットがトリガーされたときに、すぐに実行中のアプレット コンフィギュレーションを終了することを指定します。

action foreach

EEM アプレットがトリガーされたときに、デリミタをトークン化されたパターンとして使用した入力文字列の反復を指定します。

action gets

EEM アプレットがトリガーされたときに、同期アプレットのローカル TTY から入力を取得し、与えられた変数に値を格納します。

action if

EEM アプレットがトリガーされたときに、if 条件付きブロック開始の ID を指定します。

action if goto

EEM アプレットがトリガーされたときに、指定された条件が True であればアプレットが与えられたラベルにジャンプすることを指示します。

action increment

EEM アプレットがトリガーされたときに、変数の値を増加させます。

action info type interface-names

EEM アプレットがトリガーされたときに、インターフェイス名を取得するアクションを指定します。

action info type snmp getid

SNMP get オペレーション中に簡易ネットワーク管理プロトコル(SNMP)エンティティから各変数を取得します。

action info type snmp inform

EEM アプレットがトリガーされたときに、SNMP インフォーム要求を送信します。

action info type snmp oid

EEM アプレットがトリガーされたときに、SNMP get オペレーションのタイプ、および、SNMP set オペレーション中に取得するオブジェクトを指定します。

action info type snmp trap

EEM アプレットがトリガーされたときに、SNMP trap 要求を送信します。

action info type snmp var

SNMP オブジェクト ID(OID)の変数、およびその値を EEM アプレットから作成します。

action multiply

EEM アプレットがトリガーされたときに、変数値に指定された整数値を掛けるアクションを指定します。

action puts

EEM アプレットがトリガーされたときにデータを直接ローカル TTY に出力するアクションを有効にします。

action regexp

EEM アプレットがトリガーされたときに入力文字列の正規表現パターンと比較するアクションを指定します。

action set(EEM)

EEM アプレットがトリガーされたときに変数の値を設定するアクションを指定します。

action string compare

EEM アプレットがトリガーされたときに 2 個の等しくない文字列を比較するアクションを指定します。

action string equal

EEM アプレットがトリガーされたときに 2 個の文字列が等しいかどうかを検証するアクションを指定します。

action string first

EEM アプレットがトリガーされたときに string2 内に最初に string1 が見つかったインデックスを返すアクションを指定します。

action string index

EEM アプレットがトリガーされたときに与えられたインデックス値で指定される文字を返すアクションを指定します。

action string last

EEM アプレットがトリガーされたときに string 2 内に最後に string1 が見つかったインデックスを返すアクションを指定します。

action string length

EEM アプレットがトリガーされたときに文字列の文字数を返すアクションを指定します。

action string match

EEM アプレットがトリガーされたときに文字列がパターンに一致すれば、$_string_result に 1 を返すアクションを指定します。

action string range

EEM アプレットがトリガーされたときに文字列の文字の範囲を格納するアクションを指定します。

action string replace

EEM アプレットがトリガーされたときに指定された文字列の文字の範囲を置き換えることで新しい文字列を格納するアクションを指定します。

action string tolower

EEM アプレットがトリガーされたときに文字列の特定の範囲の文字を小文字で格納するアクションを指定します。

action string toupper

EEM アプレットがトリガーされたときに文字列の特定の範囲の文字を大文字で格納するアクションを指定します。

action string trim

EEM アプレットがトリガーされたときに文字列をトリムするアクションを指定します。

action string trimleft

EEM アプレットがトリガーされたときに、ある文字列の文字を別の文字列の左端からトリムするアクションを指定します。

action string trimright

EEM アプレットがトリガーされたときに、ある文字列の文字を別の文字列の右端からトリムするアクションを指定します。

action subtract

EEM アプレットがトリガーされたときに、別の値から変数の値を引きます。

action while

EEM アプレットがトリガーされたときに条件付きブロックのループの開始を特定するアクションを指定します。

イベント SNMP オブジェクトの設定:例

次の例は、SET オペレーション、および、設定される値が $_snmp_value にありスクリプトで管理されることを示します。次の例は、oid とその値を、後で取得されるコンテキストとして格納します。

event manager applet snmp-object1
description "APPLET SNMP-OBJ-1"
event snmp-object oid 1.3.6.1.2.1.31.1.1.1.18 type string sync no skip no istable yes default 0 action 1 syslog msg "SNMP-OBJ1:TRIGGERED" facility "SNMP_OBJ"
action 2 context save key myoid variable "_snmp_oid"
action 3 context save key myvalue variable "_snmp_value"

EEM アプレットの説明の設定:例

次に、簡易ネットワーク管理プロトコル(SNMP)のサンプリングによって実行される Embedded Event Manager(EEM)アプレットの説明を追加または変更する例を示します。

event manager applet test
description "This applet looks for the word count in syslog messages"
event syslog pattern "count"
action 1 syslog msg hi

関連情報

EEM の概要については、「 Embedded Event Manager Overview 」の章を参照してください。

Tcl を使用して EEM ポリシーを記述する方法については、「 Writing Embedded Event Manager Policies Using Tcl 」の章を参照してください。

その他の参考資料

ここでは、Cisco IOS CLI を使用した EEM ポリシーの記述に関する関連資料について説明します。

関連資料

関連トピック
参照先

Cisco IOS コマンド

『Cisco IOS Master Commands List, All Releases』

ネットワーク管理コマンド(EEM コマンドを含む):コマンド構文の詳細、デフォルト設定、コマンド モード、コマンド履歴、使用上のガイドライン、および例

『Cisco IOS Network Management Command Reference』

Embedded Event Manager 概要

Embedded Event Manager Overview 」の章

Tcl を使用して Embedded Event Manager ポリシーを記述する

Writing Embedded Event Manager Policies Using Tcl 」の章

拡張オブジェクト トラッキングの設定

Configuring Enhanced Object Tracking 」の章

規格

規格
タイトル

新しい規格または変更された規格はサポートされていません。また、既存の規格に対するサポートに変更はありません。

--

MIB

MIB
MIB リンク

CISCO-EMBEDDED-EVENT-MGR-MIB

選択したプラットフォーム、Cisco IOS Release、およびフィーチャ セットの MIB を検索してダウンロードする場合は、次の URL にある Cisco MIB Locator を使用します。

http://www.cisco.com/go/mibs

RFC

RFC
タイトル

新しい RFC または変更された RFC はサポートされていません。また、既存の RFC に対するサポートに変更はありません。

--

シスコのテクニカル サポート

説明
リンク

右の URL にアクセスして、シスコのテクニカル サポートを最大限に活用してください。

以下を含むさまざまな作業にこの Web サイトが役立ちます。
・テクニカル サポートを受ける
・ソフトウェアをダウンロードする
・セキュリティの脆弱性を報告する、またはシスコ製品のセキュリティ問題に対する支援を受ける
・ツールおよびリソースへアクセスする
- Product Alert の受信登録
- Field Notice の受信登録
- Bug Toolkit を使用した既知の問題の検索
・Networking Professionals(NetPro)コミュニティで、技術関連のディスカッションに参加する
・トレーニング リソースへアクセスする
・TAC Case Collection ツールを使用して、ハードウェアや設定、パフォーマンスに関する一般的な問題をインタラクティブに特定および解決する

この Web サイト上のツールにアクセスする際は、Cisco.com のログイン ID およびパスワードが必要です。

http://www.cisco.com/cisco/web/support/index.html

Cisco IOS CLI を使用した EEM ポリシー記述の機能情報

表 7 に、この章に記載されている機能および具体的な設定情報へのリンクを示します。表には、Cisco IOS Release 12.3(14)T、12.2(25)S、12.0(26)S、12.2(18)SXF4、12.2(28)SB、12.2(33)SRA、12.2(33)SXH、12.2(33)SXI、12.4(20)T、12.4(22)T、15.0(1)M、12.2(33)SRE 以降のリリースで導入または変更された機能だけを記載しています。

ご使用の Cisco IOS ソフトウェア リリースによっては、コマンドの中に一部使用できないものがあります。特定のコマンドに関するリリース情報については、コマンド リファレンス マニュアルを参照してください。

Cisco Feature Navigator を使用すると、プラットフォームおよびソフトウェア イメージの各サポート情報を検索できます。Cisco Feature Navigator により、どの Cisco IOS および Catalyst OS ソフトウェア イメージが特定のソフトウェア リリース、フィーチャ セット、またはプラットフォームをサポートするか調べることができます。Cisco Feature Navigator には、 http://www.cisco.com/go/cfn からアクセスします。Cisco.com のアカウントは必要ありません。


表 7 には、一連の Cisco IOS ソフトウェア リリースのうち、特定の機能が初めて導入された Cisco IOS ソフトウェア リリースだけが記載されています。その機能は、特に断りがない限り、それ以降の一連の Cisco IOS ソフトウェア リリースでもサポートされます。


表 7 Cisco IOS CLI を使用した EEM ポリシー記述の機能情報

機能名
リリース
機能情報

Embedded Event Manager 1.0

12.0(26)S
12.3(4)T

EEM 1.0 は、Embedded Event Manager アプレット作成を SNMP イベント ディテクタ Syslog イベント ディテクタとともに追加しました。EEM 1.0 は、次のアクションも追加しました。優先化された syslog メッセージの生成、Cisco CNS デバイスによるアップストリーム処理に対し CNS イベントの生成、Cisco IOS ソフトウェアのリロード、および完全冗長ハードウェア構成におけるセカンダリ プロセッサへのスイッチング。

この機能に関する詳細については、次の各項を参照してください。

「Embedded Event Manager ポリシー」

「EEM アプレットに使用される Embedded Event Manager 組み込み環境変数」

「Embedded Event Manager アプレットの登録と定義」

「Embedded Event Manager の登録済みポリシー表示」

この機能によって、 action cns-event action force-switchover action reload action syslog debug event manager event manager applet event snmp event syslog show event manager policy registered の各コマンドが追加されました。

Embedded Event Manager 2.0

12.2(25)S

EEM 2.0 は、Application-Specific イベント ディテクタ、Counter イベント ディテクタ、Interface Counter イベント ディテクタ、Timer イベント ディテクタ、および watchdog イベント ディテクタを追加しました。新しいアクションには、名前付きカウンタの変更、アプリケーション固有イベントのパブリッシュ、SNMP トラップの生成が含まれました。環境変数定義機能、および、Tcl を使用して記述されたサンプル EEM ポリシーの実行機能が追加され、2 個のサンプル ポリシーがソフトウェアに追加されました。

この機能に関する詳細については、次の各項を参照してください。

「Embedded Event Manager ポリシー」

「EEM アプレットに使用される Embedded Event Manager 組み込み環境変数」

「手動で実行する Embedded Event Manager ポリシーの登録と定義」

「Embedded Event Manager ポリシーの登録解除」

「すべての Embedded Event Manager ポリシー実行の一時停止」

「Embedded Event Manager ポリシーの履歴データ表示」

「Embedded Event Manager アプレット設定:例」

「Embedded Event Manager Watchdog System Monitor(Cisco IOS)イベント ディテクタの設定:例」

この機能によって、 action counter action publish-event action snmp-trap event application event counter event interface event ioswdsysmon event manager environment event manager history size event manager policy event manager scheduler suspend event timer show event manager environment show event manager history events show event manager history traps show event manager policy available show event manager policy pending の各コマンドが追加されました。

Embedded Event Manager 2.1

12.3(14)T 12.2(18)SXF5
12.2(28)SB
12.2(33)SRA

EEM 2.1 は複数の新しいイベント ディテクタおよびアクション、EEM ポリシーを手動で起動する新しい機能と複数の共存ポリシーを起動する機能を追加しました。簡易ネットワーク管理プロトコル(SNMP)イベント ディテクタ比率ベース イベントのサポートが、Tool Command Language(Tcl)を使用してポリシーを作成する機能として導入されました。

この機能に関する詳細については、次の各項を参照してください。

「Embedded Event Manager ポリシー」

「EEM アプレットに使用される Embedded Event Manager 組み込み環境変数」

「手動で実行する Embedded Event Manager ポリシーの登録と定義」

「Embedded Event Manager アプレット設定:例」

この機能によって、 action cli action counter action info action mail action policy debug event manager event cli event manager directory user event manager policy event manager run event manager scheduler script event manager session cli username event none event oir event snmp event syslog set (EEM)、 show event manager directory user show event manager policy registered show event manager session cli username の各コマンドが追加されました。

Embedded Event Manager 2.1(ソフトウェア モジュール方式)

12.2(18)SXF4Cisco IOS ソフトウェア モジュール方式イメージ

EEM 2.1 ソフトウェア モジュール方式イメージは、GOLD、system manager、および WDSysMon(Cisco IOS Software Modularity watchdog)イベント ディテクタ、および Cisco IOS ソフトウェア モジュール方式プロセスとプロセス メトリックを表示する機能を導入しました。

この機能に関する詳細については、次の各項を参照してください。

「Embedded Event Manager ポリシー」

「EEM アプレットに使用される Embedded Event Manager 組み込み環境変数」

「Embedded Event Manager アプレット設定:例」

この機能により、 event gold event process show event manager metric process の各コマンドが導入されました。

(注) EEM 2.1 ソフトウェア モジュール方式イメージは、Resource イベント ディテクタおよび RF イベント ディテクタを EEM 2.2 に追加しましたが、EOT イベント ディテクタ、またはトラッキング対象オブジェクトの読み込みおよび設定のアクションをサポートしません。

Embedded Event Manager 2.2

12.4(2)T
12.2(31)SB3
12.2(33)SRB

EEM 2.2 は、Enhanced Object Tracking、Resource、および RF イベント ディテクタを追加しました。トラッキング対象オブジェクトの状態の読み取りおよび設定のアクションも追加されました。

この機能に関する詳細については、次の各項を参照してください。

「Embedded Event Manager ポリシー」

「EEM アプレットに使用される Embedded Event Manager 組み込み環境変数」

「Embedded Event Manager を使用したスタブ オブジェクトの設定とトラッキング」

「Embedded Event Manager を使用したスタブ オブジェクトの設定とトラッキング:例」

この機能により、 action track read action track set default-state event resource event rf event track show track track stub-object の各コマンドが追加されました。

SNMP イベント ディテクタ delta 環境変数

12.4(11)T

新しい SNMP イベント ディテクタ環境変数、_snmp_oid_delta_val が追加されました。

これはマイナーな拡張です。マイナーな拡張は、通常 Feature Navigator に記載されません。

Embedded Event Manager 2.3

12.2(33)SXH
12.2(33)SB

EEM 2.3 では、Cisco Catalyst 6500 シリーズ スイッチ上の Generic Online Diagnostics (GOLD) イベント ディテクタに関連する新しい機能が追加されました。

GOLD テスト障害および条件の反応を改善するため、 event gold コマンドが拡張され、 action-notify testing-type test-name test-id consecutive-failure platform-action および maxrun の各 Tcl キーワードが追加されました。

event gold コマンドの拡張された機能を説明するために、次の項がアップデートされました。

「EEM アプレットに使用される Embedded Event Manager 組み込み環境変数」

検出されたイベントのプラットフォーム全体、および、テスト特有の GOLD イベント ディテクタ情報へのアクセスを実現するために、読み取り専用変数が GOLD イベント ディテクタ カテゴリに追加されました。

Embedded Event Manager 2.4

12.4(20)T
12.2(33)SXI
12.2(33)SRE

EEM 2.4 は Cisco IOS Release 12.4(20)T 以降のリリースでサポートされ、複数の新しい機能が追加されました。

この機能に関する詳細については、次の各項を参照してください。

「Embedded Event Manager ポリシー」

「EEM アプレットに使用される Embedded Event Manager 組み込み環境変数」

「Embedded Event Manager を使用したスタブ オブジェクトの設定とトラッキング」

「Embedded Event Manager を使用したスタブ オブジェクトの設定とトラッキング:例」

この機能により、次のコマンドが追加されました。

attribute(EEM) correlate event manager detector rpc event manager directory user repository event manager update user policy event manager scheduler clear event manager update user policy event owner event rpc event snmp-notification show event manager detector show event manager version trigger(EEM)

Embedded Event Manager 3.0

12.4(22)T
12.2(33)SRE

EEM 3.0 は、Cisco IOS Release 12.4(22)T 以降のリリースでサポートされ、複数の新しい機能が追加されました。

この機能に関する詳細については、次の各項を参照してください。

「Embedded Event Manager ポリシー」

「EEM アプレットに使用される Embedded Event Manager 組み込み環境変数」

「Embedded Event Manager を使用したスタブ オブジェクトの設定とトラッキング」

「Embedded Event Manager を使用したスタブ オブジェクトの設定とトラッキング:例」

この機能により、次のコマンドが導入または変更されました。

action add action append action break action comment action context retrieve action context save action continue action decrement action divide action else action elseif action end action exit action foreach action gets action if action if goto action increment action info type interface-names action info type snmp getid action info type snmp inform action info type snmp oid action info type snmp trap action info type snmp var action multiply action puts action regexp action set (EEM) action string compare action string equal action string first action string index action string last action string length action string match action string range action string replace action string tolower action string toupper action string trim action string trimleft action string trimright action subtract action while event cli event ipsla event manager detector routing event manager scheduler event manager scheduler clear event manager scheduler hold event manager scheduler modify event manager scheduler release event nf event routing show event manager policy active show event manager policy pending 、および show event manager scheduler

Embedded Event Manager 3.1

15.0(1)M

EEM 3.1 は、Cisco IOS Release 15.0(1)M 以降のリリースでサポートされ、複数の新しい機能が追加されました。

この機能に関する詳細については、次の各項を参照してください。

「Embedded Event Manager ポリシー」

「EEM アプレットに使用される Embedded Event Manager 組み込み環境変数」

「Embedded Event Manager を使用したスタブ オブジェクトの設定とトラッキング」

「Embedded Event Manager を使用したスタブ オブジェクトの設定とトラッキング:例」

この機能により、次のコマンドが導入または変更されました。

action syslog description event manager applet event manager policy event snmp-notification event snmp-object show event manager policy registered および show event manager policy available


© 2005-2010 Cisco Systems, Inc.
All rights reserved.

Copyright © 2005-2011, シスコシステムズ合同会社.
All rights reserved.