Big Monitoring FabricとZabbixによるイベントドリブンなパケットキャプチャの実現

ビジネス推進本部 応用技術部
クラウドデータセンターチーム
新林 辰則

本コラムでは、Big Switch Networks社のBig Monitoring FabricとZabbixの監視機能を使用し、Zabbixで検知したアラームと同時に、自動的なパケットキャプチャをBMFから開始する連携についてご紹介させていただきます。

1. Big Monitoring Fabricとは

Big Monitoring Fabric(以下BMF)はBig Switch Networks社が提供する、ネットワークパケットブローカ(NPB)製品です。NPBとは、実際のサービスを構成する本番ネットワークからSPANポートやインラインタッピング装置を用いて、分岐させたパケットをIPアドレス、TCP/UDPポート番号、VLAN等でフィルタリングする機能やパケットのコピー、集約機能などを使用し、効率よくパケット分析、解析またはトラブルシュートするためのツールに対して送り届ける役割を持つ製品です。

figure1

NPBの配置イメージ

これにより、複数のキャプチャポイントから必要なトラフィックだけを必要なツールに対して、リモートからNPBへの設定のみで送り届けることが可能になりますので、何かトラブルが起きた際に現地に行き、SPANポートの設定とキャプチャツールを仕掛けるといった作業が必要無くなり、即座にWireshark等を使ったトラブルシュートや、他のネットワーク性能、アプリケーション性能分析ツールにパケットを送ることが可能です。

Big Monitoring Fabricは特徴として、コントローラとスイッチというコンポーネントに分かれており、スイッチを必要な台数分配置していただき(スイッチを配置する拠点が離れている場合もGREトンネル機能で接続可能)コントローラから一括して管理することで、キャプチャを仕掛けておきたいポイントが大量にある場合や、距離的に離れている場合(あるデータセンターにしかパケット解析装置が無い場合など)でも対応可能です。

また、スイッチのハードウェアにはホワイトボックススイッチと呼ばれる、安価に手に入る代わりにOSの入っていないハードウェアを購入し、そこにBMFのOSをインストールする形を取っているため、従来のNPB製品よりポート単価が安く、容易にスケールアウトすることが可能となっています。

figure2

複数のスイッチを単一のコントローラから制御可能

また、コントローラにて各スイッチがどのように接続されているかは、LLDPを用いて把握しているため、BMFを運用される方はどのインターフェースで本番ネットワークから分岐されたパケットを受けているのか、また、どのインターフェースがキャプチャツールに繋がっているのかを把握しておけば、BMFで管理されているスイッチ同士がどのように繋がっているかを意識することなく、トラフィックを必要なツールに届けることが可能です。

2. REST APIを使ったZabbixとの連携

REST APIでは、プロトコルとしてHTTPを用い、設定対象(リソース)毎に固有のURLを持ちます。例えばBMFコントローラのNTPサーバの設定に対して、http://controller.local/bmf/ntp/ntpserverというURLが割り当てられ、このURLに対してGETやPOSTメソッドを使い、設定の読み出し、書き込みを行うことができます。

BMFコントローラはREST APIを提供しており、全ての操作はAPIを使って外部から実行することも可能です。これを利用すると、様々なイベントをトリガとしてBMFのAPIをコールすることで、必要な時に、自動的にパケットキャプチャを開始することができます。

これにより、例えば

・トラブルが発生した場合に、即座にパケットキャプチャを開始できる

・いつ再現するか分からない不具合がある場合、不具合が起きた時にダイナミックにキャプチャを開始できる

・イベントが起きている間だけキャプチャすることで、ストレージ使用量、キャプチャファイルサイズを抑えられる

・操作インターフェースを自作し、運用者に必要なパラメータ以外の操作をさせないようにできる

といったメリットがあります。

本コラムではZabbixを使用してWebサーバのレスポンスタイムを監視し、レスポンスタイムがある閾値を超えた場合に、アラームを発生させます。Zabbixではアラームが発生した場合に特定のアクションを実行させることができ、このアクションの中でLinuxのコマンド等を実行させることも可能です。

そこで、予めコントローラに設定したBMFのポリシー(どういったパケットをどのキャプチャツールへ送り届けるかを定義したもの)をAPIからオン/オフするスクリプトをZabbix Serverに置いておき、レスポンスタイムが悪化してアラームが上がった際のアクションに、そのスクリプトを実行するコマンドを設定します。

figure3

APIによるZabbix連携のイメージ

figure4

Zabbixのアクション設定例

上記の例ではZabbix Server上にpcont.plというスクリプトを作成し、その中で特定のBMFポリシーの設定に対して、それをオン/オフする設定をREST APIを使ってPOSTしています。ステータスが正常に戻った際にもアラームが出るため、そのアラームに対してはポリシーをオフにするコマンドをアクションとして設定することで、異常アラームが継続している間のみ、ダイナミックにキャプチャを取ることが可能です。

今回はZabbixを例として取り上げておりますが、他の監視装置や監視以外の用途のものであっても、何等かのイベントをトリガとしてコマンドやスクリプトを実行可能な仕組みがあれば、そこから同様にBMFのポリシーをオン/オフしたり、APIはBMF上の全ての操作を実行可能ですので、新たに特定のIPアドレスやプロトコルに絞った形でパケットをツールに届けるポリシーを作成し、適用させるといったことも可能です。

figure5

レスポンスタイムが悪化する(赤枠内)とそれをZabbixが検知し、アラームの生成とアクションを実行します

figure6

Zabbixの「イベント」ページからアラームの内容と実行されたアクションを確認できます。

3. まとめ

今回は、Big Switch Networks社のBig Monitoring Fabricについて、ZabbixとREST APIを使用したダイナミックなパケットキャプチャの例についてご紹介させていただきました。前述のとおり、イベントの検知とそれをトリガとしてコマンドやスクリプトを実行する仕組みがあれば、今回の例に限らず、様々な使い方ができる可能性があります。

また、Big Monitoring FabricではAPIをコールするためのスクリプト作成を支援する機能もあり、それを使用するとBMFコントローラのコマンドをREST APIの形でCLI上に表示することが可能です。

ダイナミックなパケットキャプチャの実現によって、トラブルが発生してから必要な情報を入手して解析に入るまでの時間が短縮され、安定的なサービスの運用が可能になります。

執筆者プロフィール

新林 辰則
ネットワンシステムズ株式会社 ビジネス推進本部
応用技術部 クラウドデータセンターチーム所属

SDN製品の評価・検証作業、案件支援に従事。主にBig Switch Networks社製品の評価・検証や、これらと連携する、データセンター管理製品の評価・検証を行っている。

イベント/レポート

pagetop