SlideShare a Scribd company logo
Copyright © NTT Communications Corporation. All right reserved.
pmacct->kafka->presto->re:dash
を使った⾼速なflow解析
JANOG39 Day1⾒つけた!モダンなトラフィック可視化 BoF
2017年1⽉18⽇
⻄塚要
@__kaname__
kaname@nttv6.jp
Copyright © NTT Communications Corporation. All right reserved.
flow解析の構成
2
Fx
R Markdown
蓄積 分析 可視化収集
機械学習処理(異常検知等)
ホットデータ蓄積 時系列データ
①⾼度な解析結果
フロー収集
コールドデータ蓄積
分析処理(SQL) ③ニア・リアルタイム分析
F
pmacct
フロー収集
nfdump
(nfcapd/nfdump)
csv
傾向分析
csv
②傾向分析
ルータ/
スイッチ
flow収集部分
3
n  nfdump
•  nfcapd: netflow(v1,v5/v7,v9,IPFIX)/sflow(v2/v4/v5)の
収集を⾏い、n分ごとにファイルに出⼒する
•  nfdump: nfcapdによって蓄積されたデータを読み出す→標
準出⼒やファイル(csv形式など)に出⼒
•  信頼と実績!
n  pmacct
•  netflow(v5,v8,v9,IPFIX)/sflow(v2/v4/v5)の収集”も”⾏う
ことができる
•  ファイル出⼒に加え、RDBMS, noSQL, Rabbit-MQ, kafka
とのコネクタがある
•  paoloさんが頑張ってメンテしている!
ü  JANOG36:オープンソースのネットフローツールの運⽤
事例1: 機械学習を⽤いた⾼度な解析
n  hadoop/hiveに蓄積された⽣フローデータをPrestoで時系列
データに集約(早い!)
n  時系列データに対してRで機械学習処理
Fx
R Markdown
蓄積 分析 可視化収集
機械学習処理(異常検知等)
ホットデータ蓄積 時系列データ
①⾼度な解析結果
フロー収集
コールドデータ蓄積
分析処理(SQL) ③ニア・リアルタイム分析
pmacct
フロー収集
nfdump
(nfcapd/nfdump)
csv
傾向分析
csv
②傾向分析
ルータ/
スイッチ
4
5
Rでのフロー解析
n  ISPごとのトラフィックの推移
6
Rでのフロー解析+機械学習
n  トラフィック時系列への異常検知ロジックの適⽤
異常度
トラフィック量
事例2: ⾼速な⻑期傾向分析
n  モチベーション: ⼤量のフローデータに対して1ヶ⽉以上時間範
囲で傾向分析をしたい
n  hadoop/hiveに蓄積された⽣フローデータをPresto経由の
re:dashで⼿早く可視化(早い!)
Fx
R Markdown
蓄積 分析 可視化収集
機械学習処理(異常検知等)
ホットデータ蓄積 時系列データ
①⾼度な解析結果
フロー収集
コールドデータ蓄積
分析処理(SQL) ③ニア・リアルタイム分析
pmacct
フロー収集
nfdump
(nfcapd/nfdump)
csv
傾向分析
csv
②傾向分析
ルータ/
スイッチ
7
8
Prestoでの⾼速なクエリ実⾏
n  TopN分析: 1ヶ⽉分のflowデータに対して、数秒で結果を返す
9
Prestoでの⾼速なクエリ実⾏
n  どの期間に対しても、分単位や秒単位の分析が可能
分単位の分析 秒単位の分析
(参考) その他のデータとの連携
n  re:dashには⾊々なデータを⼊れることができます
•  BGP解析の例: IRS25 DDoS対策あれこれ
事例3: 即時の短期傾向分析
n  モチベーション: kafkaの即時性を利⽤して、1分未満のフロー
解析を⽬指したい
•  発⽣して1分未満でのDDoS攻撃検知など
n  pmacct->kafka->presto->re:dash を試した
Fx
R Markdown
蓄積 分析 可視化収集
機械学習処理(異常検知等)
ホットデータ蓄積 時系列データ
①⾼度な解析結果
フロー収集
コールドデータ蓄積
分析処理(SQL) ③ニア・リアルタイム分析
pmacct
フロー収集
nfdump
(nfcapd/nfdump)
csv
傾向分析
csv
②傾向分析
ルータ/
スイッチ
11
pmacct kafka-plugin
n  インストール
n  ハマりポイント
•  librdkafkaがインストールされたパスに注意
ü  QUICKSTART IX. Running the Kafka plugin 参照
12
# 必要なパッケージのインストール
apt-get install libpcap-dev libjansson-dev
# 最新版の librdkafka のインストール
git clone https://github.com/edenhill/librdkafka.git; cd librdkafka; ./configure; make; make install
# kafka を利⽤するオプションをつけてpmacctのインストール
git clone https://github.com/pmacct/pmacct.git; cd pmacct; ./autogen.sh; ./configure --enable-kafka --
enable-jansson --enable-ipv6; make; make install
# 確認
container:/# pmacctd -V
Promiscuous Mode Accounting Daemon, pmacctd 1.6.2-git (20170117-00)
'--enable-kafka' '--enable-jansson' '--enable-ipv6'
For suggestions, critics, bugs, contact me: Paolo Lucente <paolo@pmacct.net>.
pmacct kafka-plugin
n  pmacct 設定
n  ハマりポイント
•  nfacctd のデフォルトのnetflow待ち受けは 2100/udp
•  kafkaのトピックに”.”(ドット)を使うと、ここではOKだが、
2ページ後のprestoの設定でハマりポイントあり
13
# nfacctd.conf
aggregate: src_mac, dst_mac, vlan, cos, etype, src_as, dst_as, peer_src_ip, peer_dst_ip, in_iface, out_iface,
src_host, src_net, dst_host, dst_net, src_mask, dst_mask, src_port, dst_port, tcpflags, proto, tos,
sampling_rate, timestamp_start, timestamp_end, timestamp_arrival
nfacctd_port: 2055
plugins: kafka
kafka_output: json
kafka_topic: pmacct-janog
kafka_refresh_time: 60
kafka_history: 1m
kafka_history_roundoff: m
kafka_broker_host: <kafka IP address>
kafka_broker_port: 9092
# 起動
nfacctd -f /etc/nfacctd.conf -dD
14
kafka-topic
n  kafka-topic が⽣成される
•  Trifecta でデータが溜まり始めたことを確認
15
presto
n  presto設定
n  ハマりポイント
•  table名には”.”が使えない(topic名に”.”を使ってると、揃えよ
うとしてやりがち)
kafka.propertiesの中にあるkafka.table-namesの値に、追加したいtopic名を記述
#<presto>/etc/catalog/kafka.properties
connector.name=kafka
kafka.nodes=<IP>:<port>, <IP>:<port>, <IP>:<port>
kafka.table-names=pmacct-janog
kafka.hide-internal-columns=false
テーブルの型定義をjsonファイルで記述
#<prestoL/etc/kafka/pmacct-janog.json
{
"tableName": "pmacct-janog",
"topicName": "pmacct-janog",
"dataFormat": "json",
"message": {
"dataFormat":"json",
"fields": [
{
"name": "event_type",
"mapping": "event_type",
"type": "VARCHAR"
},
(snip)
16
re:dash で接続
n  data sources に type=presto, catalog=kafka で追加
17
re:dash で接続
n  作成した data sources を指定して、select * from <table名>
でデータが取れることを確認
18
結果: 即時の短期傾向分析結果
n  直近2分以内での秒単位のグラフ化
•  最新の時刻は、1分前くらい…(惜しい!)
最後に
19
n  ⼀緒にトラフィック解析しませんか?
•  質問等はこちらまで:kaname@nttv6.jp

More Related Content

Viewers also liked

Principles for Engineering Elastic IoT Cloud Systems
Principles for Engineering Elastic IoT Cloud SystemsPrinciples for Engineering Elastic IoT Cloud Systems
Principles for Engineering Elastic IoT Cloud SystemsHong-Linh Truong
 
Towards the Realization of Multi-dimensional Elasticity for Distributed Cloud...
Towards the Realization of Multi-dimensional Elasticity for Distributed Cloud...Towards the Realization of Multi-dimensional Elasticity for Distributed Cloud...
Towards the Realization of Multi-dimensional Elasticity for Distributed Cloud...
Hong-Linh Truong
 
Kentik Network@Scale (Dan Ellis)
Kentik Network@Scale (Dan Ellis)Kentik Network@Scale (Dan Ellis)
Kentik Network@Scale (Dan Ellis)
gvillain
 
ヤマムギVol.5 BIファーストステップre:dash
ヤマムギVol.5 BIファーストステップre:dashヤマムギVol.5 BIファーストステップre:dash
ヤマムギVol.5 BIファーストステップre:dash
Mitsuhiro Yamashita
 
可視化周辺の進化がヤヴァイ 〜2016〜
可視化周辺の進化がヤヴァイ 〜2016〜可視化周辺の進化がヤヴァイ 〜2016〜
可視化周辺の進化がヤヴァイ 〜2016〜
Takashi Kitano
 
爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話
Kentaro Yoshida
 
SKET Servise Guide
SKET Servise GuideSKET Servise Guide
SKET Servise Guide
SKET
 
ドラえもんでわかる統計的因果推論 #TokyoR
ドラえもんでわかる統計的因果推論 #TokyoRドラえもんでわかる統計的因果推論 #TokyoR
ドラえもんでわかる統計的因果推論 #TokyoR
Shuyo Nakatani
 
Building Security Operation Center
Building Security Operation CenterBuilding Security Operation Center
Building Security Operation Center
S.E. CTS CERT-GOV-MD
 
Presto - Hadoop Conference Japan 2014
Presto - Hadoop Conference Japan 2014Presto - Hadoop Conference Japan 2014
Presto - Hadoop Conference Japan 2014Sadayuki Furuhashi
 
生態学会自由集会での講演のプレビュー
生態学会自由集会での講演のプレビュー生態学会自由集会での講演のプレビュー
生態学会自由集会での講演のプレビュー
takehikoihayashi
 
re:dash is awesome
re:dash is awesomere:dash is awesome
re:dash is awesome
Hiroshi Toyama
 
『バックドア基準の入門』@統数研研究集会
『バックドア基準の入門』@統数研研究集会『バックドア基準の入門』@統数研研究集会
『バックドア基準の入門』@統数研研究集会
takehikoihayashi
 
見やすいプレゼン資料の作り方 - リニューアル増量版
見やすいプレゼン資料の作り方 - リニューアル増量版見やすいプレゼン資料の作り方 - リニューアル増量版
見やすいプレゼン資料の作り方 - リニューアル増量版
MOCKS | Yuta Morishige
 

Viewers also liked (15)

Principles for Engineering Elastic IoT Cloud Systems
Principles for Engineering Elastic IoT Cloud SystemsPrinciples for Engineering Elastic IoT Cloud Systems
Principles for Engineering Elastic IoT Cloud Systems
 
Towards the Realization of Multi-dimensional Elasticity for Distributed Cloud...
Towards the Realization of Multi-dimensional Elasticity for Distributed Cloud...Towards the Realization of Multi-dimensional Elasticity for Distributed Cloud...
Towards the Realization of Multi-dimensional Elasticity for Distributed Cloud...
 
Kentik Network@Scale (Dan Ellis)
Kentik Network@Scale (Dan Ellis)Kentik Network@Scale (Dan Ellis)
Kentik Network@Scale (Dan Ellis)
 
ヤマムギVol.5 BIファーストステップre:dash
ヤマムギVol.5 BIファーストステップre:dashヤマムギVol.5 BIファーストステップre:dash
ヤマムギVol.5 BIファーストステップre:dash
 
可視化周辺の進化がヤヴァイ 〜2016〜
可視化周辺の進化がヤヴァイ 〜2016〜可視化周辺の進化がヤヴァイ 〜2016〜
可視化周辺の進化がヤヴァイ 〜2016〜
 
爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話
 
SKET Servise Guide
SKET Servise GuideSKET Servise Guide
SKET Servise Guide
 
ドラえもんでわかる統計的因果推論 #TokyoR
ドラえもんでわかる統計的因果推論 #TokyoRドラえもんでわかる統計的因果推論 #TokyoR
ドラえもんでわかる統計的因果推論 #TokyoR
 
Building Security Operation Center
Building Security Operation CenterBuilding Security Operation Center
Building Security Operation Center
 
Presto - Hadoop Conference Japan 2014
Presto - Hadoop Conference Japan 2014Presto - Hadoop Conference Japan 2014
Presto - Hadoop Conference Japan 2014
 
生態学会自由集会での講演のプレビュー
生態学会自由集会での講演のプレビュー生態学会自由集会での講演のプレビュー
生態学会自由集会での講演のプレビュー
 
re:dash is awesome
re:dash is awesomere:dash is awesome
re:dash is awesome
 
『バックドア基準の入門』@統数研研究集会
『バックドア基準の入門』@統数研研究集会『バックドア基準の入門』@統数研研究集会
『バックドア基準の入門』@統数研研究集会
 
Cisco OpenSOC
Cisco OpenSOCCisco OpenSOC
Cisco OpenSOC
 
見やすいプレゼン資料の作り方 - リニューアル増量版
見やすいプレゼン資料の作り方 - リニューアル増量版見やすいプレゼン資料の作り方 - リニューアル増量版
見やすいプレゼン資料の作り方 - リニューアル増量版
 

Similar to pmacct, kafka, presto, re:dash を使った高速なflow解析

OLD_Lt traffic analyse_OLD
OLD_Lt traffic analyse_OLDOLD_Lt traffic analyse_OLD
OLD_Lt traffic analyse_OLD
@ otsuka752
 
Trema day 1
Trema day 1Trema day 1
Trema day 1
ykuga
 
Lagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそばLagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそば
Yoshihiro Nakajima
 
改ざん検知暗号Minalpherの設計とIvy Bridge/Haswellでの最適化
改ざん検知暗号Minalpherの設計とIvy Bridge/Haswellでの最適化改ざん検知暗号Minalpherの設計とIvy Bridge/Haswellでの最適化
改ざん検知暗号Minalpherの設計とIvy Bridge/Haswellでの最適化
MITSUNARI Shigeo
 
nftables: the Next Generation Firewall in Linux
nftables: the Next Generation Firewall in Linuxnftables: the Next Generation Firewall in Linux
nftables: the Next Generation Firewall in Linux
Tomofumi Hayashi
 
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータPyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
Shinya Takamaeda-Y
 
Lagopus & NFV with Vhost (Tremaday#9)
Lagopus & NFV with Vhost (Tremaday#9)Lagopus & NFV with Vhost (Tremaday#9)
Lagopus & NFV with Vhost (Tremaday#9)
Tomoya Hibi
 
20150715 xflow kikuta_final
20150715 xflow kikuta_final20150715 xflow kikuta_final
20150715 xflow kikuta_final
Kazumasa Ikuta
 
フロー技術によるネットワーク管理
フロー技術によるネットワーク管理フロー技術によるネットワーク管理
フロー技術によるネットワーク管理
Motonori Shindo
 
Container Networking Deep Dive
Container Networking Deep DiveContainer Networking Deep Dive
Container Networking Deep Dive
Hirofumi Ichihara
 
Software forwarding path
Software forwarding pathSoftware forwarding path
Software forwarding path
Tomofumi Hayashi
 
ブラウザでWebRTC - iOSゲートウェイ作ってみた
ブラウザでWebRTC - iOSゲートウェイ作ってみたブラウザでWebRTC - iOSゲートウェイ作ってみた
ブラウザでWebRTC - iOSゲートウェイ作ってみた
mganeko
 
Faster SRv6 D-plane with XDP
Faster SRv6 D-plane with XDPFaster SRv6 D-plane with XDP
Faster SRv6 D-plane with XDP
Ryoga Saito
 
[bladeRF + MATLAB/Simulink] SDRデバイス利用の手引き
[bladeRF + MATLAB/Simulink] SDRデバイス利用の手引き[bladeRF + MATLAB/Simulink] SDRデバイス利用の手引き
[bladeRF + MATLAB/Simulink] SDRデバイス利用の手引き
RapidRadioJP
 
動的なVNFの性能調節フレームワーク開発と それを用いたNFV基盤の開発
動的なVNFの性能調節フレームワーク開発と それを用いたNFV基盤の開発動的なVNFの性能調節フレームワーク開発と それを用いたNFV基盤の開発
動的なVNFの性能調節フレームワーク開発と それを用いたNFV基盤の開発
slankdev
 
Apache spark 2.3 and beyond
Apache spark 2.3 and beyondApache spark 2.3 and beyond
Apache spark 2.3 and beyond
NTT DATA Technology & Innovation
 
Spring 5に備えるリアクティブプログラミング入門
Spring 5に備えるリアクティブプログラミング入門Spring 5に備えるリアクティブプログラミング入門
Spring 5に備えるリアクティブプログラミング入門
Takuya Iwatsuka
 
Telemetryについて
TelemetryについてTelemetryについて
Telemetryについて
tetsusat
 

Similar to pmacct, kafka, presto, re:dash を使った高速なflow解析 (20)

OLD_Lt traffic analyse_OLD
OLD_Lt traffic analyse_OLDOLD_Lt traffic analyse_OLD
OLD_Lt traffic analyse_OLD
 
Trema day 1
Trema day 1Trema day 1
Trema day 1
 
Lagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそばLagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそば
 
Slide dist
Slide distSlide dist
Slide dist
 
改ざん検知暗号Minalpherの設計とIvy Bridge/Haswellでの最適化
改ざん検知暗号Minalpherの設計とIvy Bridge/Haswellでの最適化改ざん検知暗号Minalpherの設計とIvy Bridge/Haswellでの最適化
改ざん検知暗号Minalpherの設計とIvy Bridge/Haswellでの最適化
 
nftables: the Next Generation Firewall in Linux
nftables: the Next Generation Firewall in Linuxnftables: the Next Generation Firewall in Linux
nftables: the Next Generation Firewall in Linux
 
Kernel vm-2014-05-25
Kernel vm-2014-05-25Kernel vm-2014-05-25
Kernel vm-2014-05-25
 
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータPyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
 
Lagopus & NFV with Vhost (Tremaday#9)
Lagopus & NFV with Vhost (Tremaday#9)Lagopus & NFV with Vhost (Tremaday#9)
Lagopus & NFV with Vhost (Tremaday#9)
 
20150715 xflow kikuta_final
20150715 xflow kikuta_final20150715 xflow kikuta_final
20150715 xflow kikuta_final
 
フロー技術によるネットワーク管理
フロー技術によるネットワーク管理フロー技術によるネットワーク管理
フロー技術によるネットワーク管理
 
Container Networking Deep Dive
Container Networking Deep DiveContainer Networking Deep Dive
Container Networking Deep Dive
 
Software forwarding path
Software forwarding pathSoftware forwarding path
Software forwarding path
 
ブラウザでWebRTC - iOSゲートウェイ作ってみた
ブラウザでWebRTC - iOSゲートウェイ作ってみたブラウザでWebRTC - iOSゲートウェイ作ってみた
ブラウザでWebRTC - iOSゲートウェイ作ってみた
 
Faster SRv6 D-plane with XDP
Faster SRv6 D-plane with XDPFaster SRv6 D-plane with XDP
Faster SRv6 D-plane with XDP
 
[bladeRF + MATLAB/Simulink] SDRデバイス利用の手引き
[bladeRF + MATLAB/Simulink] SDRデバイス利用の手引き[bladeRF + MATLAB/Simulink] SDRデバイス利用の手引き
[bladeRF + MATLAB/Simulink] SDRデバイス利用の手引き
 
動的なVNFの性能調節フレームワーク開発と それを用いたNFV基盤の開発
動的なVNFの性能調節フレームワーク開発と それを用いたNFV基盤の開発動的なVNFの性能調節フレームワーク開発と それを用いたNFV基盤の開発
動的なVNFの性能調節フレームワーク開発と それを用いたNFV基盤の開発
 
Apache spark 2.3 and beyond
Apache spark 2.3 and beyondApache spark 2.3 and beyond
Apache spark 2.3 and beyond
 
Spring 5に備えるリアクティブプログラミング入門
Spring 5に備えるリアクティブプログラミング入門Spring 5に備えるリアクティブプログラミング入門
Spring 5に備えるリアクティブプログラミング入門
 
Telemetryについて
TelemetryについてTelemetryについて
Telemetryについて
 

pmacct, kafka, presto, re:dash を使った高速なflow解析