ホーム > Cisco関連技術 > EEM (Embedded Event Manager)
EEM (Embedded Event Manager)
▼ ネットワークエンジニアにおすすめのサイトはこちら ▼
EEMの概要
EEM (Embedded Event Manager)は、Ciscoが扱っている各OS
(IOS、IOS XR、IOS XE、NX-OS)に搭載された運用管理機能の1つです。
事前にイベントとアクションを設定し、イベントを検出すると、
設定しておいたアクションを実行してくれます。
EEMを使うことで、今まで不可能だった細かい動作を、運用者が
カスタマイズして作り込むことが可能になりました。
日々の運用管理業務の効率化や、障害の早期発見などに効果を
発揮してくれます。
例えば、
- あるインタフェースを監視して、インタフェースがダウンしたら、管理者へメールを送信する
- CPU使用率を監視して、事前に決めた閾値を超えた場合に、CPU使用率を取得してsyslogで送信
- インタフェースのエラー率を監視して、事前に決めたエラー率を超えた場合に、該当のインタフェースをダウンさせて、SNMP Trapを送信
といった細かい制御を行うことが出来ます。
EEMのアーキテクチャ
EEMは「Event Detector」、「Policy」、「EEMサーバ」の3つの要素から
成り立っています。
事前に定義したイベントとアクションをPolicyと呼び、
Event DetectorでPolicyに則ってイベントを監視し、
アクションを実行させる場合にEEMサーバへ通知します。
Event Detectorで監視可能な主なイベントは以下の通り。
- SNMP
SNMP MIBオブジェクトを監視し、オブジェクトの値が任意の値と
マッチするか、任意の閾値を越えた場合にイベント通知 - Syslog
事前に定義した文字列をトリガーにイベント通知 - Timer
absolute-time-of-day、countdown、watchdog、CRON の 4 タイプの
タイマーをサポートし、それぞれイベントを通知 - Interface Counter
インタフェースカウンタが閾値を超えた際にイベントを通知 - CLI
CLIを正規表現で検査し、マッチした場合にイベントを通知 - OIR
モジュール等のOIRを検知した場合にイベント通知 - SNMP Proxy
外部からのSNMPトラップを受けてイベントを通知 - Routing
ルーティングテーブルの変化を検知した際にイベントを通知 - NetFlow
NetFlow情報監視し、オブジェクトの値が任意の値とマッチ、
あるいは任意の閾値を越えた場合にイベント通知 - Neighbor Discovery
CDPまたはLLDPによる情報を受けてイベントを通知 - Mac Address Table
MACアドレステーブルの変化を検知した際にイベントを通知
イベントを受けた後に実行出来る主なアクション以下の通り。
- コマンドの実行や結果の取得
- SNMPへのアクセス
- 再起動
- EEM Policyの呼び出し
- スイッチオーバー
- Eメール送信
- SNMP Trap送信
- Syslog送信
- などなど。。。
EEMはCLIを使った設定と、Tcl スクリプトを使ってプログラミングする
方法の2種類があります。
CLIベースは設定が簡単である反面、細かい制御をすることは出来ません。
逆にTclベースだと、細かい制御をすることが出来ますが、Tclスクリプトを
扱えないといけませんので、若干敷居が高いかもしれません。
ここでは、CLIベースの設定例をいくつかご紹介しておきます。
設定例 1
「Interface FastEthernet 0/0 の LineProtocol 状態を監視して、
LineProtocolがDownになった場合に、Syslogを送信させる」
設定例は以下の通りです。
track 1 interface FastEthernet0/0 line-protocol
event manager applet eem
event track 1 state down
action 1.0 syslog msg "### Interface is Doooooooooown!! ###"
上記設定をした状態で、FE0/0をDownさせてみます。
RT1#conf t
RT1(config)#interface fastEthernet 0/0
RT1(config-if)#shutdown
*May 19 14:40:46.819: %TRACKING-5-STATE: 1 interface Fa0/0 line-protocol Up->Down
*May 19 14:40:46.955: %HA_EM-6-LOG: eem: ### Interface is Doooooooooown ###
*May 19 14:40:48.815: %LINK-5-CHANGED: Interface FastEthernet0/0, changed state to administratively down
*May 19 14:40:49.815: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to down
無事に「%HA_EM-6-LOG: eem: ### Interface is Doooooooooown!! ###」という
Syslogが出力されました。
設定例 2
「Interface FastEthernet 0/0 の Input Error を 60secごとに監視して、
エラー数が1000を超えた場合に再起動を実施」
インタフェースのエラーカウンタを監視して、上限値を超えた場合に
機器の再起動を実施する場合の設定例です。
設定例は以下の通りです。
event manager applet error
event interface name "FastEthernet0/0" parameter input_errors entry-val 1000 entry-op ge entry-val-is-increment true poll-interval 60
action 1.0 reload
設定例 3
「OSPFネイバーダウンを検知し、ダウン時に各種ログを自動取得する」
Syslogを監視して、OSPFのネイバーダウンのSyslogが出力されたら、
各種ログを取得してFlashに保存させるようにしてみます。
設定例は以下の通りです。
event manager applet OSPF
event syslog pattern ".*OSPF-5-ADJCHG*.*Neighbor Down*"
action 1.0 syslog msg "### OSPF neighbor down!! ###"
action 2.0 cli command "en"
action 3.0 cli command "show ip ospf nei | append flash:/OSPFLog.txt"
action 4.0 cli command "show tech | append flash:/OSPFLog.txt"
action 5.0 cli command "end"
action 6.0 syslog msg "### Archived done ###"
EEM関連コマンド
EEMを使用する時に便利なコマンドをご紹介しておきましょう。
- show event manager version
EEMのバージョンを表示 - show event manager detector all
利用できるEvent Detectorの種類とバージョンを表示 - show event manager policy registered
設定したポリシーの動作情報を表示
以上、設定例をご紹介しましたが、EEMはアイデア次第で様々な用途がありますので、
ぜひ一度試してみて下さい。
最後に
EEMを動作させると、当然機器のCPUやメモリを消費しますので、
事前に十分な検証が必要です。
おすすめ記事
おすすめ書籍紹介
関連記事
メールマガジン
ネットワ-ク初心者のみなさま。
ネットワークの基礎知識を疎かにすることは
大変危険です!!
これを読めばネットワークの基礎が分かる!!
ネットワーク関連の仕事に就きたいとお考えの学生の方や、ネットワークに興味があって転職を考えている社会人の方、まずは登録してみてください。
もちろん無料です!!
↓メールマガジン購読はこちら↓