SlideShare una empresa de Scribd logo
1 de 34
佐藤 哲大
Telemetryについて
シスコシステムズ合同会社
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
SNMP
ストレージ & 分析
検出 & 測定
従来のモニタリング手法の問題点
データ生成箇所 データ利用箇所
CLI
Syslog
SNMP
Server
Syslog
Collector
Scripts
非リアル
タイム
バックエンド上への強力な負荷
様々なエンコーディング、トランスポー
ト、データモデル、タイムスタンプの正
規化が必要
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
新しいパラダイムへ
検出 & 測定
データ生成箇所 データ利用箇所
T
T
T
リアル
タイム
可能な限り
より多くのデータ
より速く
より役に立つ
より容易に
ストレージ & 分析
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
Telemetry新しいアプローチ
プル型ではなくプッシュ型
解析可能なデータ
データモデルドリブン
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
Model Driven
API(s)
Model Driven
Telemetry
Model Driven
Manageability
Model Driven Manageability
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
NETCONF/RESTCONF/gRPCトランスポート
XML/JSON/GPB/… エンコーディング
YANGモデル
ネイティブ & OpenConfig
ルータ オプティカル
Model-Driven API (NETCONF/RESTCONF)
OpenConfig Streaming Telemetry / IETF YANG-Push
Model-Driven テレメトリ
(Pub/Sub, イベントベース)
Medel-Driven
コンフィグ
レーション
. . . . .
Model Driven Manageability
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
• ネイティブデータモデルはほとんどのコ
ンフィグレーションとオペレーション範
囲を提供
• オープンモデルはネイティブデータモデ
ルにマッピングされる
• オープンモデルからの逸脱はdeviationモ
ジュールで定義
Native vs Open Data Models
Native Model
Open
Model
Native device
config/oper
data
Mapped
config/oper
data
Deviations
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
• (一般論として)高機能、高品質
• 汎用的な用途に限定
• インテグレーションが難しい
• $$$
• 色々とインテグレーションできる
• ネットワーク機器側の実装方式と情報開示
具合による
• 楽しい
チョイス@Telemetry
てれめったとき
ベンダ謹製 OSS活用
今日はこっちにフォーカスして、
機器実装とツールチェーンをご紹介
• ネットワーク機器以外のコンポーネント(コレクタ、データベース、ダッシュ
ボード等)をどうするかには、大きく2つ選択肢がある・・・
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
(XR中心に)機器実装
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
10BRKSPG-2069
Model-Driven Telemetry 設定例
telemetry model-driven
destination-group DGroup1
address family ipv4 192.0.2.1 port 5432
encoding self-describing-gpb
protocol tcp
!
sensor-group SGroup1
sensor-path Cisco-IOS-XR-infra-statsd-oper:infra-
statistics/interfaces/interface/latest/generic-counters
!
subscription Sub1
sensor-group-id SGroup1 sample-interval 10000
destination-id DGroup1
どういった形式でどこに送る?
どういったデータ?
どういった頻度で?
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
11BRKSPG-2999
sensor-group: 取得するデータの指定
telemetry model-driven
sensor-group SGROUP1
sensor-path Cisco-IOS-XR-infra-statsd-oper:infra-
statistics/interfaces/interface/latest/generic-counters
YANG Model
subtree path
どういったデータ?
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
YANGモデルはGithubに公開
どういったデータ?
• 500近いオペレーションYANG モデルが存
在する(IOS XR6.4.2現在)
https://github.com/YangModels/yang/tree/master/vendor/cisco/
xr
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
該当するサブツリーの探し方
13
$ pyang -f tree Cisco-IOS-XR-infra-statsd-oper.yang 
--tree-path infra-statistics/interfaces/interface/latest/generic-counters
module: Cisco-IOS-XR-infra-statsd-oper
+--ro infra-statistics
+--ro interfaces
+--ro interface* [interface-name]
+--ro latest
+--ro generic-counters
+--ro packets-received? uint64
+--ro bytes-received? uint64
+--ro packets-sent? uint64
+--ro bytes-sent? uint64
+--ro multicast-packets-received? uint64
…
• pyangはYANGモデルを扱うための
ツール
• モデルのバリデーション
• 他のモデル(Yin, XMLスキーマ等)へ
変換
• などなど
• ツリー形式で表現することもできる
https://github.com/mbj4668/pyang
どういったデータ?
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
14BRKSPG-2999
主要なSensor Path: システム
Data Model
Interface Oper State Cisco-IOS-XR-pfi-im-cmd-oper:interfaces/interface-xr/interface
Interface Data Rate
Cisco-IOS-XR-infra-statsd-oper:infra-
statistics/interfaces/interface/latest/data-rate
Interfaces Stats
Cisco-IOS-XR-infra-statsd-oper:infra-
statistics/interfaces/interface/latest/generic-counters
Optics Ports Info
Cisco-IOS-XR-controller-optics-oper:optics-oper/optics-ports/optics-
port/optics-Info
Uptime Info Cisco-IOS-XR-shellutil-oper:system-time/uptime
CPU State Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization
Memory Info Cisco-IOS-XR-nto-misc-oper:memory-summary/nodes/node/summary
Processes Memory Cisco-IOS-XR-procmem-oper:processes-memory/nodes
NCS5500 NPU Stats Cisco-IOS-XR-fretta-bcm-dpa-npu-stats-oper:dpa/stats/nodes/node
NCS5500 NPU Resources
Cisco-IOS-XR-fretta-bcm-dpa-hw-resources-
oper:dpa/stats/nodes/node/hw-resources-datas/hw-resources-data
どういったデータ?
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
15BRKSPG-2999
主要なSensor Path: プロトコル
Data Model
LLDP Info
Cisco-IOS-XR-ethernet-lldp-
oper:lldp/nodes/node/neighbors/summaries/summary
IPv4 RIB Info
Cisco-IOS-XR-ip-rib-ipv4-oper:rib/vrfs/vrf/afs/af/safs/saf/ip-rib-route-table-
names/ip-rib-route-table-name/routes/route
IPv6 RIB Info
Cisco-IOS-XR-ip-rib-ipv6-oper:ipv6-rib/vrfs/vrf/afs/af/safs/saf/ip-rib-route-
table-names/ip-rib-route-table-name/routes/route
BGP IPv4 Routes Info
Cisco-IOS-XR-ip-rib-ipv4-oper:rib/vrfs/vrf/afs/af/safs/saf/ip-rib-route-table-
names/ip-rib-route-table-name/protocol/bgp/as/information
BGP IPv6 Routes Info
Cisco-IOS-XR-ip-rib-ipv6-oper:ipv6-rib/vrfs/vrf/afs/af/safs/saf/ip-rib-route-
table-names/ip-rib-route-table-name/protocol/bgp/as/information
BGP IPv4 Neighbor
Cisco-IOS-XR-ipv4-bgp-oper:bgp/instances/instance/instance-active/default-
vrf/neighbors/neighbor
MPLS-TE Tunnels Cisco-IOS-XR-mpls-te-oper:mpls-te/tunnels/summary
RSVP Interface Info Cisco-IOS-XR-ip-rsvp-oper:rsvp/interface-briefs/interface-brief
どういったデータ?
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
Dial-Out
• TCP & gRPC (from 6.1.1)
• UDP (from 6.2.1)
Dial-In
• gRPC only (from 6.1.1)
16
トランスポートのタイプ
Collector
Data
SYN
SYN-ACK
ACK
Collector
Data
SYN
SYN-ACK
ACK
どこに送る?
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
17
destination-group: 宛先
telemetry model-driven
destination-group DGROUP
address family ipv4 192.168.1.1 port 2104
---- and/or ----
address family ipv6 2001:db8::1 port 2104
encoding self-describing-gpb
protocol tcp
どこに送る?
*Dial-In方式のときは address family ... 行を省略
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
エンコーディング
エンコーディングはデータをネットワーク経由で送信できる形式に変換
レシーバは元のデータと意味的に同一のコピーを作成するためにデコードを実施
DATA
DATA
“Decode”
“Encode”
エンコーディング
• Compact GPB
• Self-describing
GPB
• JSON (XR 6.3.1)
18
どういった形式で?
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
GPB compact vs. GPB self-describing
1: GigabitEthernet0/0/0/0
50: 449825
51: 41624083
52: 360333
53: 29699362
54: 91299
<snip>
2倍速い
Operationを表すYANGモデル毎にメッセー
ジ定義(.proto)ファイルが必要
{InterfaceName: GigabitEthernet0/0/0/0
GenericCounters {
PacketsSent: 449825
BytesSent: 41624083
PacketsReceived: 360333
BytesReceived: 29699362
MulticastPacketsReceived: 91299
<snip>
3倍大きい
Telemetryヘッダのメッセージ定義(.proto)
ファイルのみ
GPB – “compact” GPB – “self-describing”
19
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
(おまけ)ちょ、そこkwsk!
syntax = "proto3";
option go_package = "telemetry_bis";
/* Common Telemetry message */ // this is common for both
message Telemetry {
oneof node_id {
string node_id_str = 1;
bytes node_id_uuid = 2; // not used
}
oneof subscription {
string subscription_id_str = 3;
uint32 subscription_id = 4; // not used
}
string sensor_path = 5; // not used
string encoding_path = 6;
string model_version = 7; // not used
uint64 collection_id = 8;
uint64 collection_start_time = 9;
uint64 msg_timestamp = 10;
repeated TelemetryField data_gpbkv = 11;
TelemetryGPBTable data_gpb = 12;
uint64 collection_end_time = 13;
uint64 heartbeat_sequence_number = 14; // not used
}
/* KV GPB specific payload definition */
message TelemetryField {
uint64 timestamp = 1;
string name = 2;
oneof value_by_type {
bytes bytes_value = 4;
string string_value = 5;
bool bool_value = 6;
uint32 uint32_value = 7;
uint64 uint64_value = 8;
sint32 sint32_value = 9;
sint64 sint64_value = 10;
double double_value = 11;
float float_value = 12;
}
repeated TelemetryField fields = 15;
}
/* (Compact) GPB specific payload definition */
message TelemetryGPBTable {
repeated TelemetryRowGPB row = 1;
}
message TelemetryRowGPB {
uint64 timestamp = 1;
bytes keys = 10;
bytes content = 11;
}
https://github.com/cisco/bigmuddy-network-telemetry-
proto/blob/master/staging/telemetry.proto
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
21BRKSPG-2999
Subscription: 全てをまとめる
telemetry model-driven
subscription SUB1
sensor-group-id SGROUP1 sample-interval 30000
destination-id DGROUP1
どういった頻度で?
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
実装状況まとめ
サポート データモデル トランス
ポート
エンコーディ
ング
Data Plane
Telemetry
IOS XR 6.1.1 Native(YANG)
OpenConfig(YANG)
TCP
UDP
gRPC
JSON
GPB
✔ *
NXOS 7.3(0)I5(1) Native(not YANG)
Native(YANG) *
HTTP
gRPC
UDP *
JSON
GPB
✔ *
IOS XE 16.6.1 Native(YANG)
OpenConfig(YANG)
Netconf XML
* Roadmap
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
ツールチェーン
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
OSS活用の全体像
Collector Datastore DashboardMessaging
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
Pipeline
• オープンソース軽量テレメトリレシーバ
• Go実装
• 入力
• プロトコル
• UDP, TCP, gRPC
• エンコーディング
• GPB, GPB key-value(self-describing)
• 出力
• InfluxDB, Apache Kafka, Prometheus
pushgateway
• IOS-XR、NXOSに対応
https://github.com/cisco/bigmuddy-network-telemetry-pipeline
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
• LogstashのCodecプラグイン
• 豊富なLogstash Outputプラグイン(Elasticksearch, Kafka, etc)と組み合わせて使える
• PrometheusやSignal FXのためにHTTPでメトリック情報を提供するOutputプラグイン
• ELK,Prometheus,Signal FX,Apache出力にそれぞれに対応した設定済みのDockerベー
スのスタックが存在(あくまでデモ用途、サンプル設定として参考になる)
Logstashプラグイン
https://github.com/cisco/bigmuddy-network-telemetry-stacks
https://github.com/cisco/logstash-output-bigmuddy-network-telemetry-metrics
https://github.com/cisco/logstash-codec-bigmuddy-network-telemetry
https://github.com/cisco/logstash-codec-bigmuddy-network-telemetry-gpb
(JSON encodingに対応)
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
• fluent-plugin-telemetry-iosxr
• fluent-plugin-telemetry-iosxe
Fluentdプラグイン(Cisco非公式)
https://github.com/tetsusat/fluent-plugin-telemetry-iosxr
https://github.com/tetsusat/fluent-plugin-telemetry-iosxe
https://rubygems.org/gems/fluent-plugin-telemetry-iosxr
https://rubygems.org/gems/fluent-plugin-telemetry-iosxe
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
デモ
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
デモ
Pipeline InfluxDB
Kapacitor
VM
Grafana
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
Kapacitor
• オープンソースの時系列
データ向けのデータ処理
エンジン
• 独自DSLのTICKScriptで
簡単にアラートを作成
• HipChat、Slackなどと統
合
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
参考
dbrp "telemetry"."autogen"
stream
| from()
.measurement('Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization')
.where(lambda: "node-name" == '0/RP0/CPU0')
| alert()
.info(lambda: "total-cpu-one-minute" > 5)
.warn(lambda: "total-cpu-one-minute" > 10)
.crit(lambda: "total-cpu-one-minute" > 15)
.stateChangesOnly()
.message('{{ .Level }}: CPU utilization is {{ index .Fields "total-cpu-one-minute" }}%')
.log('/tmp/alerts.log')
.slack()
Kapacitorアラート設定(cpu_alert.tick)
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
参考
...
[slack]
enabled = true
url = "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX"
channel = "#demo"
username = ""
icon-emoji = ""
global = false
state-changes-only = false
ssl-ca = ""
ssl-cert = ""
ssl-key = ""
insecure-skip-verify = false
...
Kapacitorサービス設定
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
• Everything you need to know about Pipeline
https://xrdocs.github.io/telemetry/tutorials/2018-03-01-everything-you-need-
to-know-about-pipeline/
参考
Telemetryについて

Más contenido relacionado

La actualidad más candente

Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3
Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3
Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3
Toshiaki Maki
 
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
whywaita
 
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
y torazuka
 

La actualidad más candente (20)

KubeVirt 101
KubeVirt 101KubeVirt 101
KubeVirt 101
 
BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)
BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)
BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)
 
