Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
簡略化したネットワーク依存関係グラフの可視化基盤 / Simplified network d...
Search
Yuuki Tsubouchi (yuuk1)
November 17, 2018
Research
2
22k
簡略化したネットワーク依存関係グラフの可視化基盤 / Simplified network dependency graph visualization
第3回Web System Architecture研究会@東京
Yuuki Tsubouchi (yuuk1)
November 17, 2018
Tweet
Share
More Decks by Yuuki Tsubouchi (yuuk1)
See All by Yuuki Tsubouchi (yuuk1)
とあるSREの博士「過程」 / A Certain SRE’s Ph.D. Journey
yuukit
9
4k
eBPFを用いたAIネットワーク監視システム論文の実装 / eBPF Japan Meetup #4
yuukit
3
990
クラウドのテレメトリーシステム研究動向2025年
yuukit
3
1k
博士論文公聴会: Scaling Telemetry Workloads in Cloud Applications: Techniques for Instrumentation, Storage, and Mining / PhD Defence
yuukit
1
230
博士学位論文予備審査 / Scaling Telemetry Workloads in Cloud Applications: Techniques for Instrumentation, Storage, and Mining
yuukit
1
2k
MetricSifter:クラウドアプリケーションにおける故障箇所特定の効率化のための多変量時系列データの特徴量削減 / FIT 2024
yuukit
2
290
工学としてのSRE再訪 / Revisiting SRE as Engineering
yuukit
19
14k
Cloudless Computingの論文紹介
yuukit
2
570
#SRE論文紹介 Detection is Better Than Cure: A Cloud Incidents Perspective V. Ganatra et. al., ESEC/FSE’23
yuukit
3
2.1k
Other Decks in Research
See All in Research
ストレス計測方法の確立に向けたマルチモーダルデータの活用
yurikomium
0
1.2k
GeoCLIP: Clip-Inspired Alignment between Locations and Images for Effective Worldwide Geo-localization
satai
3
300
20250725-bet-ai-day
cipepser
2
370
電通総研の生成AI・エージェントの取り組みエンジニアリング業務向けAI活用事例紹介
isidaitc
1
860
データxデジタルマップで拓く ミラノ発・地域共創最前線
mapconcierge4agu
0
210
Mechanistic Interpretability:解釈可能性研究の新たな潮流
koshiro_aoki
1
400
時系列データに対する解釈可能な 決定木クラスタリング
mickey_kubo
2
880
NLP Colloquium
junokim
1
190
能動適応的実験計画
masakat0
2
770
数理最適化に基づく制御
mickey_kubo
6
710
Creation and environmental applications of 15-year daily inundation and vegetation maps for Siberia by integrating satellite and meteorological datasets
satai
3
190
大規模な2値整数計画問題に対する 効率的な重み付き局所探索法
mickey_kubo
1
330
Featured
See All Featured
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
Practical Orchestrator
shlominoach
190
11k
The World Runs on Bad Software
bkeepers
PRO
70
11k
BBQ
matthewcrist
89
9.8k
Balancing Empowerment & Direction
lara
2
570
Speed Design
sergeychernyshev
32
1.1k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.4k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.6k
Producing Creativity
orderedlist
PRO
347
40k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.4k
We Have a Design System, Now What?
morganepeng
53
7.7k
Transcript
؆ུԽͨ͠ ωοτϫʔΫґଘؔάϥϑ ͷՄࢹԽج൫ id:y_uuki, id:masayoshi, ͯͳ 2018/11/17 ୈ3ճ Web System
Architectureݚڀձ@౦ژ
࣍ 1. എܠͱత 2. ఏҊख๏ 3. ·ͱΊ
1. എܠͱత
എܠ • ωοτϫʔΫґଘؔͷෳࡶԽ • 10୯ҐͷαʔϏεͷظӡ༻ͷؒʹॏͳΔ૿ங • ϚΠΫϩαʔϏεͳͲͷۙͷτϨϯυมԽ • γεςϜཧऀ͕هԱͰ͖ͳ͍ݸʑͷ௨৴ͷґଘؔ •
Өڹൣғ͕Θ͔Βͳ͍ͨΊɺมߋͷͨͼʹґଘؔΛ ௐࠪ͢Δඞཁ͕ൃੜ
ઌߦख๏ • ϑΝΠΞΥʔϧͷϩΪϯάػߏύέοτΩϟϓνϟ • TCP/UDP௨৴ϩάΛूܭαʔόʹసૹ͠ґଘՄࢹԽ • ωοτϫʔΫεΠον͔Βͷ౷ܭใऔಘ (sFlow/NetFlowͳͲ) • αΠυΧʔϓϩΩγΞϓϦέʔγϣϯϩά
(ࢄτϨʔγϯά)
֤ઌߦख๏ͷ՝ • ϑΝΠΞΥʔϧϩΪϯά(iptables) • a) ύέοτϨΠςϯγ͕૿Ճ • ύέοτΩϟϓνϟ(tcpdump) • b)
ύέοτશମΛऩू͢ΔͨΊɺऩू·ͨղੳͷͨΊͷෛՙͷ૿Ճ • sFlow/NetFlow • c) αϯϓϦϯά͞ΕΔͨΊґଘཏ͕Լ • ΞϓϦέʔγϣϯ(L7)ͰͷϦΫΤετ୯ҐͷϩΪϯά • d) ΞϓϦέʔγϣϯͷมߋ͕ඞཁ
ઌߦख๏શମͷ՝ • e) ऩूσʔλ͕ґଘؔΛΔ͚ͩʹ͕ͯ͠ଟ͘ • ύέοτɺTCPଓɺϦΫΤετ୯Ґͷใ • ྫ͑ΤϑΣϝϥϧϙʔτͷଓใͳͲ • f)
ґଘؔάϥϑߏͷෳࡶԽ • ෛՙࢄͳͲʹΑΓϗετ͕૿Ճͨ͠߹ʹϊʔυͱΤο δͷݸ͕૿͑Δ
2. ఏҊख๏
ཁ݅ • 1)ΞϓϦέʔγϣϯੑೳʹӨڹΛ༩͑ͳ͍ଓใͷऩूՄೳ (՝ a),b),c)) • ݱ࣮తͳਫ਼Ͱଓใͷऩूཱ྆ • 2)ΞϓϦέʔγϣϯͷมߋෆཁͰऩूՄೳ (՝d)
• 3)ूԽ͞Εͨϊʔυ୯ҐͰՄࢹԽՄೳ (՝e) • 4)ϗετ୯ҐͰͳ͘ϗετͷෳάϧʔϓ୯ҐͰՄࢹԽՄೳ ՝ f) • 5)ҙͷ࣌ؒൣғͰͷґଘؔΛग़ྗՄೳ
ఏҊख๏ • ΞϓϦέʔγϣϯͷมߋෆཁͳωοτϫʔΫ௨৴ใͷऩू (ཁ݅2) • OSʹ͍߹ΘͤऔಘՄೳͳTCPଓใΛར༻ • ΞϓϦέʔγϣϯੑೳʹӨڹΛ༩͑ͳ͍TCPଓใͷऩू (ཁ݅1) •
OS͕ͭෛՙͰऔಘՄೳͳTCPଓͷ౷ܭใΛར༻ • ूԽ͞ΕͨΤοδͱϊʔυ୯ҐͰՄࢹԽՄೳ • Τοδ: ಉҰϗετ͔ͭಉҰϦοεϯϙʔτͷTCPଓू (ཁ݅3) • ϊʔυ: αʔόཧπʔϧͷAPIͱ࿈ܞՄೳ (ཁ݅4) • ίωΫγϣϯཧDBʹूԽ͞ΕͨTCPଓΛ͖࣌ؒͰཧՄೳ (ཁ݅5)
ϗετϑϩʔू • Τοδ: ಉҰϗετ͔ͭಉҰϦοεϯϙʔτͷTCPଓू • Τοδͷҹͷ͖: TCPͷΞΫςΟϒΦʔϓϯͱύογϒΦʔϓϯͰఆ port 80 port
3306 port 10000 port 10001 port 10002 port 15000 port 15001 port 15002 ϗετϑϩʔ ϗετϑϩʔ Host Host
ϗετϑϩʔूͷ࣮ • 1. Netlink APIʹΑΓTCPଓใΛऔಘ͢Δ • 2. LISTENεςʔτͷଓͷϩʔΧϧϙʔτͷΈநग़ • 3.
1.ͱ2.Λಥ͖߹Θͤɼଓઌϙʔτ͕ϦοεϯϙʔτͰ͋Ε ΞΫςΟϒΦʔϓϯɼͦΕҎ֎ͷଓύογϒΦʔϓϯͱ ఆ͢Δɽ
send agent agent CMDB Host Host agent Host analyzer sysadmin
get get ఏҊख๏ͷશମϑϩʔ֓ཁ
send agent agent Postgres Host Host agent Host CLI sysadmin
get get ఏҊख๏ͷશମϑϩʔ֓ཁ Mackerel get
CMDBͷεΩʔϚ • nodesςʔϒϧ: ϊʔυใ • IDͱIPΞυϨεͱϙʔτ൪߸ • flowsςʔϒϧ: ϗετϑϩʔใ •
IDͱ͖ͱૹ৴ݩͱૹ৴ઌͷͦΕͧΕͷϊʔυID
Mackerel APIʹΑΔෳϊʔυͷάϧʔϓԽ • ͋Β͔͡Ί֤ϗετΛMackerelʹొ͠ɺෳ͞Εͨϗετ܈Λ1 ͭͷϩʔϧʹ·ͱΊ͓ͯ͘ • MackerelΛར༻ͨ͠ෳϊʔυͷάϧʔϓԽखॱ • analyzer͕CMDB͔ΒϊʔυΛऔಘ •
Mackerel APIʹΑΓϗετใҰཡΛऔಘ֘͠ϊʔυͷIPΞυ ϨεͰϑΟϧλ • ಉҰϩʔϧͷϊʔυΛάϧʔϓԽ
github.com/yuuki/mftracer $ mftctl --level 2 --dest-service blog --dest-roles redis --dest-roles
memcached blog:redis ᵋ<-- 10.0.0.22:many (connections:30) ᵋ<-- 10.0.0.23:many (connections:30) ᵋ<-- 10.0.0.24:many (connections:30) ᵋ<-- 10.0.0.30:many (connections:1) ᵋ<-- 10.0.0.31:many (connections:1) ᵋ<-- 10.0.0.25:many (connections:30) blog:memcached ᵋ<-- 10.0.0.23:many (connections:30) ᵋ<-- 10.0.0.25:many (connections:30)
্࣮ͷ՝ • ωοτϫʔΫτϙϩδͷ॥ʹର͢Δߟྀ • Ϋϥυࣄۀऀ͕ఏڙ͢ΔϚωʔδυαʔϏεΛར༻͍ͯ͠Δ ߹ɼIPΞυϨε͔Β࣮ମΛͨͲΔ͜ͱͷࠔ • ͋ΔಛఆͷϊʔυΛࢦఆ͠ɼࢦఆͨ͠ϊʔυ”͔Β”ଓ͢Δ ϊʔυҰཡΛऔಘ͢Δ࣮ (ٯՄೳ)
• ࣌ؒൣғΛࢦఆͨ͠ґଘؔͷऔಘ • ݱࡏ͔Βաڈͯ͢ͷґଘؔΛऔಘ͢ΔΑ͏ʹͳ͍ͬͯΔ
3. ·ͱΊ
·ͱΊ • γεςϜཧऀ͕ݸʑͷωοτϫʔΫґଘؔΛهԱͰ͖ͳ͍ • ΞϓϦέʔγϣϯΛมߋͤͣʹɼΞϓϦέʔγϣϯʹӨڹΛ༩ ͑Δ͜ͱͳ͘ɼదͳநͰใΛऔಘՄೳͳґଘؔղੳ γεςϜ
ࠓޙͷ՝ • αʔϕΠ • ֤ωοτϫʔΫͰઌߦݚڀ͕͋ΔͨΊɺຊݚڀͷཱͪҐஔΛ໌֬Խ • ධՁ • ϑΝΠΞΥʔϧϩΪϯάͱύέοτΩϟϓνϟͷϨΠςϯγ૿େͷධՁ •
ͯ͢ͷଓใΛऔಘͰ͖ΔΘ͚Ͱͳ͍ͨΊɼଓใͷऔಘΛ֬ ೝ͠ɼ࣮ӡ༻ʹ͓͍ͯɼेͳਫ਼Ͱ͋Δ͜ͱΛ֬ೝ • ల • ಉ͡Α͏ͳ௨৴Λ͍ͯ͠ΔϗετΛΫϥελϦϯάਪఆ • ίϯςφܕԾԽڥͰͷґଘؔͷղੳͷൃల