SlideShare uma empresa 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について

Mais conteúdo relacionado

Mais procurados

コンテナを止めるな! PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
コンテナを止めるな!  PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとはコンテナを止めるな!  PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
コンテナを止めるな! PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとはksk_ha
 
ネットワークでなぜ遅延が生じるのか
ネットワークでなぜ遅延が生じるのかネットワークでなぜ遅延が生じるのか
ネットワークでなぜ遅延が生じるのかJun Kato
 
第11回ACRiウェビナー_東工大/坂本先生ご講演資料
第11回ACRiウェビナー_東工大/坂本先生ご講演資料第11回ACRiウェビナー_東工大/坂本先生ご講演資料
第11回ACRiウェビナー_東工大/坂本先生ご講演資料直久 住川
 
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化Takuya ASADA
 
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~NTT Communications Technology Development
 
High Performance Networking with DPDK & Multi/Many Core
High Performance Networking with DPDK & Multi/Many CoreHigh Performance Networking with DPDK & Multi/Many Core
High Performance Networking with DPDK & Multi/Many Coreslankdev
 
"SRv6の現状と展望" ENOG53@上越
"SRv6の現状と展望" ENOG53@上越"SRv6の現状と展望" ENOG53@上越
"SRv6の現状と展望" ENOG53@上越Kentaro Ebisawa
 
ネットワークコンフィグ分析ツール Batfish との付き合い方
ネットワークコンフィグ分析ツール Batfish との付き合い方ネットワークコンフィグ分析ツール Batfish との付き合い方
ネットワークコンフィグ分析ツール Batfish との付き合い方akira6592
 
Scapyで作る・解析するパケット
Scapyで作る・解析するパケットScapyで作る・解析するパケット
Scapyで作る・解析するパケットTakaaki Hoyo
 
ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414Kentaro Ebisawa
 
ログ解析基盤におけるストリーム処理パイプラインについて
ログ解析基盤におけるストリーム処理パイプラインについてログ解析基盤におけるストリーム処理パイプラインについて
ログ解析基盤におけるストリーム処理パイプラインについてcyberagent
 
VPP事始め
VPP事始めVPP事始め
VPP事始めnpsg
 
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタックONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタックKentaro Ebisawa
 
OVS VXLAN Network Accelaration on OpenStack (VXLAN offload and DPDK) - OpenSt...
OVS VXLAN Network Accelaration on OpenStack (VXLAN offload and DPDK) - OpenSt...OVS VXLAN Network Accelaration on OpenStack (VXLAN offload and DPDK) - OpenSt...
OVS VXLAN Network Accelaration on OpenStack (VXLAN offload and DPDK) - OpenSt...VirtualTech Japan Inc.
 
