シスコサポートコミュニティ
キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

CPU 使用率が上昇した場合に自動的にログを取得する EEM の設定例

CPU 使用率が上昇した場合に自動的にログを取得する EEM の設定例を紹介します。

CPU 使用率が上昇するような事象が一時的に発生し、すぐに事象がおさまってしまう場合もあるかと思います。
そういった場合は手動でログを取得することが難しいためこのような EEM を活用頂くとよいかもしれません。

<設定例>

process cpu threshold type total rising 90 interval 5
event manager environment pid1 0
event manager environment pid2 0
event manager environment pid3 0
event manager applet HIGH_CPU
 event syslog pattern "%SYS-1-CPURISINGTHRESHOLD:" maxrun 600
 action 101 cli command "enable"
 action 102 regexp "Top 3 processes\(Pid/Util\): +([0-9]+)/[0-9]+%, +([0-9]+)/[0-9]+%, +([0-9]+)/[0-9]+%" "$_syslog_msg" line pid1 pid2 pid3
 action 103 cli command "show process $pid1 | append flash:High_CPU.txt"
 action 104 cli command "show stack $pid1 | append flash:High_CPU.txt"
 action 105 cli command "show process $pid2 | append flash:High_CPU.txt"
 action 107 cli command "show stack $pid2 | append flash:High_CPU.txt"
 action 108 cli command "show process $pid3 | append flash:High_CPU.txt"
 action 109 cli command "show stack $pid3 | append flash:High_CPU.txt"
 action 110 cli command "show interfaces | append flash:High_CPU.txt"
 action 111 cli command "show interfaces switching | append flash:High_CPU.txt"
 action 112 cli command "show controllers | append flash:High_CPU.txt"
 action 113 cli command "show ip traffic | append flash:High_CPU.txt"
 action 114 cli command "show process $pid1 | append flash:High_CPU.txt"
 action 115 cli command "show stack $pid1 | append flash:High_CPU.txt"
 action 116 cli command "show process $pid2 | append flash:High_CPU.txt"
 action 117 cli command "show stack $pid2 | append flash:High_CPU.txt"
 action 118 cli command "show process $pid3 | append flash:High_CPU.txt"
 action 119 cli command "show stack $pid3 | append flash:High_CPU.txt"
 action 120 cli command "show interfaces | append flash:High_CPU.txt"
 action 121 cli command "show interfaces switching | append flash:High_CPU.txt"
 action 122 cli command "show controllers | append flash:High_CPU.txt"
 action 123 cli command "show ip traffic | append flash:High_CPU.txt"
 action 124 cli command "show process $pid1 | append flash:High_CPU.txt"
 action 125 cli command "show stack $pid1 | append flash:High_CPU.txt"
 action 126 cli command "show process $pid2 | append flash:High_CPU.txt"
 action 127 cli command "show stack $pid2 | append flash:High_CPU.txt"
 action 128 cli command "show process $pid3 | append flash:High_CPU.txt"
 action 129 cli command "show stack $pid3 | append flash:High_CPU.txt"
 action 130 cli command "show interfaces | append flash:High_CPU.txt"
 action 131 cli command "show interfaces switching | append flash:High_CPU.txt"
 action 132 cli command "show controllers | append flash:High_CPU.txt"
 action 133 cli command "show ip traffic | append flash:High_CPU.txt"


<設定の説明>

process cpu threshold type total rising 90 interval 5

Total の CPU 使用率が5秒以上 90% を超えると以下のように
Total/Interrupt のCPU使用率と CPU 使用率の高い TOP 3 のプロセスの PID と CPU 使用率を出力します。

%SYS-1-CPURISINGTHRESHOLD: Threshold: Total CPU Utilization(Total/Intr): 94%/44%, Top 3 processes(Pid/Util):  116/48%, 111/0%, 125/0%

必要に応じて rising 90 interval 5 の部分の値は変更してください。

 

event manager environment pid1 0
event manager environment pid2 0
event manager environment pid3 0

変数 pid1 を定義し初期値を 0 に設定
変数 pid2 を定義し初期値を 0 に設定
変数 pid3 を定義し初期値を 0 に設定

 

event manager applet HIGH_CPU

HIGH_CPU という名前で EEM を定義

 

event syslog pattern "%SYS-1-CPURISINGTHRESHOLD:" maxrun 600

%SYS-1-CPURISINGTHRESHOLD: というパターンの syslog があったら EEM が作動

maxrun はEEMが動作する動作する最大時間を定義しています。

default では maxrun は 20 秒 です。CPU 使用率高騰時にはログの取得が 20 秒で取得が終わらない可能性を考え 600 秒に変更しています。

 

action 101 cli command "enable"

enable コマンドを実行

 

action 102 regexp "Top 3 processes\(Pid/Util\): +([0-9]+)/[0-9]+%, +([0-9]+)/[0-9]+%, +([0-9]+)/[0-9]+%" "$_syslog_msg" line pid1 pid2 pid3

Total CPU Utilization(Total/Intr): NN%/NN%, Top 3 processes(Pid/Util):  XX/48%, YY/0%, ZZ/0%
の XX を 変数 pid1 に格納、YY を変数 pid2 に格納、ZZ を変数 pid3 に格納します。

 

action <Label> cli command "show xxxx | append flash:High_CPU.txt"

show xxxx を実行し結果を flash の High_CPU.txt に追記する。
High_CPU.txt がなければファイルを作成。


この例では以下のコマンドを3セット実行して flash 保存しています。
$pid1, $pid2, $pid3 には syslog で出力されたメッセージの PID 部分が入ります。

show process $pid1
show stack $pid1
show process $pid2
show stack $pid2
show process $pid3
show stack $pid3
show interfaces
show interfaces switching
show controllers
show ip traffic

 

念のため使用される前に問題なく動作することを検証頂ければと思います。

バージョン履歴
改訂番号
1/1
最終更新:
‎04-24-2015 06:33 PM
更新者:
 
ラベル(1)