ダイヤルインテレメトリ接続を確立する
このトピックでは、ダイヤルイン テレメトリ接続を確立する手順について説明します。gRPC サービスとデータ コレクターを設定し、Junos デバイスから収集するセンサー情報に基づいてセンサー パスを選択します。
ダイヤルイン テレメトリ接続を確立するには、次の手順を使用します。gRPC サービスとデータ コレクターを設定し、Junos デバイスから収集するセンサー情報に基づいてセンサー パスを選択します。ダイヤルインモードでは、データコレクターがネットワークデバイスへの接続を開始し、テレメトリデータにサブスクライブします。コレクターとデバイスがセッションを確立します。その後、デバイスはデータをコレクターにストリーミングし、ストリーミング間隔を設定できます。単一の構成および運用データ チャネルを必要とするオペレーターは、多くの場合、ダイヤルイン モードを選択します。
前提 条件:
- ジュニパーデバイスが、Junos Telemetryをサポートする互換性のあるJunos OSバージョンを実行していることを確認します。
- gRPC 互換のテレメトリコレクター(Juniper Telemetry Collector、Prometheus、InfluxDB など)を設定して、テレメトリデータを受信して処理します。
- ジュニパーのデバイスとコレクターがネットワーク経由で通信できることを確認します(gRPCの場合はTCPポート50051(デフォルト)、またはカスタムポート)。
- 実装でTLSを使用する場合は、デバイスとコレクターの証明書を準備します。
- お使いのジュニパーデバイスでサポートされているセンサーの一覧については、 Junos YANGデータモデルエクスプローラを参照してください。
- 手記:Junos YANG Data Model Explorer は、23.2R2-S2 リリースで導入されました。リリース 20.2R1 から 23.1R1 までは、センサー情報を Junos Telemetry Sensor Explorer で確認できます。
gRPC サービスを構成します。 「gRPC サービスの構成」を参照してください。
次の手順に従って、ダイヤルインテレメトリ接続を確立します。
データコレクタの設定
センサーパスの選択
センサーエクスプローラーとセンサーパスの選択に関するガイドライン
ジュニパーネットワークスの Junos YANGデータモデルエクスプローラ を使用して、サポートされているすべてのリソースパス、それに対応するリーフ、およびそれらをサポートするデバイスプラットフォームを表示します。
他のテレメトリ センサーとレガシ センサーに関する特定の情報を検索および表示するには、「 レガシ センサー パス」を参照してください。
センサー パスを構成するためのガイドラインとベスト プラクティスについては、「 センサー パスの探索」を参照してください。
コレクターでデータをデコードする
コレクターでデータをデコードする
次の手順を使用して、データをキャプチャし、生データをデコードし、プロトコル バッファー ファイルを使用してデータをデコードします。
データをデコードするには、次のようにします。
データをキャプチャします。宛先ストリーミングテレメトリサーバーまたはコレクターで netcat を UDP リスナーモードで実行して、すべての受信データグラムをファイルに保存します。ジュニパーネットワークスデバイスのストリーミングサーバープロファイルで設定された宛先ポート番号を使用します。
nc -ul 0.0.0.0 20000 > data.gpb
手記:このコマンドは、データグラムを
data.gpbという名前のファイルに格納します。このプログラムを実行してデータをキャプチャします。データの受信を停止したい場合は、ブレーク信号(Control + C)を送信してプログラムで停止してください生データをデコードします。
手記:この手順は省略可能です。データのエンコードされたメッセージタイプがわかっている場合は、必須ではありません。
data.gpbファイルからメッセージをデコードします。protoc --decode_raw < ../data.gpb 1: "hillrock:160.1.1.25" 2: 0 4: "S1:/junos/system/linecard/interface/logical/usage/:/junos/system/linecard/interface/logical/usage/:PFE" 5: 65265 6: 1477686534474 7: 1 8: 1 101 { 2636 { 7 { 1 { 1: "et-0/0/4:2.32767" 2: 1477642750 3: 813 4 { 12: 0x37363732332e3165 } . . .2636の下の次の入れ子構造は、センサーの種類を識別します。2636数値は、telemetry_top.protoファイルで定義されているJuniperNetworksSensorメッセージを識別します。この例では、数値識別子7、logical_port.protoファイルで定義されたLogicalPortメッセージに対応しています。次のステップでこの情報を使用して、より詳細な出力を生成します。メッセージをデコードしてフィールド名を含めます。プロトコル バッファー コンパイラを decode オプション付きで実行します。さらに、最上位のメッセージ・タイプ (
TelemetryStream) と、メッセージ定義logical_port.protoを持つファイルを指定します。また、プロトコルバッファ(gpb)ライブラリを含める必要があります。protoc --decode TelemetryStream logical_port.proto -I /usr/include -I . < data.gpb system_id: "hillrock:160.1.1.25" component_id: 0 sensor_name: "S1:/junos/system/linecard/interface/logical/usage/:/junos/system/linecard/interface/logical/usage/:PFE" sequence_number: 65268 timestamp: 1477686536484 version_major: 1 version_minor: 1 enterprise { [juniperNetworks] { [jnprLogicalInterfaceExt] { interface_info { if_name: "et-0/0/4:2.32767" init_time: 1477642750 snmp_if_index: 813 parent_ae_name: "ae1.32767" ingress_stats { if_packets: 0 if_octets: 0 } egress_stats { if_packets: 0 if_octets: 0 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/7:3.0" init_time: 1477642750 snmp_if_index: 520 parent_ae_name: "ae0.0" ingress_stats { if_packets: 61203309 if_octets: 6487548454 } egress_stats { if_packets: 87416547 if_octets: 9266153982 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.0" init_time: 1477642750 snmp_if_index: 2512 ingress_stats { if_packets: 26266247 if_octets: 2784214806 } egress_stats { if_packets: 26247215 if_octets: 2781829290 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.1" init_time: 1477642750 snmp_if_index: 2522 ingress_stats { if_packets: 26266249 if_octets: 2784214972 } egress_stats { if_packets: 26249115 if_octets: 2781935590 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.2" init_time: 1477642750 snmp_if_index: 2523 ingress_stats { if_packets: 26266248 if_octets: 2784214912 } egress_stats { if_packets: 26249106 if_octets: 2781935086 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.3" init_time: 1477642750 snmp_if_index: 2524 ingress_stats { if_packets: 26266248 if_octets: 2784214820 } egress_stats { if_packets: 26248520 if_octets: 2781902320 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.4" init_time: 1477642750 snmp_if_index: 2525 ingress_stats { if_packets: 26266247 if_octets: 2784214760 } egress_stats { if_packets: 26247302 if_octets: 2781834112 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.5" init_time: 1477642750 snmp_if_index: 2526 ingress_stats { if_packets: 26266247 if_octets: 2784214760 } egress_stats { if_packets: 26247209 if_octets: 2781828904 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.6" init_time: 1477642750 snmp_if_index: 2527 ingress_stats { if_packets: 26266248 if_octets: 2784214820 } egress_stats { if_packets: 26247196 if_octets: 2781828226 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.7" init_time: 1477642750 snmp_if_index: 2528 ingress_stats { if_packets: 26266247 if_octets: 2784214760 } egress_stats { if_packets: 26247203 if_octets: 2781828618 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.8" init_time: 1477642750 snmp_if_index: 2529 ingress_stats { if_packets: 26266247 if_octets: 2784214760 } egress_stats { if_packets: 26247225 if_octets: 2781829850 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.9" init_time: 1477642750 snmp_if_index: 2530 ingress_stats { if_packets: 26266247 if_octets: 2784214760 } egress_stats { if_packets: 26247209 if_octets: 2781828954 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.32767" init_time: 1477642750 snmp_if_index: 648 ingress_stats { if_packets: 4 if_octets: 240 } egress_stats { if_packets: 0 if_octets: 0 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/4:2.32767" init_time: 1477642750 snmp_if_index: 813 parent_ae_name: "ae1.32767" ingress_stats { if_packets: 0 if_octets: 0 } egress_stats { if_packets: 0 if_octets: 0 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/7:3.0" init_time: 1477642750 snmp_if_index: 520 parent_ae_name: "ae0.0" ingress_stats { if_packets: 61206122 if_octets: 6487846632 } egress_stats { if_packets: 87420567 if_octets: 9266580102 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.0" init_time: 1477642750 snmp_if_index: 2512 ingress_stats { if_packets: 26267458 if_octets: 2784343172 } egress_stats { if_packets: 26248420 if_octets: 2781957020 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.1" init_time: 1477642750 snmp_if_index: 2522 ingress_stats { if_packets: 26267460 if_octets: 2784343338 } egress_stats { if_packets: 26250320 if_octets: 2782063320 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.2" init_time: 1477642750 snmp_if_index: 2523 ingress_stats { if_packets: 26267459 if_octets: 2784343278 } egress_stats { if_packets: 26250311 if_octets: 2782062816 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.3" init_time: 1477642750 snmp_if_index: 2524 ingress_stats { if_packets: 26267460 if_octets: 2784343292 } egress_stats { if_packets: 26249725 if_octets: 2782030050 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.4" init_time: 1477642750 snmp_if_index: 2525 ingress_stats { if_packets: 26267459 if_octets: 2784343232 } egress_stats { if_packets: 26248507 if_octets: 2781961842 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.5" init_time: 1477642750 snmp_if_index: 2526 ingress_stats { if_packets: 26267459 if_octets: 2784343232 } egress_stats { if_packets: 26248414 if_octets: 2781956634 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.6" init_time: 1477642750 snmp_if_index: 2527 ingress_stats { if_packets: 26267460 if_octets: 2784343292 } egress_stats { if_packets: 26248401 if_octets: 2781955956 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.7" init_time: 1477642750 snmp_if_index: 2528 ingress_stats { if_packets: 26267459 if_octets: 2784343232 } egress_stats { if_packets: 26248408 if_octets: 2781956348 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.8" init_time: 1477642750 snmp_if_index: 2529 ingress_stats { if_packets: 26267459 if_octets: 2784343232 } egress_stats { if_packets: 26248430 if_octets: 2781957580 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.9" init_time: 1477642750 snmp_if_index: 2530 ingress_stats { if_packets: 26267459 if_octets: 2784343232 } egress_stats { if_packets: 26248414 if_octets: 2781956684 } op_state { operational_status: "up" } } interface_info { if_name: "et-0/0/13:0.32767" init_time: 1477642750 snmp_if_index: 648 ingress_stats { if_packets: 4 if_octets: 240 } egress_stats { if_packets: 0 if_octets: 0 } op_state { operational_status: "up" } } } } }