Cisco IOSにおけるEEM(Embedded Event Manager)とは、対象機器にてイベントのモニタリングを実行し、対象となるイベントが発生した場合にそのイベントと関連付けられたアクションを実行する事が出来る機能を指す。
商用環境にて動作しているCatalyst4500やCatalyst6500のshow runを眺めると、たまに見かける設定でもある。
回線断により運用担当者等が機器にログインしコマンドを叩けない状態になっても、自動でログ取得や簡単且つパターン化された操作が出来る為、設定次第では強力なトラブルシューティングツールとなる。
例えば、回線断発生前後のログ取得なんかに有用だ。
EEMによるアクションの実行方法は、Cisco IOSコマンドにて制御するApplet版とTcl Scriptも利用するTcl版の2通りがあるが、今回はCatalyst6500側にてApplet版で遊んでみた。
今回設定したEEMの処理の流れは以下のとおり。
・WAN Router向けInterfaceにてEIGRP Neighborステータスが変化。(Neighbor Up/Down)
・EIGRP Neighborステータスの変化を検知すると、show ip eigrp neighbor detail、show ip eigrp topology all-links、show tech-suppotの各コマンドが実行される。
・上記のコマンドの実行結果は、それぞれCHG_eigrp_neighbor.log、CHG_eigrp_topology.log、CHG_show_tech.logのログファイルでsup-bootdisk上に保存される。
構成(クリックすると拡大表示)
MI-CAT6503-S32-SW-01:Catalyst6503 (WS-SUP32-GE-3B)
MI-CSO3640-SI-RT-01:Cisco3640
1. 以下は、MI-CAT6503-S32-SW-01の設定内容から抜粋。
interface GigabitEthernet3/1 description *** To MI-CSO3640-SI-RT-01_ETH0/0 *** ip address 10.200.10.1 255.255.255.252 no ip redirects no ip unreachables no ip proxy-arp speed 10 duplex full end interface Loopback0 description *** Management Segment *** ip address 10.1.1.10 255.255.255.255 no ip redirects no ip proxy-arp logging event link-status end router eigrp 1 network 10.1.1.10 0.0.0.0 network 10.200.10.0 0.0.0.3 passive-interface default no passive-interface GigabitEthernet3/1 eigrp router-id 10.1.1.10
2. 以下は、MI-CAT6503-S32-SW-01〜MI-CSO3640-SI-RT-01間のEIGRPネイバ関係の状態を確認結果。
MI-CAT6503-S32-SW-01#show ip eigrp neighbor EIGRP-IPv4 Neighbors for AS(1) H Address Interface Hold Uptime SRTT RTO Q Seq (sec) (ms) Cnt Num 0 10.200.10.2 Gi3/1 13 00:04:06 1600 5000 0 31 MI-CAT6503-S32-SW-01#
3. 今回、投入されているEEMは以下のとおり。
EIGRP Neighborのステータスに変化(Up/Down)が発生すると、ログを取得しsup-bootdisk:に保存するという内容。
MI-CAT6503-S32-SW-01#show run | be EIGRP_Neighbor_Change_Log event manager applet EIGRP_Neighbor_Change_Log event syslog pattern "%DUAL-5-NBRCHANGE: EIGRP-IPv4 1" action 1.0 cli command "enable" action 10.0 syslog msg "***** Log: taken and saved at sup-bootdisk: *****" action 2.0 cli command "show ip eigrp neighbor detail | append sup-bootdisk:CHG_eigrp_neighbor.log" action 3.0 cli command "show ip eigrp topology all-links | append sup-bootdisk:CHG_eigrp_topology.log" action 5.0 cli command "show tech-support | append sup-bootdisk:CHG_show_tech.log" action 6.0 cli command "exit"
4. 早速ではあるが、WAN RouterであるMI-CSO3640-SI-RT-01側にて、MI-CAT6503-S32-SW-01向けInterface Eth0/1に挿入されているUTPケーブルを抜去。
ケーブル抜去後、MI-CAT6503-S32-SW-01側では、EIGRP Neighbor Changeのログと共にEEMスクリプトで記載したLog: taken and saved at sup-bootdisk:が出力された。
MI-CAT6503-S32-SW-01# Apr 5 11:20:08.787 JST: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 10.200.10.2(GigabitEthernet3/1) is down: interface down Apr 5 11:20:08.819 JST: %HA_EM-6-LOG: EIGRP_Neighbor_Change_Log: ***** Log: taken and saved at sup-bootdisk: ***** MI-CAT6503-S32-SW-01#
5. ログ保存先として定義したのsup-bootdisk:の内容を確認。
新規にCHG_eigrp_neighbor.log、CHG_eigrp_topology.log、CHG_show_tech.logの各ログファイルが作成された。
この後、何度もEIGRP NeighborがUp/Downを繰り返すと取得されたログの内容は既存のログファイルに追記されるのだが、EIGRPのNeighbor DownとUpを別のログファイル名で保存する内容でEEM Appletの設定をする事は可能である。
MI-CAT6503-S32-SW-01#show sup-bootdisk: : (省略) 9 398900 Apr 5 2015 11:20:28 +09:00 CHG_show_tech.log 10 166 Apr 5 2015 11:20:08 +09:00 CHG_eigrp_topology.log 11 4048 Apr 5 2015 11:20:08 +09:00 CHG_eigrp_neighbor.log 795967488 bytes available (205881344 bytes used)
6. show event manager history eventsコマンドを叩くと、EEMの実行履歴が出力される。
Statusの項目を確認するとsuccessの出力がある為、EEM Appletの実行は正常終了した事が分かる。
MI-CAT6503-S32-SW-01#show event manager history events No. Job Id Status Time of Event Event Type Name 1 6 success Sun Apr 5 11:20:08 2015 syslog applet: EIGRP_Neighbor_Change_Log MI-CAT6503-S32-SW-01#
今回はEEMをApplet版で設定し、動作確認およびログが出力されたところまで見る事が出来た。
Tcl版の場合はもっと細かな制御が可能である。
参照サイト
https://gblogs.cisco.com/jp/2017/12/ios-use-case-embedded-event-manager/ Cisco IOS フル活用への道:第1回 EEM (Embedded Event Manager)
https://www.itbook.info/network/eem.html EEM (Embedded Event Manager)
https://www.n-study.com/eem_2/ EEMの設定 - ネットワークのおべんきょしませんか?