収集データの Junos Telemetry Interface エクスポート形式について
Junos テレメトリ インターフェイスは、プロトコル バッファー(gpb)形式でデータをエクスポートする 2 つの方法をサポートしています。
ラインカードやネットワーク処理装置(NPU)など、ソースに近いデータをエクスポートするいわゆるネイティブセンサーからUDPを介して。ジュニパーネットワークスは、オープンで拡張可能なデータモデルを定義しています。
ルーティングエンジンを介してデータをエクスポートするgRPCリモートプロシージャコール(gRPC)。データモデルはOpenConfigによって定義され、ベンダーに依存しないデータモデルを使用してネットワークを設定および管理できます。OpenConfig for Junos OSは、YANGデータモデルに対応しています。アップグレードされた FreeBSD カーネルのみに基づくバージョンの Junos OS を実行しているプラットフォームでは、gRPC サーバーとして機能し、RPC インターフェイスを終了するネットワークエージェントと呼ばれる別のパッケージをインストールする必要があります。.Junos OS の他のすべてのバージョンでは、ネットワークエージェントの機能がソフトウェアに組み込まれています。OpenConfig for Junos OSモジュールとYANGモデルもインストールする必要があります。
このセクションでは、UDP を使用してネイティブ センサーからエクスポートされるデータの形式について説明します。データは UDP ヘッダーにカプセル化され、次に IPv4 ペイロードにカプセル化されます。Junos Telemetry Interfaceのこのモデルは、分散型アーキテクチャをベースにしており、設定されたセンサーによって生成されたデータが、コントロールプレーンをバイパスしてデータプレーンから直接エクスポートされることで、他の必要な機能を実行するためにこれらのリソースを節約します。
Junos Telemetry Interfaceは、Junos OSリリース15.1F3、MPC1〜MPC6Eにインターフェイスが設定されたMXシリーズルーター、およびFPC3にインターフェイスが設定されたPTXシリーズルーターで導入されました。Junos OS リリース 15.1F5 以降、Junos テレメトリ インターフェイスは、MX シリーズ ルーターの MPC7E、MPC8E、MPC9E でもサポートされます。
Junos OSリリース16.1R3以降、PTXシリーズルーターのFPC1、FPC2、およびデュアルルーティングエンジンもサポートされています。
Junos OS Release 17.2R1以降では、QFX10000およびQFX5200スイッチもサポートされます。QFX5200 スイッチでは、gRPC ストリーミングのみがサポートされています。
Junos OS リリース 17.3R1 以降、Junos テレメトリ インターフェイスは、PTX3000 ルーター、QFX5110 スイッチ、EX4600 および EX9200 スイッチの RCB(ルーティング制御およびボード)でサポートされます。
Junos OSリリース17.4R1以降、MX2008ルーターがサポートされています。
センサー データのカプセル化形式について
ネイティブセンサーは、UDPを使用してソースに近いデータをエクスポートします。物理インターフェイスの統計情報、ファイアウォール フィルター カウンターの統計情報、ラベルスイッチ パス(LSP)の統計情報など、さまざまな種類のテレメトリ データをエクスポートできます。センサーは、有効にするとすぐにデータの出力を開始します。
センサー データは、 という名前の TelemetryStream
1 つの構造化プロトコル バッファー メッセージとして表されます。以下に示すメッセージ( .proto
ファイル)には、ラインカード、パケット転送エンジン、ルーティングエンジンなど、データソースを識別する複数の属性が含まれています。構成されたセンサーの名前も含まれます。センサーの構成方法の詳細については、 Junos テレメトリ インターフェイス センサーの構成(CLI 手順) サポートされているネイティブ センサーの一覧については、 センサーを参照してください。
また、 .proto
ストリーミング サーバーまたはコレクターでサポートされているすべてのセンサーのファイルもダウンロードする必要があります。ウェブブラウザから、ジュニパーネットワークスのページにある「すべてのJunos Platform」ソフトウェアのダウンロードURL: https://www.juniper.net/support/downloads/ に移動します。 Junos OS プラットフォームの名前とリリース番号を選択したら、[ ツール ] セクションに移動して、 Junos テレメトリ インターフェイスの [データ モデル ファイル ] パッケージをダウンロードします。ストリーミング サーバーの設定の詳細については、 ストリーミング サーバー(Junos Telemetry Interface)を参照してください。
プロトコルバッファメッセージ定義
プロトコル バッファー定義言語での TelemetryStream
メッセージ定義を次に示します。これは、プライベートに定義されたセンサー データを伝送する、など EnterpriseSensors
、いくつかのオプションの入れ子構造を示しています。
// // This file defines the top level message used for all Juniper // Telemetry packets encoded to the protocol buffer format. // The top level message is TelemetryStream. // import "google/protobuf/descriptor.proto"; extend google.protobuf.FieldOptions { optional TelemetryFieldOptions telemetry_options = 1024; } message TelemetryFieldOptions { optional bool is_key = 1; optional bool is_timestamp = 2; optional bool is_counter = 3; optional bool is_gauge = 4; } message TelemetryStream { // router name or export IP address required string system_id = 1 [(telemetry_options).is_key = true]; // line card / RE (slot number) optional uint32 component_id = 2 [(telemetry_options).is_key = true]; // PFE (if applicable) optional uint32 sub_component_id = 3 [(telemetry_options).is_key = true]; // configured sensor name optional string sensor_name = 4 [(telemetry_options).is_key = true]; // sequence number, monotonically increasesing for each // system_id, component_id, sub_component_id + sensor_name. optional uint32 sequence_number = 5; // timestamp (milliseconds since 00:00:00 UTC 1/1/1970) optional uint64 timestamp = 6 [(telemetry_options).is_timestamp = true]; // major version optional uint32 version_major = 7; // minor version optional uint32 version_minor = 8; optional IETFSensors ietf = 100; optional EnterpriseSensors enterprise = 101; } message IETFSensors { extensions 1 to max; } message EnterpriseSensors { extensions 1 to max; } extend EnterpriseSensors { // re-use IANA assigned numbers optional JuniperNetworksSensors juniperNetworks = 2636; } message JuniperNetworksSensors { extensions 1 to max; }
このメッセージには、 TelemetryStream
さまざまな種類のデータを伝送するオプションの入れ子構造も含まれています。1 つの構造は、エンタープライズ、つまりプライベートに定義されたデータを伝送します。ジュニパーネットワークスなどの個々の企業は、エンタープライズセンサーによって生成される属性を定義し、維持しています。各企業には、一意の属性識別子が割り当てられます。現在の規則では、各属性に IANA によって割り当てられたエンタープライズ MIB 識別子を使用します。ジュニパーネットワークスの場合、この割り当てられた識別子は2636です。
特定のメッセージ・タイプがエクスポートおよび受信されたことを確認するには、gpb メッセージの下にある TelemetryStream.enterprise.juniperNetworks
属性を確認します。
セマンティクスや対応するスキーマなど、センサー データによって収集される各要素の説明については、 表 1 を参照してください。
要素タイプ |
説明 |
---|---|
カウンター |
単調に増加する符号なし整数。最大値に達すると、ゼロから開始します。 |
ゲージ |
値を増減できる符号なし 32 ビットまたは 64 ビットの整数。この要素で表されるデータの例としては、キューの深さや温度など、特定のリソースの瞬時値があります。 |
率 |
カウンターやゲージなど、基本メトリックが変化するレート。この要素タイプでは、測定単位(ビット/秒など)と、レートが収集される間隔が明示的に定義されます。 |
平均 |
基本メトリックの複数のサンプルの平均。たとえば、平均キュー項目数データ要素は、 キュー項目 数のいくつかの要素を平均化することによって計算されます。この要素タイプでは、平均の計算に使用する測定の数と、測定間の時間間隔を定義することを強くお勧めします。それ以外の場合は、この平均値を計算する手段を明示的に定義する必要があります。 |
ピーク |
基本メトリックの複数のサンプル間の最大値。たとえば、ピーク キューの深さ要素は、 キューの深さ の複数の測定値を比較し、最大値を選択することによって計算されます。このデータ要素タイプでは、ピーク値の計算に使用する測定の数と、測定間の時間間隔を定義することを強くお勧めします。それ以外の場合は、このピーク値の定義方法を明示的に定義します。また、この値がクリアされず、すべての時間の全体的な最大値を表すかどうかも知っておく必要があります。 |
各データ要素タイプには、要素のサブセットも含まれます。たとえば、データ要素 Counter
と には、 、 、average
peak
および 測定値のrate
サブセットGauge
が含まれます。
変更履歴テーブル
機能のサポートは、使用しているプラットフォームとリリースによって決まります。 機能エクスプローラー を使用して、機能がプラットフォームでサポートされているかどうかを判断します。