Cisco Japan Blog
Share

Cisco IOS フル活用への道 : 第 1 回 EEM(Embedded Event Manager)


2017年12月28日


※以下の記事は、Cisco.com/jp 整理に伴って、 テクノロジー解説特集記事(2011年)を転載したものです。機能的に古い記載もありますが、2017 年現在でも有効である内容が多く、さらに進化を続けています。

ルータやスイッチなどのネットワーク機器のコモディティ化、回線の種類の増加など、企業のネットワーク管理者や設計者を取り巻く要素は複雑化し続けています。ネットワーク機器の機能の多様化に伴って高度な技術者のリソース確保も難しくなる一方で、ネットワークの稼動状況がビジネスにも影響するようになっています。さらには短期間で安価なネットワーク構築、運用・管理にかかるコスト削減など、管理者や設計者への要求は高まる一方です。

こうした課題に対処する機能が、ルータやスイッチなど、身近なネットワーク機器のオペレーティングシステム(OS)に含まれていることをご存知でしょうか? 今回ご紹介するのは、Cisco IOS ソフトウェアに付属している EEM(Embedded Event Manager)という機能です。カスタムロジックの構築を可能にする EEM を利用してネットワーク管理を自動化すれば、多くの企業が直面するネットワークの課題に、追加コストをかけずに対処できます。

Cisco IOS に組み込み済みのイベントマネージャ機能 EEM

EEM は、シスコのルータやスイッチを制御する基盤ソフトウェアである Cisco IOS に搭載されている機能です。ネットワークを監視し、発生した状況に応じた対処ロジックの構築を可能にするもので、「カスタム機能を作るための機能」ともいえます。

EEM を利用することで、Cisco IOS にもともと搭載されている機能だけでは対応できなかったロジックを実装することが可能です。これまで、経験を積んだ管理者が常駐し、その都度行わなければならなかった「〜が発生したら〜する」という判断や処理も、EEM を活用すれば自動化することができます。

「イベント」と「アクション」を組み合わせてロジックを実装

EEM はネットワークが「〜な状態になったら」という条件をイベント、「〜する」という処理をアクションとし、この 2 つの情報の組み合わせによりロジックを構築します。イベントを検知して適切なアクションを実行するためには、Cisco IOS に搭載された以下の 3 つの要素が連携して動作することになります。

  • Event Detector ネットワークを監視しイベントを検知する
  • Event Manager イベントとアクションを結び付ける
  • Action イベントに対応して実行されるアクション

イベントとアクションの組み合わせは、EEM ポリシーとして定義することができます。

EEMアーキテクチャ

EEMアーキテクチャ

たとえば、「〜の Syslog が出力された」というイベントを Event Detector が検知し、EEM に通知すると、EEM ポリシーで関連付けられたアクションが呼び出され、管理者宛にアラートメールが送信される、というロジックも、Cisco IOS の機能だけで構築することが可能です。
Cisco IOS には多くの Event Detector が搭載されており、EEM では多様なイベントをサポートすることができます。

EEM から利用できる Event Detector の例

SNMP SNMP MIBオブジェクトをモニターし、オブジェクトの値が任意の値とマッチするか、任意の閾値を越えた場合にイベントを発行
Syslog 正規表現を使ったシスログパターンマッチングフィルタリング(シスログスクリーニング)をトリガーとしてイベントを発行
Interface Counter 設定したインターフェースの Cisco IOS インターフェースカウンタが閾値を超えた際にイベントを発行
Timer absolute-time-of-day、countdown、watchdog、CRON の 4 タイプのタイマーをサポートし、それぞれイベントを発行
CLI コマンドラインインターフェース(CLI)を正規表現で検査し、マッチした場合にイベントを発行
OIR(オンラインインサーション/リムーバル) 特定ハードウェアの挿入、除去が検出された際にイベントを発行
Enhanced Object Tracking (EOT) トラッキングオブジェクトの変更を検知してイベントを発行
XML RPC (Remote Procedure call) 外部システムからのXMLメッセージによるプロシージャコールを受けてイベントを発行
SNMP Proxy 外部システムからのSNMPトラップを受けてイベントを発行
Routing ルーティングテーブルの変化を検知した際にイベントを発行(ネットワーク情報の追加、削除、変更、配信プロトコルごと、など)
NetFlow トラフィックフロー情報(Cisco Flexible NetFlow)をオブジェクトとしてモニターし、オブジェクトの値が任意の値とマッチするか、任意の閾値を越えた場合などに基づいてイベントを発行
Neighbor Discovery CDPまたはLLDP(リンクレイヤ検出プロトコル)による同期情報を受けてイベントを発行
Mac Address Table MACアドレステーブルの変化を検知した際にイベントを発行(MACアドレスの追加、削除、学習インターフェースごと、など)

※EEM のバージョンによってサポートされる Event Detector は異なります。

EEM のエンジンには、CLIベースのアプレットと、Tcl スクリプトとして Cisco IOS 上で実行されるものの2 種類があります。エンジンにより、イベントとアクションを 1 対 1 で組み合わせるだけでなく、目的に応じて複数のイベントと複数のアクションを n 対 n で組み合わせたり、戻り値に応じた分岐処理などを設定したりすることが可能です。

CLI ベース (EEM アプレット) Tcl ベース (EEM Tcl)
強み:  

  • 設定が比較的容易
  • 余分なファイルが不要

