この製品のマニュアルセットは、偏向のない言語を使用するように配慮されています。このマニュアルセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザーインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブランゲージに対する取り組みの詳細は、こちらをご覧ください。
このドキュメントは、米国シスコ発行ドキュメントの参考和訳です。リンク情報につきましては、日本語版掲載時点で、英語版にアップデートがあり、リンク先のページが移動/変更されている場合がありますことをご了承ください。あくまでも参考和訳となりますので、正式な内容については米国サイトのドキュメントを参照ください。
テレメトリ データのストリーミングに使用される 3 つのコア コンポーネントは次のとおりです。
テレメトリ ポリシー ファイルは、生成してレシーバにプッシュするテレメトリ データの種類を指定するために使用されます。ユーザがポリシー ファイルを定義します。ポリシーは .policy 拡張子付きのテキスト ファイルに JSON 形式で保存する必要があります。複数のポリシー ファイルを定義して、ルータ ファイル システムの /telemetry/policies/ フォルダにインストールできます。
ポリシー ファイルの構文
{
"Name": "NameOfPolicy",
"Metadata": {
"Version": 25,
"Description": "This is a sample policy to demonstrate the syntax",
"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.MemorySummary.Node",
"RootOper.RIB.VRF",
"..."
]
},
"SecondGroup": {
"Period": 300,
"Paths": [
"RootOper.Interfaces.Interface"
]
}
}
}
Name:ポリシーの名前。上記の例では、ポリシーは NameOfPolicy.policy という名前のファイルに保存されます。ポリシーの名前はファイル名と一致する必要があります(.policy 拡張子を除く)。大文字と小文字のアルファベット(A ~ Z、a ~ z)、および数字(0 ~ 9)を含めることができます。ポリシー名は大文字と小文字が区別されます。
CollectionGroups:グループ名をそれらに関する情報にマップするエンコーダ オブジェクト。収集グループの名前には、大文字と小文字のアルファベット(A ~ Z、a ~ z)および数字(0 ~ 9)を含めることができ、大文字と小文字は区別されます。
Period:各収集グループの連鎖的動作。この期間で、データが照会されてレシーバに送信される頻度を秒単位で指定します。この値は 5 ~ 86400 秒の範囲内に収める必要があります。
RootOper.InfraStatistics.Interface(*).Latest.GenericCounters
スキーマ パスを使用してテレメトリ データを収集します。参考のため、いくつかのパスのリストを次のテーブルに示します。
| 動作 |
Path |
|---|---|
| インターフェイス運用データ |
RootOper.Interfaces.Interface(*) |
| パケット/バイト カウンタ |
RootOper.InfraStatistics.Interface(*).Latest.GenericCounters |
| パケット/バイト レート |
RootOper.InfraStatistics.Interface(*).Latest.DataRate |
| IPv4 パケット/バイト カウンタ |
RootOper.InfraStatistics.Interface(*).Latest.Protocol(['IPV4_UNICAST']) |
| MPLS の統計情報 |
|
| QOS の統計情報 |
|
| BGP データ |
RootOper.BGP.Instance({'InstanceName': 'default'}).InstanceActive.DefaultVRF.Neighbor([*]) |
テレメトリ エンコーダは、生成したデータを目的の形式にカプセル化し、レシーバに送信します。
JavaScript Object Notation(JSON)エンコーダ
このエンコーダは IOS XR ソフトウェアとともにパッケージ化されており、デフォルト形式のテレメトリ データのストリーミングを提供します。CLI および XML で設定でき、特定のポリシーに合わせて登録することができます。設定はポリシー グループにグループ化されます。各ポリシー グループには、1 つ以上のポリシーと 1 つ以上の宛先が含まれます。
Google Protocol Buffers(GPB)エンコーダ
このエンコーダは代替の符号化メカニズムを提供し、UDP を使用して GPB 形式でデータをストリーミングします。CLI および XML で設定でき、JSON と同じポリシー ファイルを使用します。また、データを GPB 形式に変換するには、コンパイルされた .proto ファイル形式のメタデータが GPB エンコーダに必要です。
| タイプ |
名前 |
長さ |
値 |
|---|---|---|---|
| 1 |
リセット コンプレッサ |
0 |
値なし |
| 2 |
JSON メッセージ |
変数 |
Zlib で圧縮された JSON メッセージ |
{
"Policy": "<name-of-policy>",
"Version": "<policy-version>",
"Identifier": "<data from policy file>"
"Data": { … object as above … }
}
{
"Policy": "my_policy",
"Version": "1.0",
"Identifier": "string from policy file"
"Data": {
"Interfaces": {
"GigabitEthernet0/0/0/1": {
"Counters": {
"Protocols": {
"IPv4": {
"CollectionTime": 12345678,
"InputPkts": 100,
"InputBytes": 200,
}
}
}
},
"GigabitEthernet0/0/0/2": {
"Counters": {
"Protocols": {
"IPv4": {
"CollectionTime": 12345678,
"InputPkts": 400,
"InputBytes": 500,
}
}
}
}
}
}
}
}
GPB エンコーダの出力は GPB によって全体的に構成され、単一のパケット内に複数のテーブルを許可して拡張性を持たせています。
例
message TelemetryHeader {
optional uint32 encoding = 1
optional string policy_name = 2;
optional string version = 3;
optional string identifier = 4;
optional uint64 start_time = 5;
optional uint64 end_time = 6;
repeated TelemetryTable tables = 7;
}
message TelemetryTable {
optional string policy_path = 1;
repeated bytes row = 2;
}
テレメトリ レシーバは、宛先として使用してストリーミングされたデータを保存します。ユーザがこのレシーバを定義します。
GPB レシーバ用のコードをコンパイルするには、cisco.proto ファイルのコピーが必要です。cisco.proto ファイルは http://github.com/cisco/logstash-codec-bigmuddy-network-telemetry-gpb/tree/master/resources/xr6.0.0 で入手できます。
protoc --python_out . -I=/sw/packages/protoc/current/google/include/:. generic_counters.proto ipv4_counters.proto