【便利】EEM Syslogイベントによるコマンド実行

 Embedded Event Manager(EEM)は、特定のイベントが発生したときにコマンドを実行できるようにするCiscoルータ上の機能です。

スポンサーリンク

Syslogイベント

 コンソールに特定の文字列のログが出力されたら、任意のコマンドを実行することができます。

設定例

 例えば、FastEthernet0/0がダウン、およびアップした時に、”show interface fa0/0”を実行し、コンソールへ出力することができます。

 FastEthernet0/0がダウンした時に、show interface fa0/0を実行する設定例

R1(config)# event manager applet INTERFACE_DOWN   
R1(config-applet)#event syslog pattern "Interface FastEthernet0/0, changed state to down"       
R1(config-applet)# action 1.0 cli command "enable"   
R1(config-applet)# action 2.0 cli command "show interface fa0/0"   
R1(config-applet)# action 3.0 puts "$_cli_result"   

 FastEthernet0/0がアップした時に、show interface fa0/0を実行する設定例

R1(config)# event manager applet INTERFACE_UP 
R1(config-applet)# event syslog pattern "Interface FastEthernet0/0, changed state to up"       
R1(config-applet)# action 1.0 cli command "enable" 
R1(config-applet)# action 2.0 cli command "show interface fa0/0" 
R1(config-applet)# action 3.0 puts "$_cli_result" 

$_cli_result は、組み込み変数で、直前に実行されたコマンドの結果が格納されます。

確認

 FastEthernet0/0をシャットダウンさせます。

R1(config)# int fastEthernet 0/0 
R1(config-if)# shutdown  
R1(config-if)#
%LINK-5-CHANGED: Interface FastEthernet0/0, changed state to administratively down
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to down
%HA_EM-6-LOG: INTERFACE_DOWN: 
FastEthernet0/0 is administratively down, line protocol is down 
  Hardware is DEC21140, address is 0000.0000.1111 (bia ca01.06ea.0000)
  MTU 1500 bytes, BW 100000 Kbit/sec, DLY 100 usec, 
     reliability 255/255, txload 1/255, rxload 1/255
  Encapsulation 802.1Q Virtual LAN, Vlan ID  1., loopback not set
  Keepalive set (10 sec)
  Half-duplex, 100Mb/s, 100BaseTX/FX
  ARP type: ARPA, ARP Timeout 04:00:00
  Last input 00:00:03, output 00:00:03, output hang never
  Last clearing of "show interface" counters never
  Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0
  Queueing strategy: fifo
 <省略>

 コンソールログにInterface FastEthernet0/0, changed state to down 出力後に、%HA_EM-6-LOG: INTERFACE_DOWN:によりEEMが実行され、次の行からshow interface fa0/0の出力結果が表示されています。

 では、FastEthernet0/0を復旧させます。

R1(config)# int fastEthernet 0/0 
R1(config-if)# no shutdown  
R1(config-if)#
*Jul  8 15:44:27.251: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up
*Jul  8 15:44:27.439: %HA_EM-6-LOG: INTERFACE_UP: 
FastEthernet0/0 is up, line protocol is up 
  Hardware is DEC21140, address is 0000.0000.1111 (bia ca01.06ea.0000)
  MTU 1500 bytes, BW 100000 Kbit/sec, DLY 100 usec, 
     reliability 255/255, txload 1/255, rxload 1/255
  Encapsulation 802.1Q Virtual LAN, Vlan ID  1., loopback not set
  Keepalive set (10 sec)
  Half-duplex, 100Mb/s, 100BaseTX/FX
  ARP type: ARPA, ARP Timeout 04:00:00
  Last input 00:03:54, output 00:00:02, output hang never
  Last clearing of "show interface" counters never
  Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0
  Queueing strategy: fifo
 <省略>

 コンソールログにInterface FastEthernet0/0, changed state to up 出力後、%HA_EM-6-LOG: INTERFACE_UPによりEEMが実行され、、次の行からshow interface fa0/0の出力結果が表示されています。

 コンソールログについて任意の文字列を指定して、アクションを実行できるところから、例えば、OSPFのネイバーがダウンした時に、特定のコマンドを実行する など幅広く応用できます。

コメント