本記事では、Open Source Software (OSS) を活用したホワイトボックススイッチのネットワーク可視化環境及び、Grafana ダッシュボードを使用した可視化例についてご紹介します。

Grafana ダッシュボード上の可視化例として、ホワイトボックススイッチのトラフィック流量やインターフェースの状態、ハードウェアのリソース情報などが挙げられます。

ネットワーク可視化環境について

今回ご紹介するネットワーク可視化環境では、ホワイトボックススイッチとして Edgecore 社の Wedge100BF-32X、ネットワーク OS には OSS 版 SONiC を使用しました。

下記構成図の通り、サーバ内で仮想マシン (VM) を起動し、VM 上に Grafana, InfluxDB, Telegraf といったネットワーク可視化環境の構築に必要なツールをインストールしています。

 図1:可視化環境構成図

ホワイトボックススイッチからのデータ取得には、SNMP プロトコルを使用しています。具体的には、VM 上で動作している Telegraf というエージェントが SNMP GetRequest オペレーションを定期的に送信して、ホワイトボックススイッチからデータを要求します。取得したデータは InfluxDB というデータベースに格納されます。

そして、Grafana というダッシュボードツールが InfluxDB に格納されたデータを一定間隔で参照し、データの可視化を実現しています。オペレーターは、SSH 経由で VM の Grafana GUI を操作して、ダッシュボードにアクセスできます。

OSS 各種ツールの概要

今回のネットワーク可視化環境で使用した OSS ベースの各種ツールについてご紹介します。

Grafana

Grafana はデータベースに保存されているデータに対し、クエリを実行してグラフや数値、表、テキストといった様々な表示形式でリアルタイムにデータを表示可能なダッシュボードツールになります。データベースは様々なものに対応しており、InfluxDB, Prometheus, MySQL などが選択可能で、複数データソースを同じグラフに混合することもできます。

機能性も豊富で、代表的なものとしては、閾値を超えた際にデータ情報を外部に通知するアラート機能やダッシュボードの可視化データを PDF に出力する機能などがあります。

 図2:Grafana ダッシュボード可視化例

Telegraf

Telegraf は対象機器のリソースデータを定期的に収集し、InfluxDB などのデータベースに格納するためのエージェントです。SNMP や gNMI など幅広いプロトコルに対応しています。拡張性が高いので、独自機能の追加も可能です。

InfluxDB

InfluxDB は時間に紐づいているデータを扱う際に便利な時系列データベースです。Grafana における代表的なデータソースの1つであり、データベースはコマンドラインや GUI で制御が可能です。

ネットワーク可視化環境の設定

ネットワーク可視化環境の構築に必要な SONiC と OSS 各種ツールの設定を簡単にご紹介します。

SONiC

SONiC 側の設定は下記の通り非常に簡素です。

設定例では、SNMPv2c を想定したコマンドを実行していますが、使用するバージョンによって必要な設定は異なります。

admin@sonic:~$ sudo config interface ip add eth0 192.168.0.60/24 192.168.0.254  /* マネジメントポートへの IP アドレス設定 */
admin@sonic:~$ sudo config snmp community add macnica ro  /* SNMP コミュニティを作成 */

OSS 各種ツール

Telegraf にはツールをインストール後、下記の設定変更が必要です。その他ツールは初期設定でも動作します。

・SNMP 機能の有効化

・SNMP 監視対象の MIB 指定

・ポーリング間隔の設定

Grafana ダッシュボードを使用した可視化例

SNMP プロトコルを使用して、ホワイトボックススイッチから取得したデータのダッシュボード可視化例をご紹介します。今回は主にトラフィック関連データの可視化例をご紹介しますが、SNMP プロトコルで取得可能なデータは全て Grafana のダッシュボードで可視化がおこなえます。

トラフィック毎の可視化

本例では、インターフェースで受信した下記トラフィックのデータをダッシュボードで可視化しています。

・受信トラフィックの総数 (IF Traffic)

・廃棄トラフィックの総数 (IF Discards)

Grafana は、前述の通りデータベースから一定間隔でデータを収集するため、ダッシュボードにはデータがリアルタイムで反映されます。

下記は Ethernet124 インターフェースの通信状況を表示したグラフになります。

 図3:Ethernet124 通信状況

09:39:00~09:50:00 の間に当該インターフェースで受信した11分間の通信状況を可視化しており、Y軸は受信したトラフィックのオクテット数と廃棄数をそれぞれ表しています。IF Traffic のグラフを確認しますと、09:40:00 から一定量のトラフィックを受信後、09:50:00 まで継続しており、IF Discards のグラフからは、その時間帯に受信したトラフィックで廃棄は発生してない事が一目で分かります。

変数フィルタリング機能

Grafanaでは、登録した変数でフィルタリングをかけて複数ダッシュボードの表示内容を切り替えることが可能です。一例として、ダッシュボードの内容を切り替えるために、装置のインターフェース 名を変数として使用します。先程は Ethernet124 で受信したトラフィックのデータを図示しましたが、下記は Ethernet120 で受信したトラフィックのデータです。

 図4:Ethernet120 通信状況

図の上に表示されている loop, CPU などの項目が登録されている変数で、ドロップダウン式で変数を切り替えることが可能です。赤枠で囲っている部分が、今回切り替えに使用した変数となります。二つの図を比較すると、表示されているデータが異なるため、ダッシュボードの切り替えに成功したことが分かります。このように表示するデータがインターフェースなどの単位で重複する場合、ダッシュボードを新たに作成せず変数の切り替えにより表示データを容易に変更することが可能です。

複数トラフィックを集約した可視化

Grafana は、複数トラフィックのデータを1つのパネルに集約して可視化をおこなうことも可能です。

下記は1日間における TCP 接続状況を表示したグラフになります。

・緑線:監視対象機が能動的(自機から他機)にコネクションを開設

・黄線:監視対象機が受動的(他機から自機)にコネクションを開設

・青線:コネクション開設失敗

・橙線:コネクションリセット

 図5:TCP 通信状況

Y軸は各 TCP トラフィックの総数を表しており、グラフを確認しますと、12時頃に全てのコネクションの開設頻度及び失敗回数が少し高いことが分かります。このように関係性の高いデータを一つのパネルに集約化する事で、データの解析が効率良くおこなえるようになります。

以上が、OSS を活用したホワイトボックススイッチのネットワーク可視化環境に関する説明です。第5回にてご紹介しました ecSONiC でも、OSS 版 SONiC と同様の手順で環境構築が可能です。今後の記事では、IP Infusion 社が提供する OcNOS と組み合わせたネットワーク可視化環境や Grafana のダッシュボード作成に関するノウハウをご紹介予定です。

最後に

マクニカではオープンネットワーキングを実際に体験し、試験や検証を行える環境をリモートで提供するサービスのご用意があります。基本構成での検証では無償でご利用可能です。より詳細は以下に記載がありますので、もしご興味がありましたらご覧ください。

お問い合わせ

本記事に関してご質問などありましたら、以下より問い合わせください。

他のOpen Networking記事

以下「Open Networking Blog 記事一覧」より、Open Networkingに関わる他の記事をご覧いただけます。

Open Networking Blogとは?

さまざまなOpen Networking(オープンネットワーキング)に関わるトピックを分かりやすく説明している技術情報ページです。