VIRLとPyATSで実現するネットワークCI
VIRLとPyATSで実現するネットワークCIVIRLとPyATSで実現するネットワークCI
VIRLとPyATSで実現するネットワークCI
 
EtherCATやPROFINETを OPC UAで接続してみた
EtherCATやPROFINETを OPC UAで接続してみたEtherCATやPROFINETを OPC UAで接続してみた
EtherCATやPROFINETを OPC UAで接続してみた
 
スケールアップファーストのNoSQL、ScyllaDB(スキュラDB)
スケールアップファーストのNoSQL、ScyllaDB(スキュラDB)スケールアップファーストのNoSQL、ScyllaDB(スキュラDB)
スケールアップファーストのNoSQL、ScyllaDB(スキュラDB)
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
 
Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3
Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3
Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3
 
openstack+cephインテグレーション
openstack+cephインテグレーションopenstack+cephインテグレーション
openstack+cephインテグレーション
 
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudyネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
 
Protocol Buffers 入門
Protocol Buffers 入門Protocol Buffers 入門
Protocol Buffers 入門
 
ネットワーク機器のAPIあれこれ入門 (NetOpsCoding#2)
ネットワーク機器のAPIあれこれ入門(NetOpsCoding#2)ネットワーク機器のAPIあれこれ入門(NetOpsCoding#2)
ネットワーク機器のAPIあれこれ入門 (NetOpsCoding#2)
 
次世代Webコンテナ Undertowについて
次世代Webコンテナ Undertowについて次世代Webコンテナ Undertowについて
次世代Webコンテナ Undertowについて
 
JJUG CCC 2018 Spring - I-7 (俺が)はじめての Netty
JJUG CCC 2018 Spring - I-7 (俺が)はじめての NettyJJUG CCC 2018 Spring - I-7 (俺が)はじめての Netty
JJUG CCC 2018 Spring - I-7 (俺が)はじめての Netty
 
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
 
1日5分でPostgreSQLに詳しくなるアプリの開発 ~PostgRESTを使ってみた~(第38回PostgreSQLアンカンファレンス@オンライン 発...
1日5分でPostgreSQLに詳しくなるアプリの開発 ~PostgRESTを使ってみた~(第38回PostgreSQLアンカンファレンス@オンライン 発...1日5分でPostgreSQLに詳しくなるアプリの開発 ~PostgRESTを使ってみた~(第38回PostgreSQLアンカンファレンス@オンライン 発...
1日5分でPostgreSQLに詳しくなるアプリの開発 ~PostgRESTを使ってみた~(第38回PostgreSQLアンカンファレンス@オンライン 発...
 
HTTP2 最速実装 〜入門編〜
HTTP2 最速実装 〜入門編〜HTTP2 最速実装 〜入門編〜
HTTP2 最速実装 〜入門編〜
 
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
 
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
 
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
 
ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門
 

Similar a Telemetryについて

C base design methodology with s dx and xilinx ml
C base design methodology with s dx and xilinx ml C base design methodology with s dx and xilinx ml
C base design methodology with s dx and xilinx ml
ssuser3a4b8c
 

Similar a Telemetryについて (20)

160705-03 RTミドルウエア講習会・名城大
160705-03 RTミドルウエア講習会・名城大160705-03 RTミドルウエア講習会・名城大
160705-03 RTミドルウエア講習会・名城大
 
20180109 titech lecture_ishizaki_public
20180109 titech lecture_ishizaki_public20180109 titech lecture_ishizaki_public
20180109 titech lecture_ishizaki_public
 
Reconf_201409
Reconf_201409Reconf_201409
Reconf_201409
 
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータPyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
 
ネットワーク自動化の課題 - グラフデータベースによる解決
ネットワーク自動化の課題 - グラフデータベースによる解決ネットワーク自動化の課題 - グラフデータベースによる解決
ネットワーク自動化の課題 - グラフデータベースによる解決
 
サイボウズ・ラボユース成果発表会資料
サイボウズ・ラボユース成果発表会資料サイボウズ・ラボユース成果発表会資料
サイボウズ・ラボユース成果発表会資料
 
システムパフォーマンス勉強会#8
システムパフォーマンス勉強会#8システムパフォーマンス勉強会#8
システムパフォーマンス勉強会#8
 
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例
 
JAWS DAYS 2018 | IoT時代におけるデバイスのファームウェアとクラウドのいい関係
JAWS DAYS 2018 | IoT時代におけるデバイスのファームウェアとクラウドのいい関係JAWS DAYS 2018 | IoT時代におけるデバイスのファームウェアとクラウドのいい関係
JAWS DAYS 2018 | IoT時代におけるデバイスのファームウェアとクラウドのいい関係
 
20150715 xflow kikuta_final
20150715 xflow kikuta_final20150715 xflow kikuta_final
20150715 xflow kikuta_final
 
シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化
シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化
シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化
 
Interop2019 Toyota Netcope P4
Interop2019 Toyota Netcope P4Interop2019 Toyota Netcope P4
Interop2019 Toyota Netcope P4
 
C base design methodology with s dx and xilinx ml
C base design methodology with s dx and xilinx ml C base design methodology with s dx and xilinx ml
C base design methodology with s dx and xilinx ml
 
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database AnalyticsPL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
 
Boost sg msgpack
Boost sg msgpackBoost sg msgpack
Boost sg msgpack
 
NSDI2015読み会 Correctness セッション
NSDI2015読み会 Correctness セッションNSDI2015読み会 Correctness セッション
NSDI2015読み会 Correctness セッション
 
"SRv6の現状と展望" ENOG53@上越
"SRv6の現状と展望" ENOG53@上越"SRv6の現状と展望" ENOG53@上越
"SRv6の現状と展望" ENOG53@上越
 
オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜
オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜
オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜
 
IoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache FlinkIoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache Flink
 
WebRTC getStats - WebRTC Meetup Tokyo 5 LT
WebRTC getStats - WebRTC Meetup Tokyo 5 LTWebRTC getStats - WebRTC Meetup Tokyo 5 LT
WebRTC getStats - WebRTC Meetup Tokyo 5 LT
 

Último

Último (11)

Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 

Telemetryについて

  • 2. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public SNMP ストレージ & 分析 検出 & 測定 従来のモニタリング手法の問題点 データ生成箇所 データ利用箇所 CLI Syslog SNMP Server Syslog Collector Scripts 非リアル タイム バックエンド上への強力な負荷 様々なエンコーディング、トランスポー ト、データモデル、タイムスタンプの正 規化が必要
  • 3. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 新しいパラダイムへ 検出 & 測定 データ生成箇所 データ利用箇所 T T T リアル タイム 可能な限り より多くのデータ より速く より役に立つ より容易に ストレージ & 分析
  • 4. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public Telemetry新しいアプローチ プル型ではなくプッシュ型 解析可能なデータ データモデルドリブン
  • 5. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public Model Driven API(s) Model Driven Telemetry Model Driven Manageability Model Driven Manageability
  • 6. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public NETCONF/RESTCONF/gRPCトランスポート XML/JSON/GPB/… エンコーディング YANGモデル ネイティブ & OpenConfig ルータ オプティカル Model-Driven API (NETCONF/RESTCONF) OpenConfig Streaming Telemetry / IETF YANG-Push Model-Driven テレメトリ (Pub/Sub, イベントベース) Medel-Driven コンフィグ レーション . . . . . Model Driven Manageability
  • 7. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public • ネイティブデータモデルはほとんどのコ ンフィグレーションとオペレーション範 囲を提供 • オープンモデルはネイティブデータモデ ルにマッピングされる • オープンモデルからの逸脱はdeviationモ ジュールで定義 Native vs Open Data Models Native Model Open Model Native device config/oper data Mapped config/oper data Deviations
  • 8. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public • (一般論として)高機能、高品質 • 汎用的な用途に限定 • インテグレーションが難しい • $$$ • 色々とインテグレーションできる • ネットワーク機器側の実装方式と情報開示 具合による • 楽しい チョイス@Telemetry てれめったとき ベンダ謹製 OSS活用 今日はこっちにフォーカスして、 機器実装とツールチェーンをご紹介 • ネットワーク機器以外のコンポーネント(コレクタ、データベース、ダッシュ ボード等)をどうするかには、大きく2つ選択肢がある・・・
  • 9. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public (XR中心に)機器実装
  • 10. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 10BRKSPG-2069 Model-Driven Telemetry 設定例 telemetry model-driven destination-group DGroup1 address family ipv4 192.0.2.1 port 5432 encoding self-describing-gpb protocol tcp ! sensor-group SGroup1 sensor-path Cisco-IOS-XR-infra-statsd-oper:infra- statistics/interfaces/interface/latest/generic-counters ! subscription Sub1 sensor-group-id SGroup1 sample-interval 10000 destination-id DGroup1 どういった形式でどこに送る? どういったデータ? どういった頻度で?
  • 11. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 11BRKSPG-2999 sensor-group: 取得するデータの指定 telemetry model-driven sensor-group SGROUP1 sensor-path Cisco-IOS-XR-infra-statsd-oper:infra- statistics/interfaces/interface/latest/generic-counters YANG Model subtree path どういったデータ?
  • 12. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public YANGモデルはGithubに公開 どういったデータ? • 500近いオペレーションYANG モデルが存 在する(IOS XR6.4.2現在) https://github.com/YangModels/yang/tree/master/vendor/cisco/ xr
  • 13. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 該当するサブツリーの探し方 13 $ pyang -f tree Cisco-IOS-XR-infra-statsd-oper.yang --tree-path infra-statistics/interfaces/interface/latest/generic-counters module: Cisco-IOS-XR-infra-statsd-oper +--ro infra-statistics +--ro interfaces +--ro interface* [interface-name] +--ro latest +--ro generic-counters +--ro packets-received? uint64 +--ro bytes-received? uint64 +--ro packets-sent? uint64 +--ro bytes-sent? uint64 +--ro multicast-packets-received? uint64 … • pyangはYANGモデルを扱うための ツール • モデルのバリデーション • 他のモデル(Yin, XMLスキーマ等)へ 変換 • などなど • ツリー形式で表現することもできる https://github.com/mbj4668/pyang どういったデータ?
  • 14. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 14BRKSPG-2999 主要なSensor Path: システム Data Model Interface Oper State Cisco-IOS-XR-pfi-im-cmd-oper:interfaces/interface-xr/interface Interface Data Rate Cisco-IOS-XR-infra-statsd-oper:infra- statistics/interfaces/interface/latest/data-rate Interfaces Stats Cisco-IOS-XR-infra-statsd-oper:infra- statistics/interfaces/interface/latest/generic-counters Optics Ports Info Cisco-IOS-XR-controller-optics-oper:optics-oper/optics-ports/optics- port/optics-Info Uptime Info Cisco-IOS-XR-shellutil-oper:system-time/uptime CPU State Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization Memory Info Cisco-IOS-XR-nto-misc-oper:memory-summary/nodes/node/summary Processes Memory Cisco-IOS-XR-procmem-oper:processes-memory/nodes NCS5500 NPU Stats Cisco-IOS-XR-fretta-bcm-dpa-npu-stats-oper:dpa/stats/nodes/node NCS5500 NPU Resources Cisco-IOS-XR-fretta-bcm-dpa-hw-resources- oper:dpa/stats/nodes/node/hw-resources-datas/hw-resources-data どういったデータ?
  • 15. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 15BRKSPG-2999 主要なSensor Path: プロトコル Data Model LLDP Info Cisco-IOS-XR-ethernet-lldp- oper:lldp/nodes/node/neighbors/summaries/summary IPv4 RIB Info Cisco-IOS-XR-ip-rib-ipv4-oper:rib/vrfs/vrf/afs/af/safs/saf/ip-rib-route-table- names/ip-rib-route-table-name/routes/route IPv6 RIB Info Cisco-IOS-XR-ip-rib-ipv6-oper:ipv6-rib/vrfs/vrf/afs/af/safs/saf/ip-rib-route- table-names/ip-rib-route-table-name/routes/route BGP IPv4 Routes Info Cisco-IOS-XR-ip-rib-ipv4-oper:rib/vrfs/vrf/afs/af/safs/saf/ip-rib-route-table- names/ip-rib-route-table-name/protocol/bgp/as/information BGP IPv6 Routes Info Cisco-IOS-XR-ip-rib-ipv6-oper:ipv6-rib/vrfs/vrf/afs/af/safs/saf/ip-rib-route- table-names/ip-rib-route-table-name/protocol/bgp/as/information BGP IPv4 Neighbor Cisco-IOS-XR-ipv4-bgp-oper:bgp/instances/instance/instance-active/default- vrf/neighbors/neighbor MPLS-TE Tunnels Cisco-IOS-XR-mpls-te-oper:mpls-te/tunnels/summary RSVP Interface Info Cisco-IOS-XR-ip-rsvp-oper:rsvp/interface-briefs/interface-brief どういったデータ?
  • 16. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public Dial-Out • TCP & gRPC (from 6.1.1) • UDP (from 6.2.1) Dial-In • gRPC only (from 6.1.1) 16 トランスポートのタイプ Collector Data SYN SYN-ACK ACK Collector Data SYN SYN-ACK ACK どこに送る?
  • 17. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 17 destination-group: 宛先 telemetry model-driven destination-group DGROUP address family ipv4 192.168.1.1 port 2104 ---- and/or ---- address family ipv6 2001:db8::1 port 2104 encoding self-describing-gpb protocol tcp どこに送る? *Dial-In方式のときは address family ... 行を省略
  • 18. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public エンコーディング エンコーディングはデータをネットワーク経由で送信できる形式に変換 レシーバは元のデータと意味的に同一のコピーを作成するためにデコードを実施 DATA DATA “Decode” “Encode” エンコーディング • Compact GPB • Self-describing GPB • JSON (XR 6.3.1) 18 どういった形式で?
  • 19. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public GPB compact vs. GPB self-describing 1: GigabitEthernet0/0/0/0 50: 449825 51: 41624083 52: 360333 53: 29699362 54: 91299 <snip> 2倍速い Operationを表すYANGモデル毎にメッセー ジ定義(.proto)ファイルが必要 {InterfaceName: GigabitEthernet0/0/0/0 GenericCounters { PacketsSent: 449825 BytesSent: 41624083 PacketsReceived: 360333 BytesReceived: 29699362 MulticastPacketsReceived: 91299 <snip> 3倍大きい Telemetryヘッダのメッセージ定義(.proto) ファイルのみ GPB – “compact” GPB – “self-describing” 19
  • 20. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public (おまけ)ちょ、そこkwsk! syntax = "proto3"; option go_package = "telemetry_bis"; /* Common Telemetry message */ // this is common for both message Telemetry { oneof node_id { string node_id_str = 1; bytes node_id_uuid = 2; // not used } oneof subscription { string subscription_id_str = 3; uint32 subscription_id = 4; // not used } string sensor_path = 5; // not used string encoding_path = 6; string model_version = 7; // not used uint64 collection_id = 8; uint64 collection_start_time = 9; uint64 msg_timestamp = 10; repeated TelemetryField data_gpbkv = 11; TelemetryGPBTable data_gpb = 12; uint64 collection_end_time = 13; uint64 heartbeat_sequence_number = 14; // not used } /* KV GPB specific payload definition */ message TelemetryField { uint64 timestamp = 1; string name = 2; oneof value_by_type { bytes bytes_value = 4; string string_value = 5; bool bool_value = 6; uint32 uint32_value = 7; uint64 uint64_value = 8; sint32 sint32_value = 9; sint64 sint64_value = 10; double double_value = 11; float float_value = 12; } repeated TelemetryField fields = 15; } /* (Compact) GPB specific payload definition */ message TelemetryGPBTable { repeated TelemetryRowGPB row = 1; } message TelemetryRowGPB { uint64 timestamp = 1; bytes keys = 10; bytes content = 11; } https://github.com/cisco/bigmuddy-network-telemetry- proto/blob/master/staging/telemetry.proto
  • 21. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 21BRKSPG-2999 Subscription: 全てをまとめる telemetry model-driven subscription SUB1 sensor-group-id SGROUP1 sample-interval 30000 destination-id DGROUP1 どういった頻度で?
  • 22. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 実装状況まとめ サポート データモデル トランス ポート エンコーディ ング Data Plane Telemetry IOS XR 6.1.1 Native(YANG) OpenConfig(YANG) TCP UDP gRPC JSON GPB ✔ * NXOS 7.3(0)I5(1) Native(not YANG) Native(YANG) * HTTP gRPC UDP * JSON GPB ✔ * IOS XE 16.6.1 Native(YANG) OpenConfig(YANG) Netconf XML * Roadmap
  • 23. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public ツールチェーン
  • 24. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public OSS活用の全体像 Collector Datastore DashboardMessaging
  • 25. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public Pipeline • オープンソース軽量テレメトリレシーバ • Go実装 • 入力 • プロトコル • UDP, TCP, gRPC • エンコーディング • GPB, GPB key-value(self-describing) • 出力 • InfluxDB, Apache Kafka, Prometheus pushgateway • IOS-XR、NXOSに対応 https://github.com/cisco/bigmuddy-network-telemetry-pipeline
  • 26. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public • LogstashのCodecプラグイン • 豊富なLogstash Outputプラグイン(Elasticksearch, Kafka, etc)と組み合わせて使える • PrometheusやSignal FXのためにHTTPでメトリック情報を提供するOutputプラグイン • ELK,Prometheus,Signal FX,Apache出力にそれぞれに対応した設定済みのDockerベー スのスタックが存在(あくまでデモ用途、サンプル設定として参考になる) Logstashプラグイン https://github.com/cisco/bigmuddy-network-telemetry-stacks https://github.com/cisco/logstash-output-bigmuddy-network-telemetry-metrics https://github.com/cisco/logstash-codec-bigmuddy-network-telemetry https://github.com/cisco/logstash-codec-bigmuddy-network-telemetry-gpb (JSON encodingに対応)
  • 27. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public • fluent-plugin-telemetry-iosxr • fluent-plugin-telemetry-iosxe Fluentdプラグイン(Cisco非公式) https://github.com/tetsusat/fluent-plugin-telemetry-iosxr https://github.com/tetsusat/fluent-plugin-telemetry-iosxe https://rubygems.org/gems/fluent-plugin-telemetry-iosxr https://rubygems.org/gems/fluent-plugin-telemetry-iosxe
  • 28. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public デモ
  • 29. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public デモ Pipeline InfluxDB Kapacitor VM Grafana
  • 30. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public Kapacitor • オープンソースの時系列 データ向けのデータ処理 エンジン • 独自DSLのTICKScriptで 簡単にアラートを作成 • HipChat、Slackなどと統 合
  • 31. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 参考 dbrp "telemetry"."autogen" stream | from() .measurement('Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization') .where(lambda: "node-name" == '0/RP0/CPU0') | alert() .info(lambda: "total-cpu-one-minute" > 5) .warn(lambda: "total-cpu-one-minute" > 10) .crit(lambda: "total-cpu-one-minute" > 15) .stateChangesOnly() .message('{{ .Level }}: CPU utilization is {{ index .Fields "total-cpu-one-minute" }}%') .log('/tmp/alerts.log') .slack() Kapacitorアラート設定(cpu_alert.tick)
  • 32. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 参考 ... [slack] enabled = true url = "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX" channel = "#demo" username = "" icon-emoji = "" global = false state-changes-only = false ssl-ca = "" ssl-cert = "" ssl-key = "" insecure-skip-verify = false ... Kapacitorサービス設定
  • 33. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public • Everything you need to know about Pipeline https://xrdocs.github.io/telemetry/tutorials/2018-03-01-everything-you-need- to-know-about-pipeline/ 参考