Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

UNIX ユーティリティによる Junos Telemetry Interface データのデコード

UNIXユーティリティを使用して、ジュニパーネットワークスデバイスからのストリーミングデータであるサーバーまたはコレクター上のJunos Telemetry Interfaceデータをデコードできます。このセクションの例では、ストリーミング データの 1 つのパケットをデコードする方法を示します。

データをデコードするためのコレクターの準備

この例では、次のものが必要です。

  • UNIX OS と Netcat (nc) ユーティリティー。

  • プロトコルバッファコンパイラ。

  • Junos Telemetry Interface プロトコル バッファ ファイル。

この手順では、Ubuntu OS を使用してデータをデコードするようにコレクターを準備する方法を示します。

  1. Netcatユーティリティをインストールします。

  2. プロトコル バッファー コンパイラをインストールします。

  3. プロトコルバッファ開発者ライブラリをインストールします。

  4. ライブラリ ファイルがインストールされていることを確認します。

  5. 最新バージョンのJunos Telemetryインターフェイスプロトコルバッファファイルをダウンロードしてインストールします。

    Web ブラウザから、ジュニパーネットワークス ページの [すべての Junos プラットフォーム] ソフトウェアのダウンロード URL に移動します。 https://www.juniper.net/support/downloads/。Junos OS プラットフォームの名前とリリース番号を選択したら、[ ツール ] セクションに移動して Junos Telemetry Interface データ モデル ファイル パッケージをダウンロードします。

    手記:

    抽出したファイルの場所を必ずメモしてください。

コレクターでのデータのデコード

この手順では、データをキャプチャする方法、生データをデコードする方法、およびプロトコル バッファー ファイルを使用してデータをデコードする方法を示します。

データをデコードするには、次のようにします。

  1. データをキャプチャします。

    宛先ストリーミングテレメトリサーバーまたはコレクターで netcat を UDP リスナーモードで実行して、すべての受信データグラムをファイルに格納します。ジュニパーネットワークスデバイスのstreaming-serverプロファイルで構成された宛先ポート番号を使用します。

    手記:

    このコマンドは、データグラムを data.gpb という名前のファイルに格納します。このプログラムを実行してデータをキャプチャします。データの受信を停止したい場合は、ブレーク信号(Control + C)を送信してプログラムで停止してください

  2. 生データをデコードします。

    手記:

    この手順は省略可能です。データのエンコードされたメッセージタイプがわかっている場合は、必須ではありません。

    data.gpb ファイルからメッセージをデコードします。

    2636の下の次の入れ子構造は、センサーの種類を識別します。2636数値は、telemetry_top.proto ファイルで定義されているJuniperNetworksSensorメッセージを識別します。この例では、数値識別子7logical_port.protoファイルで定義されたLogicalPortメッセージに対応しています。次のステップでこの情報を使用して、より詳細な出力を生成します。

  3. メッセージをデコードしてフィールド名を含めます。

    プロトコル バッファー コンパイラを decode オプション付きで実行します。さらに、最上位のメッセージ・タイプ (TelemetryStream) と、メッセージ定義 logical_port.proto を持つファイルを指定します。また、Goggle protocol buffers (gpb) ライブラリを含める必要があります。

コレクターでのJunos Telemetry Interface UDPデータのデコード

コレクターは、受信データを読み取るために、リモートアドレスまたはポートの組み合わせでリスナーを開始する必要があります。受信データは、 telemetry_top.proto ファイルとセンサー proto ファイルを使用してデコードできます。

デコード手順を簡略化するために、コレクターはテレメトリソフトウェアパッケージの一部として出荷されたすべてのプロトファイルをロードして、受信データをデコードできます。

手記:
  1. 管理インターフェイスとWANインターフェイスの両方でストリーミングデータを検証します。ストリーミングサーバープロファイルに適切なアドレスを指定します。
  2. 列挙型と浮動小数点数は、UDP ストリーミングの文字列としてストリーミングされます。gNMI は同じ形式を使用するため、列挙型は文字列として保持されます。
  3. float データ型の処理は、将来のリリースを対象としています。

テレメトリ データが UDP 経由でストリーミングされる場合は、データが正しくデコードされ、不明なフィールドがコレクターでデコードされないことを確認します。

以下は、UDP 経由でテレメトリ データをストリーミングしているときに発生するいくつかの問題です。

  1. 誤ったデコード: 誤ったデコードは、テレメトリ データが UDP 経由で正しくストリーミングされていないことを意味します。次の例では、太字で強調表示されているデータは、データが正しくデコードされなかったことを示しています。この動作は、エンコードが正しくないか、proto ファイルのパッケージが間違っていることが原因です。

    以下は、データが正しくデコードされた例です。

  2. 不完全なデータ ストリーミング: 不完全なデータのストリーミングは、出力ファイルのデータ検証によって検証する必要があります。