Click here to load reader
Upload
takao-setaka
View
425
Download
0
Embed Size (px)
Citation preview
Tetration Dashboardってイケてるよね!
シスコシステムズ合同会社
2017年 5月
CooL!!CooL??
そこじゃないんです、大事なのは。
UI??
人によって見たいView、違います。十人十色。
大事なのはTetrationが持つ真の価値、それは・・・
あらゆるFlowをすべて網羅する
唯一無二のDatasourceこんなDatasourceは他にない!
餅は餅屋
ナイスなDashboard UIがほしければ、Dashboardツールを使えばいいんです。
DataはAPIでTetrationから引っ張ってくればいい。
今回は、、、Grafana + Influxdb でやりました。
やってることの全体概要
API使う人
API_KEY
API_SECRET
TetrationSite-Admin
Flowの条件指定したJSONをPOST
条件に合致するFlowをResponse
DataSourceにInfluxdbを指定してデータ取得
取得したFlowをInfluxdbにPush
TetrationCluster
Tetration APIで取れる情報、やれること(Tetraion 2.0現在)
•sensor_management- SW sensor management: API to configure/monitor status of SW sensors
•hw_sensor_management- HW sensor management: API to configure/monitor status of HW sensors
•flow_table_query- Queries on flows: API to query flows in Tetration cluster
Tetration APIでFlowを取得、、すごい簡単
{
"results": [
{
"dst_address": "171.70.168.183",
"dst_hostname": null,
"dst_port": "53",
"fwd_bytes": 85,
"fwd_pkts": 1,
"proto": "UDP",
"rev_bytes": 316,
"rev_pkts": 1,
"src_address": "172.31.186.45",
"src_hostname": "tet-12.internal",
"src_port": "33932",
"start_timestamp": "1478534438000000",
"timestamp": "2016-11-07T16:00:00.000Z"
}
]
}
Flow情報を13項目で取得可能。Filterも任意の項目を任意の値で指定し、採取するFlow数を限定できる。
- Response -
req_payload = {
"startTsIncl": "2016-11-07T09:00:00-0700",
"endTsExcl": "2016-11-07T19:00:00-0700",
"tenant": "default",
"vrf": "default",
"limit": 100,
"filter": {
"type": "eq",
"field": "dst_port",
"value": "53"
}
}
- Request -
送信先ポート番号53のフローを100フローまで。
InfluxDBへのデータ投入
{
"results": [
{
"dst_address": "171.70.168.183",
"dst_hostname": null,
"dst_port": "53",
"fwd_bytes": 85,
"fwd_pkts": 1,
"proto": "UDP",
"rev_bytes": 316,
"rev_pkts": 1,
"src_address": "172.31.186.45",
"src_hostname": "tet-12.internal",
"src_port": "33932",
"start_timestamp": "1478534438000000",
"timestamp": "2016-11-07T16:00:00.000Z"
}
]
}
採取したFlowをInfluxDBに投入。InfluxDBがサポートしているPython client用のmoduleがあるのでこれも簡単。
{
“fields” :{
"rev_pkts" : rev_pkts,
"rev_bytes" : rev_bytes,
"fwd_pkts" : fwd_pkts,
"fwd_bytes" : fwd_bytes
},
"tags" :{
"dst_hostname" : dst_hostname,
"src_port" : src_port,
"proto" : proto,
"src_address" : src_address,
"dst_address" : dst_address,
"src_hostname" : src_hostname,
"dst_port" : dst_port
},
"measurement" : "FLOW"
}
“fields”は時間軸(X軸)に対してY軸で見たい値。
“tags”は検索条件に使いたい値。
“measurement”はGraph生成時の情報元の識別に必要。
GrafanaでGraphを作成
あとは画面みてー。
Thank you