弱み:

  • 高度な処理には不向き
※ EEM 2.1 以降でサポート
強み:

  • TCL スクリプトにより CLI より柔軟な動作を設定可能

弱み:  

  • TCL を覚える必要がある
  • 単純な処理を行うには手間がかかる

内部からの「インボックス」なネットワーク監視を実現

障害対応のためにはさまざまな種類のネットワーク監視専用ツールが存在しますが、リモートからの監視システムによる OutBox モニタリングでは、障害の種類によっては、必要な情報を収集できない場合があります。EEM を利用すると、ネットワーク機器内に監視機能を持つことができ、外部とのネットワークが遮断されている場合でも監視が可能な InBox モニタリングを実現できます。

ルータやスイッチでサイレントクラッシュが発生した場合など、従来の外部からの監視装置ではクラッシュ前後のログ取得が困難ですが、Cisco IOS 内でのプロアクティブな監視を実現する EEM を利用すれば、適切なタイミングで必要なログを取得して原因調査や対策に活用できます。また、モニタリングの動作で外部とのトラフィックを発生させることがないため、平常時のネットワーク負荷も軽減することができます。

EEM は元々、一部の製品にだけ搭載されていましたが、現在ではルータ、スイッチの幅広いモデルで実装されつつあります。Cisco 800 シリーズのようなローエンドルータから実装されている (*) ため、追加コストをかけずに、さまざまな規模のネットワークで利用することが可能です。

(*) EEM をご利用いただく際には、Cisco IOS の Feature Set のアップグレードが必要な場合があります。また、EEM をサポートする機種および Cisco IOS のバージョンなどの詳細情報は、Cisco Feature Navigator でご確認ください。

どんなことができる? EEM 利用の具体例

ここで、EEM の具体的な活用例を見てみましょう。

◆ケース 1: OSPF のネイバーダウンに対処する

ルーティングプロトコルに OSPF を使用しており、不定期に OSPF ネイバーがダウンしています。従来の監視方法では、OSPF ネイバーがダウンしたログを確認した後、レイヤ 2 や物理メディアの障害解析を行っていましたが、リアルタイムではないため、ダウン時の情報を得るのが困難でした。不定期に障害が発生するため、管理者が常時ルータを監視し続けるのも現実的ではありません。

EEM を利用すれば、OSPF ネイバーダウンを検知し、ダウン時にリアルタイムで各種ログを自動取得することができます。

◆ケース 2: カスタムコマンドを作成する

Cisco IOS の show command で出力される情報が膨大なため、障害時に必要な情報だけを抽出するのに時間がかかることがあります。

EEM を利用すれば、必要な情報だけを収集するオリジナルコマンドを作成することができます。

この他にも、あるインタフェースのエラー比率が高くなったらシャットダウンする、Cisco IOS プロセス中の CPU 利用率が増加したら QoS のコマンドを発行する、設備温度が 50 度を超えたらログを出力するなど、障害に備えた処理の自動化も可能です。
また、EEMによるカスタム機能を利用して、企業が新たなサービスを提供している例もあります。

株式会社 NTTPC コミュニケーションズは、ルータの設定から疎通試験までを有料サービスとして請け負っていましたが、EEM によって設定を自動化したことで、顧客自身で設定を行う無料のオプションを提供できるようになりました。このことで、サービス開始までの期間や接続認証のための期間を短縮し、顧客にコストメリットを提供することに成功しています。

その他にも、EEMによってネットワークの監視や設定、アップデートの自動化といった付加サービスを提供している企業もあります。シスコ社内においても、サポートや障害対応での情報収集やトラブルシュートに EEM のカスタムスクリプトを活用しています。

はじめてみよう! EEM 活用の第一歩

 シスコでは EEM のフォーラム、Embedded Event Manager [EEM] Scripting Community [英語] を用意しています。EEM カスタムスクリプトをオープンソースとして自由にアップロード、ダウンロードすることができるだけでなく、ディスカッション フォーラム、コメントやレイティングなどの機能などもあり、世界中の技術者と情報交換をしながら、関心のあるスクリプトをすぐに試すことができます。

また、日本語で受講できるハンズオントレーニングもご用意しています。開催日程などについては、グローバル ナレッジ ネットワーク株式会社(問い合わせ:フリーダイヤル 0120−009686/営業日 9:00 〜 17:30)にお問い合わせください。

EEM に関する参考資料(日本語)

書籍

VoD

  • IOS の自動化技術による運用・管理の最適化

Web ページ

進化し続ける EEM – モニタリング機能との連携も

ご紹介したように EEM は非常に柔軟でパワフルな機能です。現在も着々とバージョンアップ、アップデートを重ねて進化を続けており、検知できるイベントも増えています。

自律的なマネジメント ロジックを構築するだけでなく、外部の Web サービスやミドルウェアなどのアプリケーションと連携させることも可能なため、たとえばユーザが Web の画面上で「高画質」をクリックすると、ネットワーク機器の設定を大容量の映像に対応したものに切り替えるなど、将来的にも幅広い活用が期待されています。

次回取り上げる IPSLA やネットフローなどのネットワーク監視機能と併用することにより、モニタリング情報に基づいて処理を実行することも可能です。詳しくは次回にご紹介しましょう。

Tags:
コメントを書く