Telemetryの構成要素には①ネットワーク機器、②Telemetryコレクターの2つがあり、技術要素として(1)データモデル、(2)Encoding、(3)Transportの3つがあります。Telemetryを採用するには、これら構成要素の準備と、採用する技術の検討が必要です。
今回は構成要素を解説した後に、第1回「SNMPの課題とTelemetry登場の背景」で説明したStreaming Telemetryに適した技術群(図表1のCase 1)をベースに、実際にTelemetry環境を構築します。
図表1 技術要素のまとめ
ネットワーク機器の対応状況図表2に示す通り、Telemetryデータはルーター/スイッチ等で生成し、指定したコレクターへ送信します。ネットワーク機器ベンダー各社の独自データモデルによるTelemetry機能の実装が先行していますが、グーグル、アップル、AT&T等が主導してベンダー非依存な共通データモデルを策定するOpenConfig(第1回参照)のサポートも進みつつあります。
図表2 Telemetryの構成要素
代表的なベンダーであるシスコシステムズ、ジュニパーネットワークス、アリスタネットワークスにおいて、手軽に動作を確認できる仮想アプライアンス製品のTelemetry対応が進んでいます(図表3)。
図表3 主要ベンダーのTelemetry対応状況
◆Cisco IOS XRv 9000
シスコのハイエンドルーター(CRS、ASR、NCSシリーズ)に搭載されている「IOS XR」OSは、Telemetry機能を実装しています。
仮想アプライアンスの「IOS XRv 9000」も提供されており、主要なハイパーバイザーであるKVMやESXi上でも動作します。また無償のデモ版でも、処理帯域に制限があるものの、OpenConfigに対応したTelemetry関連の動作を確認できます。
◆Juniper vMX
ジュニパーでは、ハイエンドルーターであるMXシリーズの仮想アプライアンス「vMX」がOpenConfigに対応したTelemetry機能を実装しています。動作するOSはJunosです。
vMXもIOS XRv 9000と同様に、主要なハイパーバイザーであるKVMやESXi上でも動作します。vMXはデモ版が提供されており、60日間無償で利用可能です。
◆Arista vEOS
アリスタでは、データセンタースイッチで動作するOS「EOS」がTelemetry機能を実装しており、その仮想アプライアンス版が「vEOS Router」です。無償版(ライセンス未適用)の「vEOS Router」では10Mbpsまでの転送制限が付くものの、Telemetry関連の各種機能が確認できます。主要なハイパーバイザーであるKVMやESXi上でも動作します。
TelemetryコレクターとはTelemetryコレクターは、ルーターから送信されるTelemetryデータを収容するものです。具体的には、機器からのTelemetryデータを受けるFrontendコンポーネントに相当し、gRPCセッションの開始(イニシエート)、TelemetryデータのSubscribe(購読)、GPBのデシリアライズ等を担います。コレクターの付加機能として、運用者がネットワークインフラの状態を把握するための可視化や分析も実現可能です。
このTelemetryコレクターには、オープンソースとして無料公開されているソフトウェアと、ベンダー各社が提供している製品版の2種類があります。以下に代表的なオープンソースのコレクターを紹介します。
◆cisco/bigmuddy-network-telemetry-pipeline
本ツールは、GitHubで公開されているOpenConfig/gRPC対応型Telemetryコレクターです。収容したTelemetryデータに対してGPBデシアライズを施し、人が読めるテキスト形式でシステムに出力できます(図表4)。
図表4 cisco/bigmuddy-network-telemetry-pipeline
また、その出力をKafka(オープンソースのメッセージングシステム)に展開することや(展開されたTelemetryデータは別システムからの二次利用も可能)、同梱されているGrafana(GitHubで公開されている可視化ツール)を用いたネットワークインフラの可視化(帯域やCPU/Memory使用率グラフ等)が併せて可能です。
同種のツールとして、Juniper/opennti(https://github.com/Juniper/open-nti)や、aristanetworks/goarista(https://github.com/aristanetworks/goarista)等があります。
◆その他のツール
TelemetryはデータモデルにOpenConfigを利用できるため、OpenConfig WGで規定されるデータモデルを参照することで、環境構築前にTelemetryで取得可能なデータを大まかに把握できます。このデータモデルはGitHubで公開(https://github.com/openconfig/public)されており、誰でも参照可能ではあるのですが、記述形式がYANGであるため、図表5のように視覚的に特徴を捉えるのが難しくなっています。
図表5 OpenConfigデータモデル例:openconfig-interface.yang>