この製品のマニュアルセットは、偏向のない言語を使用するように配慮されています。このマニュアルセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザーインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブランゲージに対する取り組みの詳細は、こちらをご覧ください。
このドキュメントは、米国シスコ発行ドキュメントの参考和訳です。リンク情報につきましては、日本語版掲載時点で、英語版にアップデートがあり、リンク先のページが移動/変更されている場合がありますことをご了承ください。あくまでも参考和訳となりますので、正式な内容については米国サイトのドキュメントを参照ください。
ここでは、IOS XR のコンテナ内でのテレメトリ レシーバの実行方法について説明します。コンテナ アプリケーションのホスティングについては、コンテナ アプリケーションのホスティング:概要とワークフローを参照してください。
テレメトリを IOS XR で機能させるには、TCP ではなく、UDP を介して GPB(Google プロトコル バッファ)を使用する必要があります。
この手順は、次のステップから構成されています。
テレメトリ ポリシー ファイルは、生成してからテレメトリ レシーバにプッシュするデータの種類を指定します。次に、テレメトリ用のポリシー ファイルの作成手順を示します。
データをストリーミングするスキーマ パスを決定します。
RP/0/RP0/CPU0:ios# schema-describe show interface Wed Aug 26 02:24:40.556 PDT RootOper.InfraStatistics.Interface(*).Latest.GenericCounters
これらのパスが含まれているポリシー ファイルを作成します。
{ "Name": "Test", "Metadata": { "Version": 25, "Description": "This is a sample policy", "Comment": "This is the first draft", "Identifier": "<data that may be sent by the encoder to the mgmt stn" }, "CollectionGroups": { "FirstGroup": { "Period": 30, "Paths": [ "RootOper.InfraStatistics.Interface(*).Latest.GenericCounters" ] } } }
XR Linux bash シェルを起動し、Secure Copy Protocol(SCP)を使用してポリシー ファイルを IOS XR にコピーします。.
RP/0/RP0/CPU0:ios# run [XR-vm_node0_RP0_CPU0:~]$ ip netns exec tpnns bash [XR-vm_node0_RP0_CPU0:~]$ scp Test.policy cisco@10.0.0.1:/telemetry/policies cisco@10.0.0.1's password: Test.policy 100% 779 0.8KB/s 00:00 Connection to 10.0.0.1 closed by remote host.
10.0.0.1 は、ポリシー ファイルのコピー元デバイスの IP アドレスです。
IOS XR プロンプトに移動し、ポリシー ファイルが正しくインストールされているかどうかを確認します。
RP/0/RP0/CPU0:ios# show telemetry policies brief Wed Aug 26 02:24:40.556 PDT Name |Active?| Version | Description ----------------------------|-------|---------|------------------------------ Test N 1 This is a sample policy
.proto ファイルは .map ファイルにコンパイルされます。コンパイルはサーバ上で実行されます。telemetry_protoc というコンパイラを http://gitlab.cisco.com/groups/telemetry で入手できます。このコンパイラは .proto ファイルを取得し、メッセージを符号化するためにルータ上で使用するコードを生成します。
.proto ファイルを生成します。
telemetry generate gpb-encoding path "RootOper.InfraStatistics.Interface(*).Latest.GenericCounters" file disk0:generic_counters.proto
.proto ファイルは、オンボックス ツールによって生成されます。ツールは命名パラメータを無視するため、任意です。
(注) |
ツールは引用符内のテキストを無視します。そのため、パスには引用符を含めないでください。 |
ボックス外で .proto ファイルをコンパイルします。
シスコは Dev Hub でテレメトリ コンパイラを提供しています。Linux ボックスにディレクトリをコピーして、次に示すように実行することができます。
telemetry_protoc -f generic_counters.proto -o generic_counters.map
.proto ファイルのコピーに Dev Hub からアクセスし、次のように Linux ボックスの標準コンパイラを実行します。
protoc python_out . -I=/ sw/packages/protoc/current/google/include/:. generic_counters.proto ipv4_counters.proto
/telemetry/gpb/maps でマップ ファイルを IOS XR にコピーします。
以降に示すステップで概説するように、GPB エンコーダを設定し、テレメトリ ポリシーをアクティブ化してデータをストリーミングします。
次に示すように、ループバック インターフェイス アドレスを設定して IOS XR にテレメトリ レシーバをマッピングします。
RP/0/RP0/CPU0:ios(config)#interface Loopback2 RP/0/RP0/CPU0:ios(config-if)#ipv4 address 2.2.2.2/32 RP/0/RP0/CPU0:ios(config-if)#no shut RP/0/RP0/CPU0:ios(config-if)#commit Fri Oct 30 07:51:14.785 UTC RP/0/RP0/CPU0:ios(config-if)#exit RP/0/RP0/CPU0:ios(config)#exit RP/0/RP0/CPU0:ios#show ipv4 interface brief Fri Oct 30 07:51:48.996 UTC Interface IP-Address Status Protocol Loopback0 1.1.1.1 Up Up Loopback1 8.8.8.8 Up Up Loopback2 2.2.2.2 Up Up GigabitEthernet0/0/0/0 192.164.168.10 Up Up GigabitEthernet0/0/0/1 192.57.43.10 Up Up GigabitEthernet0/0/0/2 unassigned Shutdown Down MgmtEth0/RP0/CPU0/0 192.168.122.197 Up Up RP/0/RP0/CPU0:ios#
エンコーダを設定し、前のステップで設定した IOS XR のループバック インターフェイスにポリシーをストリーミングします。
telemetry encoder gpb policy group alpha policy demo destination ipv4 2.2.2.2 port 5555 ! ! !
ここでは、IOS XR のサードパーティ製コンテナ(LXC)を起動する方法について説明します。
IOS XR にログインし、デフォルトの名前空間(XRNNS)に移動します。
RP/0/RP0/CPU0:ios# run [xr-vm_node0_RP0_CPU0:~]$
サードパーティ製コンテナを起動します。
[xr-vm_node0_RP0_CPU0:~]$virsh -c lxc+tcp://10.11.12.15:16509/ -e ^Q console demo1
要求されたら、コンテナにログインします。
Connected to domain demo Escape character is ^Q Kernel 3.14.23-WR7.0.0.2_standard on an x86_64 host login: Password:
これで、サードパーティ製コンテナが正常に起動されました。
テレメトリ レシーバは、ストリーミングされたデータを指定したインターフェイス IP アドレスとポート番号でリッスンし、受信したパケットのヘッダーを印刷します。.proto ファイルが指定されている場合は、プロトコル コンパイラを使用してそのファイルがコンパイルされ、メッセージ コンテンツも印刷されます。デフォルトでは、各テーブルの最初の行は印刷されますが、出力全体を印刷するには print-all オプションを使用します。
起動したコンテナ内でテレメトリ レシーバを実行するには、次のステップを実行します。
すべてのレシーバ ファイルをサードパーティ製コンテナにダウンロードします。https://github.com/cisco/bigmuddy-network-telemetry-collector では、レシーバ ファイルを IOS XR で使用できます。
レシーバを実行してデータを印刷します。
python gpb_receiver.py ipaddress 2.2.2.2 port 5555 proto generic_counters.proto ipv4_counters.proto
次に示すように、テレメトリ レシーバにデータが表示されます。
Waiting for message Got message of length:1036bytes from address:('10.1.1.1', 5555) Encoding:2271560481 Policy Name:demo Version:25 Identifier:<data that may be sent by the encoder to the mgmt stn> Start Time:Wed Jan 21 09:54:33 1970 End Time:Wed Aug 26 09:28:37 2015 # Tables:1 Schema Path:RootOper.InfraStatistics.Interface.Latest.GenericCounters # Rows:6 Row 0: applique:0 availability_flag:0 broadcast_packets_received:0 broadcast_packets_sent:0 bytes_received:0 bytes_sent:0 carrier_transitions:0 crc_errors:0 framing_errors_received:0 giant_packets_received:0 input_aborts:0 input_drops:0 input_errors:0 input_ignored_packets:0 input_overruns:0 input_queue_drops:0 interface_name:Null0 last_data_time:1440606516 last_discontinuity_time:1440498130 multicast_packets_received:0 multicast_packets_sent:0 output_buffer_failures:0 output_buffers_swapped_out:0 output_drops:0 output_errors:0 output_queue_drops:0 output_underruns:0 packets_received:0 packets_sent:0 parity_packets_received:0 resets:0 runt_packets_received:0 seconds_since_last_clear_counters:0 seconds_since_packet_received:4294967295 seconds_since_packet_sent:4294967295 throttled_packets_received:0 unknown_protocol_packets_received:0 Waiting for message Got message of length:510bytes from address:('2.2.2.2', 5555) Encoding:2271560481 Policy Name:demo Version:25 Identifier:<data that may be sent by the encoder to the mgmt stn> Start Time:Wed Jan 21 09:54:33 1970 End Time:Wed Aug 26 09:28:38 2015 # Tables:1 Schema Path:RootOper.InfraStatistics.Interface.Latest.Protocol # Rows:5 Row 0: bytes_received:0 bytes_sent:0 input_data_rate:0 input_packet_rate:0 interface_name:Loopback2 last_data_time:1440606517 output_data_rate:0 output_packet_rate:0 packets_received:0 packets_sent:0 protocol:24 protocol_name:IPV4_UNICAST
テレメトリ レシーバはサードパーティ製コンテナ(LXC)内で正常に動作します。