Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Telemetry事始め

3,345 views

Published on

NetOpsCoding#5 × ネットワークプログラマビリティ勉強会#13
https://network-programmability.connpass.com/event/67156/

Published in: Engineering
  • Be the first to comment

Telemetry事始め

  1. 1. Telemetry事始め Tetsuhiro Sato
  2. 2. Telemetry?  本発表では、以下の2つ標準で実現を目指す事柄を総称 してTelemetryと呼びます  IETF YANG-PUSHと関連のドラフト  OpenConfig Telemetry 3
  3. 3. SNMP ストレージ&解析 sensing & measurement 従来のモニタリング手法の問題的 データ生成側 データ利用側 CLI Syslog SNMP Server Syslog Collector Scripts ノン リアル タイム バックエンドに重い負荷 さまざまなエンコーディング、トラ ンスポート、データモデル、タイ ムスタンプを標準化すべき
  4. 4. 新しいパラダイムへ sensing & measurement データ生成側 データ利用側 T T T リアル タイム より多くのデータ より高頻度で より使いやすく より便利に ストレージ&解析
  5. 5. Telemetry実現の鍵 PullではなくPushモデル 解析可能なデータ データモデル駆動
  6. 6. Pullモデル vs. Pushモデル Pullモデル  アプリケーション側からポーリングによ り情報取得 Pushモデル  定期的、イベント、変更の度にデバイ ス側から通知 デバイス アプリケーションrequest response request response request response subscribe response push push push データストア イベント デバイス アプリケーション データストア イベント
  7. 7. (Pushモデルの)サブスクリプションモデル Configured  デバイス(Sender)で送信先 (Receiver)を明示的に設定 Dynamic  アプリケーション(Subscriber)がデ バイス(Publisher)へSubscribeす る 8 デバイス アプリケーション デバイス アプリケーションsubscribe response push push push データストア イベント データストア イベント push push push Sender Receiver Publisher Subscriber push
  8. 8. 標準化動向
  9. 9. IETF YANG PUSH 10  レポジトリ  https://github.com/netconf-wg/yang-push  要件  Requirements for Subscription to YANG Datastores(RFC7923)  関連する5つのドラフト  draft-ietf-netconf-yang-push  draft-ietf-netconf-subscribed-notification  draft-voit-netmod-yang-notifications2  draft-ietf-netconf-event-netconf  draft-ietf-netconf-event-restconf
  10. 10. 関連ドラフトの位置づけ 11 引用元: Evolution of the Subscription & Event Notification Drafts (IETF98) https://www.ietf.org/proceedings/98/slides/slides-98-netconf-netconf-notification-drafts-00.pdf
  11. 11. 関連ドラフトの詳細 12 引用元: Evolution of the Subscription & Event Notification Drafts (IETF98) https://www.ietf.org/proceedings/98/slides/slides-98-netconf-netconf-notification-drafts-00.pdf
  12. 12. IETF YANG PUSH データ送信までの流れ① Collector Subscription RPC <netconf:rpc message-id="101" xmlns:netconf="urn:ietf:params:xml:ns:netconf:base:1.0"> <establish-subscription xmlns="urn:ietf:params:xml:ns:yang:ietf-yang-push:1.0"> <filter netconf:type="xpath" xmlns:ex="http://example.com/sample-data/1.0" select="/ex:foo"/> <period>500</period> <encoding>encode-xml</encoding> </establish-subscription> </netconf:rpc> Router Response code <rpc-reply message-id="101" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <subscription-result xmlns="urn:ietf:params:xml:ns:yang:ietf-yang-push:1.0"> ok </subscription-result> <subscription-id xmlns="urn:ietf:params:xml:ns:yang:ietf-yang-push:1.0"> 101 </subscription-id> </rpc-reply> 選択フィルタ 間隔 エンコーディング
  13. 13. IETF YANG PUSH データ送信までの流れ② Collector Push-Update <notification xmlns="urn:ietf:params:xml:ns:netconf:notification:1.0"> <eventTime>2015-03-09T19:14:56Z</eventTime> <push-update xmlns="urn:ietf:params:xml:ns:yang:ietf-yang-push:1.0"> <subscription-id>101</subscription-id> <time-of-update>2015-03-09T19:14:55.233Z</time-of-update> <datastore-contents> <foo> <bar>some_string</bar> </foo> </datastore-contents> </push-update> </notification> Router Push-Update Push-Update
  14. 14. gRPC Network Management Interface (gNMI)  コンフィグ管理とStreaming Telemetryのための統一の マネジメントプロトコル  gRPCフレームワークを活用  効率的なシリアライゼーション  NETCONF/RESTCONFの 代替を目指す 15 http://www.openconfig.net/projects/rpc/
  15. 15. gRPC Network Management Interface (gNMI)  仕様  https://github.com/openconfig/reference/tree/master/rpc/gnmi  標準化  draft-talwar-rtgwg-grpc-use-cases (ユースケース)  IETF96で提出 (すでにExpire)  draft-openconfig-rtgwg-gnmi-spec (仕様)  IETF98で提出 (すでにExpire)  ドラフトは提出したが、標準化を完遂する気はないらしい。。。 16
  16. 16. OpenConfig Telemetry 17 ! 引用元: Model-driven Network Management https://www.slideshare.net/aashaikh/modeldriven-network-management
  17. 17. IETFとOpenConfigのギャップ 18 引用元: 4 Subscription Drafts (IETF96) https://www.ietf.org/proceedings/96/slides/slides-96-netconf-5.pdf
  18. 18. 利用例
  19. 19. オープンソース活用による可視化 20 GrafanaFluentd or Telegraf InfluxDB Telemetry Data Collection Database VisualizeDataSource GrafanaFluentd or Telegraf InfluxDB Telemetry Data Collection Database VisualizeDataSource Kafka or NATS Messaging
  20. 20. IOS XR Model Driven Telemetry 21 Subscribing Device Subscriber regular stream XR Common namespace / interaction model XR Feature XR Feature XR Feature Publisher Telemetry Engine GPB Encoder JSON Encoder トランスポート: • TCP • UDP • gRPC エンコーディング: • XML • JSON • GPB • GPB(Self-Describing) サブスクリプション: • Configured Pushタイミング • Periodic データモデル • Native • OpenConfig
  21. 21. デモ Fluentd + Grafana 22 Telemtryデータ Fluentd telemetry-iosxr プラグイン InfluxDB
  22. 22. (参考) Fluentd 23
  23. 23. fluent-plugin-telemetry-iosxr  IOS XRのModel Driven Telemetryに対応するFluentdのInputプラグイン  TCPトランスポートとJSONエンコーディングに対応  fluent-plugin-influxdbと組み合わせると、InfluxDBに出力できる  いくつか未解決な問題が残存  IOS XRが吐き出すTelemetryデータが多次元なのに対して、Grafanaはフラットなデータにしか 対応できない  fluent-plugin-influxdbにデータを渡すときに、どのフィールドをInfluxDB的にtagにすべきかの 情報を渡せない(fluent-plugin-influxdbの設定でauto-tags=trueにしておくと、とりあえず文 字列のフィールドはtagにしてくれる)  他のトランスポート、エンコーディング方式のサポート 24 https://github.com/tetsusat/fluent-plugin-telemetry-iosxr https://rubygems.org/gems/fluent-plugin-telemetry-iosxr
  24. 24. おわり ご清聴、ありがとうございました m(_ _)m 26

×