EEM 情報
EEM はデバイス上で発生するイベントを監視し、設定に基づいて各イベントの回復またはトラブルシューティングのためのアクションを実行します。
ここでは、次の内容について説明します。
• 「EEM の概要」
• 「ポリシー」
• 「イベント文」
• 「アクション文」
• 「VSH スクリプト ポリシー」
• 「環境変数」
• 「ハイ アベイラビリティ」
• 「仮想化サポート」
EEM の概要
EEM は次の 3 種類の主要コンポーネントからなります。
• イベント文 -- 別の Cisco NX-OS コンポーネントから監視し、アクション、回避策、または通知が必要になる可能性のあるイベント。
• アクション文 -- E メールの送信、インターフェイスのディセーブル化など、イベントから回復するために EEM が実行できるアクション。
• ポリシー -- イベントのトラブルシューティングまたはイベントからの回復を目的とした 1 つまたは複数のアクションとペアになったイベント。
ポリシー
EEM ポリシーは、イベント文および 1 つまたは複数のアクション文からなります。イベント文では、求めるイベントとともに、イベントのフィルタリング特性を定義します。アクション文では、イベントの発生時に EEM が実行するアクションを定義します。
図10-1 に、EEM ポリシーの基本的な 2 種類の文を示します。
図10-1 EEM ポリシー文
EEM ポリシーを設定するには、CLI または VSH スクリプトを使用します。
EEM からデバイス全体のポリシー管理ビューが得られます。スーパーバイザ上で EEM ポリシーを設定すると、EEM がイベント タイプに基づいて、正しいモジュール(複数可)にポリシーをプッシュします。EEM はモジュール上でローカルに、またはスーパーバイザ上で(デフォルトのオプション)、トリガー イベントに対応するアクションを実行します。
EEM はスーパーバイザ上でイベント ログを維持します。
Cisco NX-OS には、設定済みのさまざまなシステム ポリシーがあります。これらのシステム ポリシーでは、デバイスに関連する多数の一般的なイベントおよびアクションが定義されています。システム ポリシー名は、2 個の下線記号(__)から始まります。
使用するネットワークに合わせてユーザ ポリシーを作成できます。ユーザ ポリシーを作成すると、そのポリシーと同じイベントに関連するシステム ポリシー アクションを EEM が開始したあとで、ユーザ ポリシーで指定したアクションが行われます。ユーザ ポリシーを設定する場合には、「CLI によるユーザ ポリシーの定義」を参照してください。
一部のシステム ポリシーは上書きすることもできます。設定した上書き変更がシステム ポリシーの代わりになります。イベントまたはアクションの上書きが可能です。
設定済みのシステム ポリシーを表示して、上書き可能なポリシーを判別するには、 show event manager system-policy コマンドを使用します。
上書きポリシーを設定する場合には、「ポリシーの上書き」を参照してください。
(注) show running-config eem コマンドを使用して、各ポリシーの設定を確認してください。イベント文が指定されていて、アクション文が指定されていない上書きポリシーを設定した場合、アクションは開始されません。また、障害も通知されません。
(注) 上書きポリシーには、必ずイベント文を指定します。上書きポリシーにイベント文が含まれていないと、システム ポリシーで可能性のあるすべてのイベントが上書きされます。
イベント文
イベントは、回避、通知など、何らかのアクションが必要なデバイス アクティビティです。これらのイベントは通常、インターフェイスやファンの誤動作といったデバイスの障害に関連します。
EEM ではイベント フィルタを定義して、クリティカル イベントまたは指定された時間内で繰り返し発生したイベントだけが関連付けられたアクションのトリガーになるようにします。
図10-2 に、EEM が処理するイベントを示します。
図10-2 EEM の概要
イベント文では、ポリシー実行のトリガーになるイベントを指定します。設定できるイベント文は、1 つのポリシーに 1 つだけです。
EEM はイベント文に基づいてポリシーをスケジューリングし、実行します。EEM はイベントおよびアクション コマンドを検証し、定義に従ってコマンドを実行します。
アクション文
アクション文では、ポリシーによって開始されるアクションを記述します。各ポリシーに複数のアクション文を設定できます。ポリシーにアクションを関連付けなかった場合、EEM はイベント観察を続けますが、アクションは実行されません。
EEM がアクション文でサポートするアクションは、次のとおりです。
• CLI コマンドの実行
• カウンタのアップデート
• 例外の記録
• モジュールの強制的シャットダウン
• デバイスのリロード
• 電力のバジェット超過による特定モジュールのシャットダウン
• syslog メッセージの生成
• Call Home イベントの生成
• SNMP 通知の生成
• システム ポリシー用デフォルト アクションの使用
(注) ユーザ ポリシーまたは上書きポリシーの中に、相互に否定したり、関連付けられたシステム ポリシーに悪影響を与えるようなアクション文がないかどうかを確認してください。
VSH スクリプト ポリシー
テキスト エディタを使用し、VHS スクリプトでポリシーを作成することもできます。このようなポリシーにも、他のポリシーと同様、イベント文およびアクション文(複数可)を使用します。また、これらのポリシーでシステム ポリシーを補うことも上書きすることもできます。スクリプト ポリシーの作成後、そのポリしイーをデバイスにコピーしてアクティブにします。スクリプト ポリシーを設定する場合には、「VSH スクリプトによるポリシーの定義」を参照してください。
環境変数
すべてのポリシーに使用できる、EEM の環境変数を定義できます。環境変数は、複数のポリシーで使用できる共通の値を設定する場合に便利です。たとえば、外部 E メール サーバの IP アドレスに対応する環境変数を作成できます。
パラメータ置換フォーマットを使用することによって、アクション文で環境変数を使用できます。
例10-1 に、「EEM action」というリセット理由を指定し、モジュール 1 を強制的にシャットダウンするアクション文の例を示します。
例10-1 アクション文
switch (config-eem-policy)# action 1.0 forceshut module 1 reset-reson “EEM action.”
シャットダウンの理由に default-reason という環境変数を定義すると、例10-2 のように、リセット理由を環境変数に置き換えることができます。
例10-2 環境変数を使用するアクション文
switch (config-eem-policy)# action 1.0 foreshut module 1 reset-reason $default-reason
この環境変数は、任意のポリシーで再利用できます。環境変数の詳細については、「環境変数の定義」を参照してください
ハイ アベイラビリティ
Cisco NX-OS は、EEM のステートレス リスタートをサポートします。リブートまたはスーパーバイザ スイッチオーバーのあとに、Cisco NX-OS は実行コンフィギュレーションを適用します。
仮想化サポート
ログインした VDC(Virtual Device Context; 仮想デバイス コンテキスト)で、EEM を設定します。デフォルトでは、Cisco NX-OS はデフォルトの VDC が使用されるようにします。モジュールベースのイベントに対応するポリシーを設定する場合は、この VDC を使用する必要があります。
すべての VDC ですべてのアクションまたはイベントを確認できるわけではありません。ポリシーを設定するには、network-admin または vdc-admin の権限が必要です。
VDC の詳細については、『 Cisco NX-OS Virtual Device Context Configuration Guide, Release 4.0 』を参照してください。
設定時の注意事項および制約事項
EEM に関する設定時の注意事項および制約事項は、次のとおりです。
• ユーザ ポリシーまたは上書きポリシー内のアクション ステートメントが、相互に否定したり、関連付けられたシステム ポリシーに悪影響を与えるようなことがないようにする必要があります。
• イベント文が指定されていて、アクション文が指定されていない上書きポリシーを設定した場合、アクションは開始されません。また、障害も通知されません。
• 上書きポリシーにイベント文が含まれていないと、システム ポリシーで可能性のあるすべてのイベントが上書きされます。
EEM の設定
ここでは、次の内容について説明します。
• 「CLI によるユーザ ポリシーの定義」
• 「VSH スクリプトによるポリシーの定義」
• 「VSH スクリプト ポリシーの登録およびアクティブ化」
• 「ポリシーの上書き」
操作の前に
正しい VDC を使用していることを確認します(または、 switchto vdc コマンドを使用します)。
管理者の権限でログインしていることを確認します。
手順概要
1. config t
2. event manager applet applet-nam e
3. description policy-description
4. event event-statement
5. action number action-statement
(アクション文が複数ある場合は、ステップ 5 を繰り返す)
6. show event manager policy name
7. copy running-config startup-config
詳細な手順
|
|
ステップ 1 |
config t 例: switch# config t switch(config)# |
コンフィギュレーション モードを開始します。 |
ステップ 2 |
event manager applet applet-name 例: switch(config)# event manager applet monitorShutdown switch(config-applet)# |
EEM にアプレットを登録し、アプレット コンフィギュレーション モードを開始します。 applet-name は大文字と小文字を区別し、最大 32 の英数字を使用できます。 |
ステップ 3 |
description policy-description 例: switch(config-applet)# description “Monitors interface shutdown.” |
(任意)ポリシーの説明になるストリングを設定します。ストリングには最大 80 文字の英数字を使用できます。ストリングは引用符で囲みます。 |
ステップ 4 |
event event-statement 例: switch(config-applet)# event cli match “shutdown” |
ポリシーのイベント文を設定します。「イベント文の設定」を参照してください。 |
ステップ 5 |
action action-statement 例: switch(config-applet)# action 1.0 cli “show interface e 3/1“ |
ポリシーのアクション文を設定します。「アクション文の設定」を参照してください。 アクション文が複数の場合は、ステップ 5 を繰り返します。 |
ステップ 6 |
show event manager policy name 例: switch(config-applet)# show event manager policy monitorShutdown |
(任意)設定したポリシーに関する情報を表示します。 |
ステップ 7 |
copy running-config startup-config 例: switch(config)# copy running-config startup-config |
(任意)この設定変更を保存します。 |
イベント文の設定
イベント文を設定するには、EEM コンフィギュレーション モードで次のいずれかのコマンドを使用します。
|
|
event cli match expression [ count repeats | time seconds ] 例: switch(config-applet)# event cli match “shutdown” |
正規表現と一致する CLI コマンドが入力された場合に、イベントを発生させます。 repeats の範囲は 0 ~ 4294967295 です。time の範囲は 0 ~ 4294967295 秒です。 |
event counter name counter entry-val entry entry-op { eq | ge | gt | le | lt | ne } [ exit-val exit exit-op { eq | ge | gt | le | lt | ne }] 例: switch(config-applet)# event counter name mycounter entry-val 20 gt |
カウンタが開始のしきい値を超えた場合にイベントを発生させます(大なり、小なりなど、開始演算子に基づく)。イベントはただちにリセットされます。任意で、カウンタが終了のしきい値を超えたあとでリセットされるように、イベントを設定できます。 counter name は大文字と小文字を区別し、最大 32 の英数字を使用できます。 entry および exit の値の範囲は 0 ~ 2147483647 です。 |
event fanabsent [ fan number ] time seconds 例: switch(config-applet)# event fanabsent time 300 |
秒数で設定された時間を超えて、ファンがデバイスから取り外されている場合に、イベントを発生させます。 number の範囲は 1 ~ 4 です。 seconds の範囲は 0 ~ 4294967295 です。 |
event fanbad [ fan number ] time seconds 例: switch(config-applet)# event fanbad time 3000 |
秒数で設定された時間を超えて、ファンが故障状態の場合に、イベントを発生させます。 number の範囲は 1 ~ 4 です。 seconds の範囲は 0 ~ 4294967295 です。 |
event gold module { slot | all } test test-name [ severity { major | minor | moderate }] testing-type { bootup | monitoring | ondemand | scheduled } consecutive-failure count 例: switch(config-applet)# event gold module 2 test ASICRegisterCheck testing-type ondemand consecutive-failure 2 |
名前で指定されたオンライン診断テストが、設定された回数だけ連続して、設定された重大度で失敗した場合に、イベントを発生させます。 slot の範囲は 1 ~ 10 です。 test-name は設定済みオンライン診断テストの名前です。 count の範囲は 1 ~ 1000 です。 |
event memory { critical | minor | severe } 例: switch(config-applet)# event memory critical |
メモリのしきい値を超えた場合にイベントを発生させます。 |
event module-failure type failure-type module { slot | all } count repeats [ time seconds ] 例: switch(config-applet)# event module-failure type lc-failed module 3 count 1 |
モジュールが設定された障害タイプになった場合に、イベントを発生させます。障害タイプについては、『 Cisco NX-OS System Management Command Reference, Release 4.0 』を参照してください。 slot の範囲は 1 ~ 10 です。 repeats の範囲は 1 ~ 4294967295 です。 seconds の範囲は 1 ~ 4294967295 です。 |
event oir { fan | module | powersupply } { anyoir | insert | remove } [ number ] 例: switch(config-applet)# event oir fan remove 4 |
設定されたデバイス構成要素(ファン、モジュール、または電源モジュール)がデバイスに取り付けられた場合、またはデバイスから取り外された場合に、イベントを発生させます。任意で、ファン、モジュール、または電源モジュールの具体的な番号を設定できます。 number の範囲は次のとおりです。 • ファン番号 -- 範囲は 1 ~ 4 • モジュール番号 -- 範囲は 1 ~ 10 • 電源モジュール番号 -- 範囲は 1 ~ 3 |
event policy-default count repeats [ time seconds ] 例: switch(config-applet)# event policy-default count 3 |
システム ポリシーで設定されているイベントを使用します。このオプションは、ポリシーを上書きする場合に使用します。 repeats の範囲は 1 ~ 4294967295 です。 seconds の範囲は 1 ~ 4294967295 です。 |
event poweroverbudget [ time seconds ] 例: switch(config-applet)# event poweroverbudget |
電力バジェットが設定された電源モジュールの容量を超えた場合に、イベントを発生させます。 |
event snmp oid oid get-type { exact | next } entry-op { eq | ge | gt | le | lt | ne } entry -val entry [ exit-comb { and | or }] exit-op { eq | ge | gt | le | lt | ne } exit -val exit exit-time time polling-interval interval 例: switch(config-applet)# event snmp oid 1.3.6.1.2.1.31.1.1.1.6 get-type next entry-op lt 300 entry-val 0 exit-op eq 400 exit-time 30 polling-interval 300 |
SNMP OID が開始のしきい値を超えた場合にイベントを発生させます(大なり、小なりなど、開始演算子に基づく)。イベントはただちにリセットされます。または任意で、カウンタが終了のしきい値を超えたあとでリセットされるように、イベントを設定できます。OID はドット付き10 進表記です。 entry および exit の値の範囲は 0 ~ 18446744073709551615 です。time および interval 範囲は 0 ~ 2147483647 秒です。 |
event storm-control 例: switch(config-applet)# event storm-control |
ポート上のトラフィックが設定されたストーム制御しきい値を超えた場合に、イベントを発生させます。 |
event temperature [ module slot ] [s ensor number ] threshold { any | major | minor } 例: switch(config-applet)# event temperature module 2 threshold any |
温度センサが設定されたしきい値を超えた場合に、イベントを発生させます。 slot の範囲は 1 ~ 10 です。sensor の範囲は 1 ~ 18 です。 |
event track object-number state { any | down | up } 例: switch(config-applet)# event track 1 state down |
トラッキング対象オブジェクトが設定された状態になった場合に、イベントを発生させます。 object-number の範囲は 1 ~ 500 です。 |
アクション文の設定
アクション文を設定するには、EEM コンフィギュレーション モードで次のいずれかのコマンドを使用します。
|
|
action number [ . number2 ] cli command1 [command2...] [ local ] 例: switch(config-applet)# action 1.0 cli “show interface e 3/1“ |
設定された CLI コマンドを実行します。任意で、イベントが発生したモジュール上でコマンドを実行できます。アクション ラベルのフォーマットは number1.number2 です。 number は 16 桁までの任意の数値にできます。 number2 の範囲は 0 ~ 9 です。 |
action number [ . number2 ] counter name counter value val op { dec | inc | nop | set } 例: switch(config-applet)# action 2.0 counter name mycounter value 20 op inc |
設定された値および操作でカウンタを変更します。アクション ラベルのフォーマットは number1.number2 です。 number は 16 桁までの任意の数値にできます。 number2 の範囲は 0 ~ 9 です。 counter name は大文字と小文字を区別し、最大 32 の英数字を使用できます。 val は 0 ~ 2147483647 の整数または置換パラメータにできます。 |
action number [ . number2 ] event-default 例: switch(config-applet)# action 1.0 event-default. |
関連付けられたイベントのデフォルト アクションを実行します。アクション ラベルのフォーマットは number1.number2 です。 number は 16 桁までの任意の数値にできます。 number2 の範囲は 0 ~ 9 です。 |
action number [ . number2 ] forceshut [ module slot | xbar xbar- number ] reset-reason seconds 例: switch(config-applet)# action 1.0 forceshut module 2 reset-reason “flapping links” |
モジュール、クロスバー、またはシステム全体を強制的にシャットダウンします。アクション ラベルのフォーマットは number1.number2 です。 number は 16 桁までの任意の数値にできます。 number2 の範囲は 0 ~ 9 です。 slot の範囲は 1 ~ 10 または置換パラメータです。 xbar-number の範囲は 1 ~ 4 または置換パラメータです。 リセット理由は、引用符で囲んだ最大 80 文字の英数字ストリングです。 |
action number [ . number2 ] overbudgetshut [ module slot [ - slot ]] 例: switch(config-applet)# action 1.0 overbudgetshut module 3-5 |
電力バジェット超過の問題により、1 つまたは複数のモジュールまたはシステム全体を強制的にシャットダウンします。 number は 16 桁までの任意の数値にできます。 number2 の範囲は 0 ~ 9 です。 slot の範囲は 1 ~ 10 または置換パラメータです。 |
action number [ . number2 ] policy-default 例: switch(config-applet)# action 1.0 policy-default. |
上書きしているポリシーのデフォルト アクションを実行します。アクション ラベルのフォーマットは number1.number2 です。 number は 16 桁までの任意の数値にできます。 number2 の範囲は 0 ~ 9 です。 |
action number [ . number2 ] reload [ module slot [ - slot ]] 例: switch(config-applet)# action 1.0 reload module 3-5 |
1 つまたは複数のモジュールまたはシステム全体を強制的にリロードします。 number は 16 桁までの任意の数値にできます。 number2 の範囲は 0 ~ 9 です。 slot の範囲は 1 ~ 10 または置換パラメータです。 |
action number [ . number2 ] snmp-trap {[ intdata1 data [ intdata2 data ] [strdata string]} 例: switch(config-applet)# action 1.0 snmp-trap strdata “temperature problem” |
設定されたデータを使用して SNMP トラップを送信します。 number は最大 16 桁の任意の数にできます。 number2 の範囲は 0 ~ 9 です。 data 引数は、最大 80 桁の任意の数にできます。 string には最大 80 文字の英数字を使用できます。 |
action number [ . number2 ] syslog [ priority prio-val ] msg error-message 例: switch(config-applet)# action 1.0 syslog priority notifications msg “cpu high” |
設定されたプライオリティで、カスタマイズした syslog メッセージを送信します。 number は最大 16 桁の任意の数にできます。 number2 の範囲は 0 ~ 9 です。 error-message には最大 80 文字の英数字を引用符で囲んで使用できます。 |
VSH スクリプトによるポリシーの定義
VSH スクリプトを使用してポリシーを定義できます。
操作の前に
正しい VDC を使用していることを確認します(または、 switchto vdc コマンドを使用します)。
管理者の権限でログインしていることを確認します。
スクリプト名がスクリプト ファイル名と同じ名前であることを確認します。
詳細な手順
ステップ 1 テキスト エディタで、ポリシーを定義する CLI コマンド リストを指定します。
ステップ 2 テキスト ファイルに名前をつけて保存します。
ステップ 3 ファイルを次のシステム ディレクトリにコピーします。
bootflash://eem/user_script_policies
VSH スクリプト ポリシーの登録およびアクティブ化
VSH スクリプトで定義したポリシーを登録してアクティブにできます。
操作の前に
正しい VDC を使用していることを確認します(または、 switchto vdc コマンドを使用します)。
管理者の権限でログインしていることを確認します。
手順概要
1. config t
2. event manager policy policy-script
3. show event manager policy name
4. copy running-config startup-config
詳細な手順
|
|
ステップ 1 |
config t 例: switch# config t switch(config)# |
コンフィギュレーション モードを開始します。 |
ステップ 2 |
event manager policy policy-script 例: switch(config)# event manager policy moduleScript |
EEM スクリプト ポリシーを登録してアクティブにします。 policy-script は大文字と小文字を区別し、最大 32 の英数字を使用できます。 |
ステップ 3 |
show event manager policy name 例: switch(config-applet)# show event manager policy moduleScript |
(任意)設定したポリシーに関する情報を表示します。 |
ステップ 4 |
copy running-config startup-config 例: switch(config)# copy running-config startup-config |
(任意)この設定変更を保存します。 |
ポリシーの上書き
システム ポリシーは上書き可能です。
操作の前に
正しい VDC を使用していることを確認します(または、 switchto vdc コマンドを使用します)。
管理者の権限でログインしていることを確認します。
上書きするポリシーのイベントおよびデフォルト アクションがわかっていることを確認します。
手順概要
1. config t
2. show event manager policy-state system-policy
3. event manager applet applet-nam e override system-policy
4. description policy-description
5. event event-statement
6. action number action-statement
(Repeat Step 6 for multiple action statements.)
7. show event manager policy-state name
8. copy running-config startup-config
詳細な手順
|
|
ステップ 1 |
config t 例: switch# config t switch(config)# |
コンフィギュレーション モードを開始します。 |
ステップ 2 |
show event manager policy-state system-policy 例: switch(config-applet)# show event manager policy-state __ethpm_link_flap Policy __ethpm_link_flap Cfg count : 5 Cfg time interval : 10.000000 (seconds) Hash default, Count 0 |
(任意)上書きするシステム ポリシーの情報をしきい値を含めて表示します。システム ポリシー名を突き止めるには、 show event manager system- policy コマンドを使用します。 |
ステップ 3 |
event manager applet applet-name override system-policy 例: switch(config)# event manager applet ethport override __ethpm_link_flap switch(config-applet)# |
システム ポリシーを上書きし、アプレット コンフィギュレーション モードを開始します。 applet- name は大文字と小文字を区別し、最大 32 の英数字を使用できます。 system-policy は、既存のシステム ポリシーの 1 つにする必要があります。 |
ステップ 4 |
description policy-description 例: switch(config-applet)# description “Overrides link flap policy.” |
(任意)ポリシーの説明になるストリングを設定します。ストリングには最大 80 文字の英数字を使用できます。ストリングは引用符で囲みます。 |
ステップ 5 |
event event-statement 例: switch(config-applet)# event policy-default count 2 time 1000 |
ポリシーのイベント文を設定します。「イベント文の設定」を参照してください。 |
ステップ 6 |
action action-statement 例: switch(config-applet)# action 1.0 syslog priority warnings msg “Link is flapping.” |
ポリシーのアクション文を設定します。「アクション文の設定」を参照してください。 アクション文が複数の場合は、ステップ 6 を繰り返します。 |
ステップ 7 |
show event manager policy-state name 例: switch(config-applet)# show event manager policy-state ethport |
(任意)設定したポリシーに関する情報を表示します。 |
ステップ 8 |
copy running-config startup-config 例: switch(config)# copy running-config startup-config |
(任意)この設定変更を保存します。 |
環境変数の定義
EEM ポリシーでパラメータとして機能する変数を定義できます。
操作の前に
正しい VDC を使用していることを確認します(または、 switchto vdc コマンドを使用します)。
手順概要
1. config t
2. event manager environment variable-name variable-value
3. show event manager environment
4. copy running-config startup-config
詳細な手順
|
|
ステップ 1 |
config t 例: switch# config t switch(config)# |
コンフィギュレーション モードを開始します。 |
ステップ 2 |
event manager environment variable-name variable-value 例: switch(config)# event manager environment emailto “admin@anyplace.com” |
EEM 用の環境変数を作成します。 variable-name は大文字と小文字を区別し、最大 32 の英数字を使用できます。 variable-value には最大 32 文字の英数字を引用符で囲んで使用できます。 |
ステップ 3 |
show event manager environment 例: switch(config-applet)# show event manager environment |
(任意)設定した環境変数に関する情報を表示します。 |
ステップ 4 |
copy running-config startup-config 例: switch(config)# copy running-config startup-config |
(任意)この設定変更を保存します。 |