Qiita Advent Calendar 2022に初参加
今年はじめてQiita Advent Calendar 2022に初投稿させていただきます。
内容は簡単なものになりますが、私なりに調べて記載いたしました。
CML(Cisco Modeling Labs)で簡単な構成で構築もしましたので共有させていただきます。
本記事の概要
ネットワークエンジニアの業務をしていく中で、最近よく耳にするのはネットワークの自動化(プログラマアビリティ)です。
自動化という観点で、EEM(Embedded Event Manager)という機能がCisco機器に実装されていますので、その機能を用いてルーティング障害が発生した際のログを自動で取得するコマンドを設定してみました。
EEM(Embedded Event Manager)とは
EEM(Embedded Event Manager)は、イベントモニタを行い、対象となるイベントが発生した際やカウンタが閾値を超えた場合にそれを検知し、そのイベントと関連づけたアクションを起こすことのできる IOS の機能です。
事前にイベントとアクションを設定し、イベントを検出すると、設定しておいたアクションを自律的に実行してくれます。
トリガー例 | イベント内容例 |
---|---|
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アドレステーブルの変化を検知した際にイベントを通知 |
テスト環境作成、トリガーイベント内容について
今回はCMLで簡単にEEMの構成を作成してみました!
<トリガーイベント内容>
◆トリガー
RT01にてRT02へのOSPFネイバーがダウン
◆イベント
1.RT01のSyslogメッセージに「Neighbor Down」コメントを出力
2.RT01のflashにincident.txtを作成
3.incident.txtに「show tech-support」コマンドの結果を出力
RT01にEEMの設定を追加
event manager applet OSPF_Down_Log01
event syslog pattern ".*OSPF-5-ADJCHG*.*Neighbor Down*"
action 1.0 syslog msg "!!!OSPF neighbor down detected!!!"
action 2.0 cli command "enable"
action 3.0 cli command "show tech-support | append flash:incident.txt"
テスト実施
手順1:RT01のflashに「incident.txt」がないことを確認
手順2:RT01が正常にRT02とOSPFネイバーがはれているか確認
手順3:RT02のinterface GigabitEthernet 1をシャットダウン
手順4:RT01上でRT02とOSPFネイバーのダウンを検知
手順5:RT01のflashに「incident.txt」が作成され、「show tech-support」コマンド結果を出力していることを確認
上記の手順より、EEMの設定が正常に動作していることを確認できました!
まとめ
お客様の運用をしていく中で、障害発生時のログを発生した際に取得したいと
思うケースが多々ありました!
今回はルーティング障害のみのテストでしたが、トリガーを組み合わせて、複数のイベントを実施できるのはとても魅力を感じました。
規模問わず、お客様のネットワークの運用で利用できれば、運用の質も向上しますね。
参考文献