Help us understand the problem. What is going on with this article?

Cisco Model Driven Telemetryの参考資料メモ

More than 1 year has passed since last update.

はじめに

Cisco Model Driven Telemetry初心者が、OSSを組み合わせて環境構築する際に参考にした資料のメモです。
今回はCisco IOS XEをメインにまとめていますが、IOS-XRやNX-OSでもサポートされていますし、Telemetry自体は他ベンダー製品でもサポートされています。
ご参考までに、個人的に役に立った度合いを3段階で分けています。(記事の良し悪しというより、後で自分がどれを読み返すかが基準なので悪しからず。)
★★★: Must Read  ★★: Recommended Read  ★: FYI

1. Model Driven Programmabilityの概要

(1) ★★ DevNet Learning Labs - モデル駆動型プログラマビリティの紹介
モデル駆動型プログラマビリティの概要、NETCONFとRESTCONFの使い方が非常に分かりやすくまとめられている。
NETCONFでは、ターミナルから直接XMLを送信したり、ncclientというPythonベースのクライアントツールで操作したりする演習を行う。RESTCONFでは、PostmanでCRUD(Create/Read/Update/Delete)の演習を一通り実施。
Pythonちょっとかじったことあるけど、モデル駆動って何?という方はまずこれから学習するとよいと思う。

2. Model Driven Telemetryの概要 (Cisco資料)

(1) ★★★ JANOG - Telemetryについて
CiscoのTelemetry概要やOSSのツールについて、日本語で分かりやすくまとめられている。
無題0816-0.png
※出典: Telemetryについて p.24

(2) ★★★ CLUS2019 - Application Hosting and Model Driven Telemetry on IOS XE
IOS XEのTelemetryだけでなく、Application Hostingの資料としても参考になる。
(余談だが、最後にCatalyst9300、SD-Access、Wireless、IOS XE Programmability、DNA Assuarance、SD-WANのBooksprintも紹介されていて、地味にありがたい。)

(3) ★★★ CLUS2019 - Advanced Topics in Cisco IOS Telemetry
モデル駆動のManagement、Telemetryにおいて、ツールチェーンの関係性がまとまっている。
無題0815-0.png
※出典: CLUS2019 - BRKSPG-2503 Advanced Topics in Cisco IOS Telemetry p.16
無題0815-1.png
※出典: CLUS2019 - BRKSPG-2503 Advanced Topics in Cisco IOS Telemetry p.19

また、Encoding、Protocol、Collector、Datastore、Dashboardが色々ある中、どれを使うべきか判断する上でも参考になる。
Protocolは、今のところgRPCがベスト。将来的にはgNMIに抜かれる可能性あり。Encodingは、KV-GPBがデータ効率性と使い易さのバランスが取れていそう。
無題0815-2.png
※出典: CLUS2019 - BRKSPG-2503 Advanced Topics in Cisco IOS Telemetry p.43

Datastore(+Collector、Dashboard)については、時系列データベースとして、従来のElasticsearch(+Logstash、Kibana、Beatsを加えたElastic Stack)以外にも、InfluxDB (+Telegraf、Grafanaを加えたTIG Stack)なども出てきている。
性能面を見ると、ElasticsearchよりInfluxDBとかの方が優秀そう。
無題0815-3.png
※出典: CLUS2019 - BRKSPG-2503 Advanced Topics in Cisco IOS Telemetry p.86

Ciscoの各機種・バージョンのサポート状況もまとまっている。(p.104~108)

(4) ★ DevNet Learning Labs - IOS-XR Streaming Telemetry
IOS-XRにおけるTelemetryの概要、PythonやC++でのコレクタの自作、デプロイのハンズオン。レベル高め。

3. Model Driven Telemetryの概要 (その他資料)

(1) ★★ Telemetry入門
概要がコンパクトにまとまっている。

(2) ★★ ネットワークが創生する価値 再考②:脚光を浴び始めたTelemetry とは – 前編 –
(3) ★★ ネットワークが創生する価値 再考②:脚光を浴び始めた Telemetry とは – 後編 –
Telemetry登場の背景、解説、Netone Telemetry PoC概要が記載されている。

4. Model Driven Telemetryの実装 (NW機器側)

(1) ★★ Programmability Configuration Guide, Cisco IOS XE Gibraltar 16.10.x
Model-Driven Telemetryの章で、概要をはじめ、IOS XEへのTelemetry設定方法や確認コマンドが記載されている。
注意点として、Telemetryを使う上でnetconf-yang設定は必須。
※具体的な設定例は、別記事でご紹介する予定です。

5. Model Driven Telemetryの実装例

ツールの組み合わせが膨大なことが、個人的に理解しづらい要因だったので、具体的な実装例と使用ツールを整理してみました。

(1) ★★★ nccでIOX XEのModle Driven Telemetryを試す
CiscoDevnetから公開されているnccを使って、CLIで性能情報を取得する例。DatastoreやDashboardを使わない単純な例なので、とっかかりには良いと思う。

  • NW Device: Cisco IOS XE
  • Encoding: XML
  • Protocol: NETCONF
  • Collector: Python (DevNet ncc)

(2) ★ Streaming Telemetry Quick Start Guide
以下パターンの概説。

  • NW Device: Cisco IOS XE
  • Encoding: XML
  • Protocol: NETCONF
  • Collector: Kafka
  • Data Transfer/Datastore/Dashboard: Logstash/Elasticsearch/Kibana (Elastic Stack)

(3) ★★ 番外編:OSSツールで作る、Telemetry初めの一歩 – 前編 –
(4) ★★ 番外編:OSSツールで作る、Telemetry初めの一歩 – 後編 –
以下パターンの構築手順。

  • NW Device: Cisco IOS-XRv、Juniper vMX、Arista vEOS
  • Encoding: GPB (Cisco)、JSON (Arista)
  • Protocol: gRPC
  • Collector: pipeline (Cisco)、ockafka (Arista)
  • Collector (分散メッセージングシステム): Kafka (Docker)
  • Data Transfer/Datastore/Dashboard: Logstash/Elasticsearch/Kibana (Elastic Stack)

(5) ★★ bigmuddy-network-telemetry-stacks
ツールセットをまとめてデプロイできるので、簡単にお試しできる。様々なパターンに対応していて、比較的最近出てきたIOS XEのKV-GBP/gRPCにも対応している模様。
https://github.com/cisco/bigmuddy-network-telemetry-pipeline/issues/16

(6) ★ Nexus9000v で Telemetry
以下パターンの構築手順。

(7) ★★ Pipeline by Cisco でTelemetryを試す
以下パターンの構築手順。

  • NW Device: Cisco IOS-XR
  • Encoding: KV-GPB
  • Protocol: TCP
  • Collector: Pipeline ※Ciscoが公開している
  • Datastore/Dashboard: InfluxDB/Grafana

(8) ★★ InfluxDB入門
(7)の後続記事。InfluxDBの概要、Influx Query Language (InfluxDBのSQLライクなクエリ言語)等について解説されている。

(9) ★★★ Telegrafのcisco_telemetry_mdtプラグインを試してみた
以下パターンの構築手順。ツールセットとしては、現時点でのベストパターンか。

  • NW Device: Cisco IOS XE
  • Encoding: KV-GPB
  • Protocol: gRPC
  • Collector: Telegraf
  • Datastore/Dashboard: InfluxDB/Grafana (Telegrafと合わせてTIG Stack)

終わりに

初心者なので勘違いや考慮漏れがあるかも知れません。ご指摘ありましたらコメント頂けると幸いです。:bow:

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした