EEM サンプル ポリシーの説明
この設定例では、一部の EEM サンプル ポリシーについて説明します。
-
ap_perf_test_base_cpu.tcl:EEM ポリシーの CPU パフォーマンスを測定するために実行されます。
-
no_perf_test_init.tcl:EEM ポリシーの CPU パフォーマンスを測定するために実行されます。
-
sl_intf_down.tcl:設定可能な syslog メッセージが記録されるときに実行されます。最大で 2 つまでの CLI コマンドを実行し、結果が E メールで送信されます。
-
tm_cli_cmd.tcl:設定可能な CRON エントリを使用して実行されます。設定可能な CLI コマンドが実行され、結果が電子メールで送信されます。
-
tm_crash_reporter.tcl:登録後の 5 秒間と、デバイスの起動後の 5 秒間に実行されます。トリガーされると、スクリプトによって、リロード原因の検索が試行されます。リロードの原因がクラッシュの場合、ポリシーによって、関連する
crashinfo ファイルが検索され、環境変数 _crash_reporter_url でユーザーによって指定された URL へ、この情報が送信されます。
-
tm_fsys_usage.tcl:このポリシーは、設定可能な CRON エントリを使用して実行され、ディスク領域の使用状況を監視します。ディスク領域の使用状況が、設定可能なしきい値を超えると、Syslog メッセージが表示されます。
サンプル ポリシーのイベント マネージャ環境変数
イベント マネージャ環境変数は、ポリシーの登録および実行の前に EEM ポリシーに対して外部定義された Tcl グローバル変数です。サンプルポリシーでは、電子メール環境変数のうち 3 つを設定する必要があります(電子メール変数のリストについては、上記のセクションを参照してください)。_email_cc
のみがオプションです。他の必須および任意の変数設定については、次の表で説明します。
次の表に、ap_perf_test_base_cpu.tcl サンプル ポリシーの実行前に設定する必要がある EEM 環境変数を示します。
Table 9. ap_perf_test_base_cpu.tcl ポリシーで使用される環境変数
環境変数
|
説明
|
例
|
_perf_iterations
|
測定を反復する回数。
|
100
|
_perf_cmd1
|
測定テストの一部として実行される最初の非インタラクティブ CLI コマンド。この変数は任意で、指定する必要はありません。
|
enable
|
_perf_cmd2
|
測定テストの一部として実行される 2 番目の非インタラクティブ CLI コマンド。_perf_cmd2 を使用するには、_perf_cmd1 を定義する必要があります。この変数は任意で、指定する必要はありません。
|
show version
|
_perf_cmd3
|
測定テストの一部として実行される 3 番目の非インタラクティブ CLI コマンド。_perf_cmd3 を使用するには、_perf_cmd1 を定義する必要があります。この変数は任意で、指定する必要はありません。
|
show interface counters protocol status
|
次の表に、no_perf_test_init.tcl サンプル ポリシーの実行前に設定する必要がある EEM 環境変数を示します。
Table 10. no_perf_test_init.tcl ポリシーで使用される環境変数
環境変数
|
説明
|
例
|
_perf_iterations
|
測定を反復する回数。
|
100
|
_perf_cmd1
|
測定テストの一部として実行される最初の非インタラクティブ CLI コマンド。この変数は任意で、指定する必要はありません。
|
enable
|
_perf_cmd2
|
測定テストの一部として実行される 2 番目の非インタラクティブ CLI コマンド。_perf_cmd2 を使用するには、_perf_cmd1 を定義する必要があります。この変数は任意で、指定する必要はありません。
|
show version
|
_perf_cmd3
|
測定テストの一部として実行される 3 番目の非インタラクティブ CLI コマンド。_perf_cmd3 を使用するには、_perf_cmd1 を定義する必要があります。この変数は任意で、指定する必要はありません。
|
show interface counters protocol status
|
次の表に、sl_intf_down.tcl サンプル ポリシーの実行前に設定する必要がある EEM 環境変数を示します。
Table 11. sl_intf_down.tcl ポリシーで使用される環境変数
環境変数
|
説明
|
例
|
_config_cmd1
|
実行される 1 番めのコンフィギュレーション コマンド。
|
interface Ethernet1/0
|
_config_cmd2
|
実行される 2 番めのコンフィギュレーション コマンド。この変数は任意で、指定する必要はありません。
|
no shutdown
|
_syslog_pattern
|
ポリシー実行時を決定するために syslog メッセージを比較するために使用する正規表現パターン マッチ文字列。
|
.*UPDOWN.*FastEthernet0/0.*
|
次の表に、tm_cli_cmd.tcl サンプル ポリシーの実行前に設定する必要がある EEM 環境変数を示します。
Table 12. tm_cli_cmd.tcl ポリシーで使用される環境変数
環境変数
|
説明
|
例
|
_cron_entry
|
ポリシーが実行されるときを決定する CRON 仕様。
|
0-59/1 0-23/1 * * 0-7
|
_show_cmd
|
ポリシーの実行時に実行される CLI コマンド。
|
show version
|
次の表に、tm_crash_reporter.tcl サンプル ポリシーの実行前に設定する必要がある EEM 環境変数を示します。
Table 13. tm_crash_reporter.tcl ポリシーで使用される環境変数
環境変数
|
説明
|
例
|
_crash_reporter_debug
|
tm_crash_reporter.tcl のデバッグ情報がイネーブルであるかどうかを決定する値。この変数は任意で、指定する必要はありません。
|
1
|
_crash_reporter_url
|
クラッシュ レポートが送信される URL 位置。
|
http://www.example.com/fm/interface_tm.cgi
|
次の表に、tm_fsys_usage.tcl サンプル ポリシーの実行前に設定する必要がある EEM 環境変数を示します。
Table 14. tm_fsys_usage.tcl ポリシーで使用される環境変数
環境変数
|
説明
|
例
|
_tm_fsys_usage_cron
|
event_register Tcl コマンド拡張で使用される CRON 仕様。指定されない場合、tm_fsys_usage.tcl ポリシーが 1 分に 1 回トリガーされます。この変数は任意で、指定する必要はありません。
|
0-59/1 0-23/1 * * 0-7
|
_tm_fsys_usage_debug
|
この変数が値 1 に設定された場合、システムのすべてのエントリのディスク使用率情報が表示されます。この変数は任意で、指定する必要はありません。
|
1
|
_tm_fsys_usage_freebytes
|
システムまたは特定のプレフィックスの空きバイト数しきい値。空きスペースが所定の値を下回ると、警告が表示されます。この変数は任意で、指定する必要はありません。
|
disk2:98000000
|
_tm_fsys_usage_percent
|
システムまたは特定のプレフィックスのディスク使用割合しきい値。ディスク使用割合が所定の割合を超えると、警告が表示されます。指定されない場合、すべてのシステムのデフォルトのディスク使用割合は、80% です。この変数は任意で、指定する必要はありません。
|
nvram:25 disk2:5
|
一部の EEM ポリシーの登録
ポリシーの登録後に EEM 環境変数が変更された場合、一部の EEM ポリシーは、登録を解除し、再登録する必要があります。ポリシーの開始時に表示される event_register_xxx ステートメントには、一部の EEM 環境変数が含まれ、このステートメントは、ポリシーが実行される条件の確立に使用されます。ポリシーの登録後に環境変数が変更された場合、条件は無効になります。いかなるエラーも回避するには、ポリシーの登録を解除し、再登録する必要があります。次の変数に影響が及ぼされます。
すべてのサンプル ポリシーの基本設定の詳細
Embedded Event Manager から電子メールを送信できるようにするには、hostname コマンドと ip domain-name コマンドを設定する必要があります。EEM 環境変数も設定する必要があります。Cisco IOS イメージのブート後、次の初期設定を使用し、ネットワークで適切な値を置き換えます。tm_fsys_usage サンプル ポリシーの環境変数(上の表を参照)はすべて任意で、ここではそのリストは示されていません。
hostname cpu
ip domain-name example.com
event manager environment _email_server ms.example.net
event manager environment _email_to username@example.net
event manager environment _email_from engineer@example.net
event manager environment _email_cc projectgroup@example.net
event manager environment _cron_entry 0-59/2 0-23/1 * * 0-7
event manager environment _show_cmd show event manager policy registered
event manager environment _syslog_pattern .*UPDOWN.*FastEthernet0/0
event manager environment _config_cmd1 interface Ethernet1/0
event manager environment _config_cmd2 no shutdown
event manager environment _crash_reporter_debug 1
event manager environment _crash_reporter_url
http://www.example.com/fm/interface_tm.cgi
end
サンプル ポリシーの使用
ここでは、次の設定シナリオを使用して、Tcl サンプル ポリシーを使用する方法について説明します。
Mandatory.go_*.tcl サンプル ポリシーの実行
GOLD EEM ポリシーの一部として実行される各テストに GOLD TCL スクリプトがあります。この TCL スクリプトをテスト用に変更したり、連続障害回数を指定することができ、また、デフォルトの是正アクションを変更することもできます。たとえば、他の
CLI ベースのアクションをリセットするのではなく、ラインカードの電源を切ることができます。
登録済みのテストごとにデフォルトの TCL スクリプトを使用できます。このスクリプトはシステムに登録し、デフォルトのアクションと一致させることができます。これは、これらのスクリプトによってオーバーライドできます。
次の表は、GOLD が EEM にインストールした必須ポリシーのリストです。各ポリシーが、カードのリセットやポートの無効化といった何らかのアクションを実行します。
GOLD Tcl スクリプト
|
テスト
|
Mandatory.go_asicsync.tcl
|
TestAsicSync
|
Mandatory.go_bootup.tcl
|
すべての ブートアップ テストに共通。
|
Mandatory.go_fabric.tcl
|
TestFabricHealth
|
Mandatory.go_fabrich0.tcl
|
TestFabricCh0Health
|
Mandatory.go_fabrich1.tcl
|
TestFabricCh1Health
|
Mandatory.go_ipsec.tcl
|
TestIPSecEncrypDecrypPkt
|
Mandatory.go_mac.tcl
|
TestMacNotification
|
Mandatory.go_nondislp.tcl
|
TestNonDisruptiveLoopback
|
Mandatory.go_scratchreg.tcl
|
TestScratchRegister
|
Mandatory.go_sprping.tcl
|
TestSPRPInbandPing
|
次に、このポリシーの使用方法を示すサンプル設定について説明します。ユーザー EXEC モードを開始し、デバイス プロンプトで enable コマンドを入力します。デバイスは特権 EXEC モードを開始します。このモードで show event manager policy registered コマンドを入力すると、現在登録されているポリシーがないことを確認できます。次のコマンドはどのポリシーがインストールできるかを表示する show event manager policy available コマンドです。configure terminal コマンドを入力してグローバル コンフィギュレーション モードが開始されたら、event manager policy コマンドを使用して mandatory.go_*.tcl ポリシーを EEM に登録できます。グローバル コンフィギュレーション モードを終了し、もう一度 show event manager policy registered コマンドを入力してポリシーが登録されていることを確認します。
enable
show event manager policy registered
show event manager policy available
configure terminal
event manager policy Mandatory.go_spuriousisr.tcl
end
show event manager policy registered
show event manager environment
ap_perf_test_base_cpu.tcl および no_perf_test_init.tcl サンプル ポリシーの実行
これらのサンプル ポリシーは、EEM ポリシーの CPU パフォーマンスを測定します。これらのポリシーは、各 EEM ポリシーの標準実行時間の検出に役立ち、CLI ライブラリ コマンドを使用して EEM 環境変数の perf_cmd1(任意で
_perf_cmd2 および _perf_cmd3)で指定されているコンフィギュレーション コマンドを実行します。
次に、このポリシーの使用方法を示すサンプル設定について説明します。ユーザー EXEC モードを開始し、デバイス プロンプトで enable コマンドを入力します。デバイスは特権 EXEC モードを開始します。このモードで show event manager policy registered コマンドを入力すると、現在登録されているポリシーがないことを確認できます。次のコマンドはどのポリシーがインストールできるかを表示する show event manager policy available コマンドです。configure terminal コマンドを入力してグローバル コンフィギュレーション モードが開始された後に service timestamps debug datetime msec コマンドを入力すると、event manager policy コマンドを使用して EEM に ap_perf_test_base_cpu.tcl ポリシーと no_perf_test_init.tcl ポリシーを登録できます。グローバル コンフィギュレーション モードを終了し、もう一度 show event manager policy registered コマンドを入力してポリシーが登録されていることを確認します。
ポリシー ap_perf_test_base_cpu.tcl および no_perf_test_init.tcl はセットで実行されるので、一緒に登録する必要があります。no_perf_test_init.tcl ポリシーを実行し、テストを開始することができます。反復ごとに返ってくる
syslog メッセージを使用して結果を分析します。反復の総回数は、変数 _perf_iterations で指定します。時間の差を測り、反復の総回数で除算して、各 EEM ポリシーの平均実行時間を計算します。
enable
show event manager policy registered
show event manager policy available
show event manager environment
configure terminal
service timestamps debug datetime msec
event manager environment _perf_iterations 100
event manager policy ap_perf_test_base_cpu.tcl
event manager policy no_perf_test_init.tcl
end
show event manager policy registered
show event manager policy available
show event manager environment
event manager run no_perf_test_init.tcl
no_perf_test_init.tcl サンプル ポリシーの実行
このサンプル ポリシーでは、EEM ポリシーの CPI パフォーマンスを測定します。このポリシーは、各 EEM ポリシーの標準実行時間の検出に役立ち、CLI ライブラリ コマンドを使用して EEM 環境変数の perf_cmd1(任意で _perf_cmd2
および _perf_cmd3)で指定されているコンフィギュレーション コマンドを実行します。
次に、このポリシーの使用方法を示すサンプル設定について説明します。ユーザー EXEC モードを開始し、デバイス プロンプトで enable コマンドを入力します。デバイスは特権 EXEC モードを開始します。このモードで show event manager policy registered コマンドを入力すると、現在登録されているポリシーがないことを確認できます。次のコマンドはどのポリシーがインストールできるかを表示する show event manager policy available コマンドです。configure terminal コマンドを入力してグローバル コンフィギュレーション モードが開始されたら、event manager policy コマンドを使用して no_perf_test_init.tcl ポリシーを EEM に登録できます。グローバル コンフィギュレーション モードを終了し、もう一度 show event manager policy registered コマンドを入力してポリシーが登録されていることを確認します。
反復ごとに返ってくる syslog メッセージを使用して結果を分析します。反復の総回数は、変数 _perf_iterations で指定します。時間の差を測り、反復の総回数で除算して、各 EEM ポリシーの平均実行時間を計算します。
enable
show event manager policy registered
show event manager policy available
configure terminal
event manager policy no_perf_test_init.tcl
end
show event manager policy registered
show event manager environment
sl_intf_down.tcl サンプル ポリシーの実行
このサンプル ポリシーでは、特定のパターンで Syslog メッセージが記録されるときに設定を変更する機能について説明します。ポリシーでは、イベントについての詳細情報が収集され、CLI ライブラリを使用して、EEM 環境変数 _config_cmd1
と、任意で _config_cmd2 で指定された、コンフィギュレーション コマンドが実行されます。CLI コマンドの結果とともに、電子メール メッセージが送信されます。
次に、このポリシーの使用方法を示すサンプル設定について説明します。ユーザー EXEC モードを開始し、デバイス プロンプトで enable コマンドを入力します。デバイスは特権 EXEC モードを開始します。このモードで show event manager policy registered コマンドを入力すると、現在登録されているポリシーがないことを確認できます。次のコマンドはどのポリシーがインストールできるかを表示する show event manager policy available コマンドです。configure terminal コマンドを入力してグローバル コンフィギュレーション モードが開始されたら、event manager policy コマンドを使用して sl_intf_down.tcl ポリシーを EEM に登録できます。グローバル コンフィギュレーション モードを終了し、もう一度 show event manager policy registered コマンドを入力してポリシーが登録されていることを確認します。
インターフェイスがダウンするときに、ポリシーが実行されます。show event manager environment コマンドを入力して現在の環境変数の値を表示します。_syslog_pattern EEM 環境変数で指定されたインターフェイスのケーブルを取り外します(またはシャットダウンを設定します)。インターフェイスがダウンし、インターフェイスがダウンしていることについての
Syslog メッセージを記録する Syslog デーモンのプロンプトが表示されて、Syslog イベント ディテクタが呼び出されます。
Syslog イベント ディテクタによって、未解決のイベント仕様が見直され、インターフェイス ステータス変更に対する一致が検索されます。EEM サーバーに通知され、サーバーでは、このイベント sl_intf_down.tcl を処理するために登録されたポリシーが実行されます。
enable
show event manager policy registered
show event manager policy available
configure terminal
event manager policy sl_intf_down.tcl
end
show event manager policy registered
show event manager environment
tm_cli_cmd.tcl サンプル ポリシーの実行
このサンプル ポリシーでは、定期的に CLI コマンドを実行し、結果を E メールで送信する機能について説明します。CRON 仕様「0-59/2 0-23/1 * * 0-7」を使用すると、このポリシーは、毎時 2 分目に実行されます。ポリシーでは、イベントについての詳細情報が収集され、CLI
ライブラリを使用して、EEM 環境変数 _show_cmd で指定された、コンフィギュレーション コマンドが実行されます。CLI コマンドの結果とともに、電子メール メッセージが送信されます。
次に、このポリシーの使用方法を示すサンプル設定について説明します。ユーザー EXEC モードを開始し、デバイス プロンプトで enable コマンドを入力します。デバイスは特権 EXEC モードを開始します。このモードで show event manager policy registered コマンドを入力すると、現在登録されているポリシーがないことを確認できます。次のコマンドはどのポリシーがインストールできるかを表示する show event manager policy available コマンドです。configure terminal コマンドを入力してグローバル コンフィギュレーション モードが開始されたら、event manager policy コマンドを使用して tm_cli_cmd.tcl ポリシーを EEM に登録できます。グローバル コンフィギュレーション モードを終了し、show event manager policy registered コマンドを入力してポリシーが登録されていることを確認します。
EEM 環境変数 _cron_entry に設定されている CRON 文字列に従って、タイマー イベント ディテクタによって、定期的にこのケースのイベントがトリガーされます。EEM サーバーに通知され、サーバーでは、このイベント tm_cli_cmd.tcl
を処理するために登録されたポリシーが実行されます。
enable
show event manager policy registered
show event manager policy available
configure terminal
event manager policy tm_cli_cmd.tcl
end
show event manager policy registered
tm_crash_reporter.tcl サンプル ポリシーの実行
このサンプル ポリシーでは、ある URL へ HTTP 形式のクラッシュ レポートを送信する機能について説明します。ポリシー登録がスタートアップ コンフィギュレーション ファイルに保存されている場合、ポリシーは、ブートの 5 秒後にトリガーされます。トリガーされると、スクリプトによって、リロード原因の検索が試行されます。リロードの原因がクラッシュの場合、ポリシーによって、関連する
crashinfo ファイルが検索され、環境変数 _crash_reporter_url でユーザーによって指定された URL へ、この情報が送信されます。CGI スクリプト interface_tm.cgi は、tm_crash_reporter.tcl
ポリシーから URL を受け取るために作成され、ターゲット URL マシン上のローカル データベースにクラッシュ情報が保存されます。
Perl CGI スクリプト interface_tm.cgi が作成され、HTTP サーバーが含まれているマシン上で実行するために設計され、tm_crash_reporter.tcl ポリシーが実行されているデバイスからアクセスできます。interface_tm.cgi
スクリプトによって、tm_crash_reporter.tcl から渡されたデータが解析され、テキスト ファイルの末尾にクラッシュ情報が追加され、これによって、システムのすべてのクラッシュの履歴が作成されます。さらに、各クラッシュの詳細情報は、ユーザーが指定したクラッシュ
データベース ディレクトリの 3 つのファイルに保存されます。別の Perl CGI スクリプト crash_report_display.cgi は、interface_tm.cgi スクリプトによって作成されたデータベースに保存されている情報を表示するために作成されました。crash_report_display.cgi
スクリプトは、interface_tm.cgi が含まれているマシンと同じマシンに置く必要があります。そのマシンでは、Internet Explorer または Netscape などのブラウザが実行されている必要があります。crash_report_display.cgi
スクリプトが実行されると、読み取り可能な形式でクラッシュ情報が表示されます。
次に、このポリシーの使用方法を示すサンプル設定について説明します。ユーザー EXEC モードを開始し、デバイス プロンプトで enable コマンドを入力します。デバイスは特権 EXEC モードを開始します。このモードで show event manager policy registered コマンドを入力すると、現在登録されているポリシーがないことを確認できます。次のコマンドはどのポリシーがインストールできるかを表示する show event manager policy available コマンドです。configure terminal コマンドを入力してグローバル コンフィギュレーション モードが開始されたら、event manager policy コマンドを使用して tm_crash_reporter.tcl ポリシーを EEM に登録できます。グローバル コンフィギュレーション モードを終了し、show event manager policy registered コマンドを入力してポリシーが登録されていることを確認します。
enable
show event manager policy registered
show event manager policy available
configure terminal
event manager policy tm_crash_reporter.tcl
end
show event manager policy registered
tm_fsys_usage.tcl サンプル ポリシーの実行
このサンプル ポリシーでは、ディスク領域の使用状況を定期的にモニターし、値が設定可能なしきい値に近くなったときに Syslog を介してレポートする機能について説明します。
次に、このポリシーの使用方法を示すサンプル設定について説明します。ユーザー EXEC モードを開始し、デバイス プロンプトで enable コマンドを入力します。デバイスは特権 EXEC モードを開始します。このモードで show event manager policy registered コマンドを入力すると、現在登録されているポリシーがないことを確認できます。次のコマンドはどのポリシーがインストールできるかを表示する show event manager policy available コマンドです。configure terminal コマンドを入力してグローバル コンフィギュレーション モードが開始されたら、event manager policy コマンドを使用して tm_fsys_usage.tcl ポリシーを EEM に登録できます。グローバル コンフィギュレーション モードを終了し、もう一度 show event manager policy registered コマンドを入力してポリシーが登録されていることを確認します。tm_fsys_usage.tcl ポリシーで使用されるオプション環境変数のいずれかを設定した場合、show event manager environment コマンドによって、設定された変数が表示されます。
enable
show event manager policy registered
show event manager policy available
configure terminal
event manager policy tm_fsys_usage.tcl
end
show event manager policy registered
show event manager environment