[D20] 高速Software Switch/Router 開発から得られた高性能ソフトウェアルータ・スイッチ活用の知見 (July Tech Fest...
[D20] 高速Software Switch/Router 開発から得られた高性能ソフトウェアルータ・スイッチ活用の知見 (July Tech Fest...[D20] 高速Software Switch/Router 開発から得られた高性能ソフトウェアルータ・スイッチ活用の知見 (July Tech Fest...
[D20] 高速Software Switch/Router 開発から得られた高性能ソフトウェアルータ・スイッチ活用の知見 (July Tech Fest...Tomoya Hibi
 
実環境にTerraform導入したら驚いた
実環境にTerraform導入したら驚いた実環境にTerraform導入したら驚いた
実環境にTerraform導入したら驚いたAkihiro Kuwano
 
大規模DCのネットワークデザイン
大規模DCのネットワークデザイン大規模DCのネットワークデザイン
大規模DCのネットワークデザインMasayuki Kobayashi
 
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
KeycloakでFAPIに対応した高セキュリティなAPIを公開するKeycloakでFAPIに対応した高セキュリティなAPIを公開する
KeycloakでFAPIに対応した高セキュリティなAPIを公開するHitachi, Ltd. OSS Solution Center.
 

Mais procurados (20)

コンテナを止めるな! PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
コンテナを止めるな!  PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとはコンテナを止めるな!  PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
コンテナを止めるな! PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
 
ネットワークでなぜ遅延が生じるのか
ネットワークでなぜ遅延が生じるのかネットワークでなぜ遅延が生じるのか
ネットワークでなぜ遅延が生じるのか
 
第11回ACRiウェビナー_東工大/坂本先生ご講演資料
第11回ACRiウェビナー_東工大/坂本先生ご講演資料第11回ACRiウェビナー_東工大/坂本先生ご講演資料
第11回ACRiウェビナー_東工大/坂本先生ご講演資料
 
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
 
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
 
WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介
 
High Performance Networking with DPDK & Multi/Many Core
High Performance Networking with DPDK & Multi/Many CoreHigh Performance Networking with DPDK & Multi/Many Core
High Performance Networking with DPDK & Multi/Many Core
 
"SRv6の現状と展望" ENOG53@上越
"SRv6の現状と展望" ENOG53@上越"SRv6の現状と展望" ENOG53@上越
"SRv6の現状と展望" ENOG53@上越
 
ネットワークコンフィグ分析ツール Batfish との付き合い方
ネットワークコンフィグ分析ツール Batfish との付き合い方ネットワークコンフィグ分析ツール Batfish との付き合い方
ネットワークコンフィグ分析ツール Batfish との付き合い方
 
How to run P4 BMv2
How to run P4 BMv2How to run P4 BMv2
How to run P4 BMv2
 
Scapyで作る・解析するパケット
Scapyで作る・解析するパケットScapyで作る・解析するパケット
Scapyで作る・解析するパケット
 
ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414
 
ログ解析基盤におけるストリーム処理パイプラインについて
ログ解析基盤におけるストリーム処理パイプラインについてログ解析基盤におけるストリーム処理パイプラインについて
ログ解析基盤におけるストリーム処理パイプラインについて
 
VPP事始め
VPP事始めVPP事始め
VPP事始め
 
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタックONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
 
OVS VXLAN Network Accelaration on OpenStack (VXLAN offload and DPDK) - OpenSt...
OVS VXLAN Network Accelaration on OpenStack (VXLAN offload and DPDK) - OpenSt...OVS VXLAN Network Accelaration on OpenStack (VXLAN offload and DPDK) - OpenSt...
OVS VXLAN Network Accelaration on OpenStack (VXLAN offload and DPDK) - OpenSt...
 
[D20] 高速Software Switch/Router 開発から得られた高性能ソフトウェアルータ・スイッチ活用の知見 (July Tech Fest...
[D20] 高速Software Switch/Router 開発から得られた高性能ソフトウェアルータ・スイッチ活用の知見 (July Tech Fest...[D20] 高速Software Switch/Router 開発から得られた高性能ソフトウェアルータ・スイッチ活用の知見 (July Tech Fest...
[D20] 高速Software Switch/Router 開発から得られた高性能ソフトウェアルータ・スイッチ活用の知見 (July Tech Fest...
 
実環境にTerraform導入したら驚いた
実環境にTerraform導入したら驚いた実環境にTerraform導入したら驚いた
実環境にTerraform導入したら驚いた
 
大規模DCのネットワークデザイン
大規模DCのネットワークデザイン大規模DCのネットワークデザイン
大規模DCのネットワークデザイン
 
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
KeycloakでFAPIに対応した高セキュリティなAPIを公開するKeycloakでFAPIに対応した高セキュリティなAPIを公開する
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
 

Semelhante a Telemetryについて

160705-03 RTミドルウエア講習会・名城大
160705-03 RTミドルウエア講習会・名城大160705-03 RTミドルウエア講習会・名城大
160705-03 RTミドルウエア講習会・名城大openrtm
 
20180109 titech lecture_ishizaki_public
20180109 titech lecture_ishizaki_public20180109 titech lecture_ishizaki_public
20180109 titech lecture_ishizaki_publicKazuaki Ishizaki
 
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータPyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータShinya Takamaeda-Y
 
ネットワーク自動化の課題 - グラフデータベースによる解決
ネットワーク自動化の課題 - グラフデータベースによる解決ネットワーク自動化の課題 - グラフデータベースによる解決
ネットワーク自動化の課題 - グラフデータベースによる解決ApstraJapan
 
サイボウズ・ラボユース成果発表会資料
サイボウズ・ラボユース成果発表会資料サイボウズ・ラボユース成果発表会資料
サイボウズ・ラボユース成果発表会資料masahiro13
 
システムパフォーマンス勉強会#8
システムパフォーマンス勉強会#8システムパフォーマンス勉強会#8
システムパフォーマンス勉強会#8shingo suzuki
 
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例Hironobu Isoda
 
JAWS DAYS 2018 | IoT時代におけるデバイスのファームウェアとクラウドのいい関係
JAWS DAYS 2018 | IoT時代におけるデバイスのファームウェアとクラウドのいい関係JAWS DAYS 2018 | IoT時代におけるデバイスのファームウェアとクラウドのいい関係
JAWS DAYS 2018 | IoT時代におけるデバイスのファームウェアとクラウドのいい関係SORACOM,INC
 
20150715 xflow kikuta_final
20150715 xflow kikuta_final20150715 xflow kikuta_final
20150715 xflow kikuta_finalKazumasa Ikuta
 
シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化
シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化
シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化シスコシステムズ合同会社
 
Interop2019 Toyota Netcope P4
Interop2019 Toyota Netcope P4Interop2019 Toyota Netcope P4
Interop2019 Toyota Netcope P4Kentaro Ebisawa
 
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
 
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 AnalyticsKohei KaiGai
 
NSDI2015読み会 Correctness セッション
NSDI2015読み会 Correctness セッションNSDI2015読み会 Correctness セッション
NSDI2015読み会 Correctness セッションDaisuke Kotani
 
オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜
オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜
オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜griddb
 
IoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache FlinkIoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache FlinkTakanori Suzuki
 
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 LTmganeko
 
フロー技術によるネットワーク管理
フロー技術によるネットワーク管理フロー技術によるネットワーク管理
フロー技術によるネットワーク管理Motonori Shindo
 

Semelhante 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 セッション
 
オープンソースの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
 
フロー技術によるネットワーク管理
フロー技術によるネットワーク管理フロー技術によるネットワーク管理
フロー技術によるネットワーク管理
 

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/ 参考