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
マイクロサービスにおける ログ収集の課題と取り組み
Search
Ryo Okubo
January 18, 2019
Programming
7
2.8k
マイクロサービスにおける ログ収集の課題と取り組み
データとML周辺エンジニアリングを考える会 #1 2019 / 01 / 18 の資料です
https://data-engineering.connpass.com/event/111658/
Ryo Okubo
January 18, 2019
Tweet
Share
More Decks by Ryo Okubo
See All by Ryo Okubo
UbieのAIパートナーを支えるコンテキストエンジニアリング実践
syucream
3
1.4k
メルカリ・メルペイの成長を支える データ基盤とはどんなものか
syucream
7
7.2k
バッチとストリーミング、それぞれの障害に立ち向かう
syucream
3
3.8k
How Scala works at Mercari
syucream
2
1.1k
Production-ready stream data pipeline in Merpay, Inc
syucream
2
13k
データとML周辺エンジニアリン グを考える会 #2 イントロ
syucream
0
650
Stream Data Pipeline for Microservices in Merpay
syucream
6
1.3k
メルペイにおける、マイクロサービスに寄り添うログ収集基盤 / Microservices-frendly Data Pipeline
syucream
0
18k
Merpay のデータ収集基盤
syucream
5
1.1k
Other Decks in Programming
See All in Programming
QAフローを最適化し、品質水準を満たしながらリリースまでの期間を最短化する #RSGT2026
shibayu36
0
1.4k
AIによるイベントストーミング図からのコード生成 / AI-powered code generation from Event Storming diagrams
nrslib
1
810
AIの誤りが許されない業務システムにおいて“信頼されるAI” を目指す / building-trusted-ai-systems
yuya4
7
4.2k
公共交通オープンデータ × モバイルUX 複雑な運行情報を 『直感』に変換する技術
tinykitten
PRO
0
180
gunshi
kazupon
1
140
Navigation 3: 적응형 UI를 위한 앱 탐색
fornewid
1
520
TestingOsaka6_Ozono
o3
0
260
はじめてのカスタムエージェント【GitHub Copilot Agent Mode編】
satoshi256kbyte
0
140
ゆくKotlin くるRust
exoego
1
190
re:Invent 2025 のイケてるサービスを紹介する
maroon1st
0
160
「コードは上から下へ読むのが一番」と思った時に、思い出してほしい話
panda728
PRO
39
26k
PC-6001でPSG曲を鳴らすまでを全部NetBSD上の Makefile に押し込んでみた / osc2025hiroshima
tsutsui
0
200
Featured
See All Featured
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
1k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.3k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
94
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
360
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.1k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
280
Crafting Experiences
bethany
0
25
Deep Space Network (abreviated)
tonyrice
0
33
Google's AI Overviews - The New Search
badams
0
890
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
ラッコキーワード サービス紹介資料
rakko
0
1.9M
Transcript
データとML周辺エンジニアリングを考える会 #1 2019 / 01 / 18 @syu_cream マイクロサービスにおける ログ収集の課題と取り組み
2 • @syu_cream • Data Engineer @ merpay, Inc. •
いちおうこのイベントの主催の1人 • 仕事で使ってる言語: Go, Scala • 学びたい言語: Rust whoami Copyright © Merpay, Inc. All Rights Reserved.
3 • メルカリログ収集前史 • マイクロサービスにおけるログ収集 • メルペイのデータパイプライン構成 • 今後の課題 agenda
Copyright © Merpay, Inc. All Rights Reserved.
メルカリログ収集前史 © Merpay, Inc. 4
5 全体構成 Copyright © Merpay, Inc. All Rights Reserved. https://speakerdeck.com/cubicdaiya/mercari-data-analysis-infrastructure
6 • バックエンドの API やバッチサーバのローカルファイルにログを蓄積 • fluentd でログを逐次送信 ◦ 負荷分散や転送効率化の都合、中継用
fluentd も存在 • hourly batch で BigQuery や GCS にログを送信 • それとは別にストリーム処理のため Norikra にも送信 メルカリにおけるログ収集 Copyright © Merpay, Inc. All Rights Reserved.
7 • モノリシックなサービスを支えるのに特化していると言える ◦ 幾つかの限られた種類の App サーバからログを収集する前提 ◦ 出力されるログのスキーマも限られている ◦
App サーバや周辺インフラ含めて SRE チームが管理 • マイクロサービスにするとどうなってしまうのか...? メルカリにおけるログ収集とマイクロサービス Copyright © Merpay, Inc. All Rights Reserved.
マイクロサービスにおけるログ収集 © Merpay, Inc. 8
9 メルカリにおけるマイクロサービス Copyright © Merpay, Inc. All Rights Reserved. https://speakerdeck.com/mercari/mtc2018-microservices-platform-at-mercari
10 • モノリスを避けて、機能を多数のマイクロサービスに分割 ◦ DB もマイクロサービスごとに持つ ◦ 実装言語や DB の種類はマイクロサービス毎に選択可能にする
▪ とはいえ、 Go + MySQL or Cloud Spanner が大多数 ◦ マイクロサービスのコンテナは Kubernetes (GKE) 上で動作 • チームもマイクロサービスに従って分割 ◦ なるべく各マイクロサービスチームが独自に意思決定可能にする メルカリにおけるマイクロサービス Copyright © Merpay, Inc. All Rights Reserved.
11 • マイクロサービスにするとどうなってしまうのか...? ◦ ログ送信元が 10+, 100+, … 種類に増えることは考慮されていない ▪
さらに言うと Kubernetes に乗ることも考慮されていない ◦ ログのスキーマを限定するのは難しくなる ▪ 各マイクロサービスが担う機能が異なれば、出力するログも異なるはず ◦ SRE チームがインフラを支え続けるのが難しくなる ◦ ログの利用者の多様化も進むかも? ▪ 送信されたログを活用するマイクロサービスが登場したり ▪ BigQuery, GCS にだけ転送すればいい時代が終わるかも Re: メルカリにおけるログ収集とマイクロサービス Copyright © Merpay, Inc. All Rights Reserved. マイクロサービスになるなら それに特化したログ収集基盤が必要!
メルペイのデータパイプライン構成 © Merpay, Inc. 12
13 マイクロサービスのためのログ収集パイプライン Copyright © Merpay, Inc. All Rights Reserved. https://tech.mercari.com/entry/2018/12/03/162618
14 • 多数のマイクロサービスからログを受け付けるインタフェースを提供 ◦ 現在は Cloud Pub/Sub を想定 • ログを集約して
GCS に保存するパスと、パースして BigQuery, GCS に保存するパスを用意 ◦ パースに失敗した際でも GCS にはログが保持される ◦ スキーマは Protocol Buffer で事前定義する ◦ ETL 処理は Cloud Dataflow で行う マイクロサービスのためのログ収集パイプライン Copyright © Merpay, Inc. All Rights Reserved.
15 • ログ収集パイプラインの Pub/Sub に送信する方法が欲しい • いくつかのオプションが Kubernetes の Doc
で提示されている ◦ ノードの Logging Agent を使う ◦ Logging Agent を持った Sidecar Container をアプリケーション Pod に含める ◦ ログ出力する Sidecar Container をアプリケーション Pod に含める ▪ ログ送信は別 Pod で行う ◦ アプリケーションから直接ログ収集のバックエンドにログを送信する ◦ ref. https://kubernetes.io/docs/concepts/cluster-administration/logging/ Kubernetes 上のサービスからのログ収集 Copyright © Merpay, Inc. All Rights Reserved.
16 • 現在は「アプリケーションから直接ログ収集のバックエンドにログを送信する」を選択 ◦ Go のロガーライブラリを実装して配布している ◦ Pub/Sub Topic や
IAM の管理は別途設定する ◦ マイクロサービスの実装言語毎にライブラリ開発が必要なリスクは存在 ... • 秋頃までは「ノードの Logging Agent を使う」を選択していた ◦ GKE なら Stackdriver Logging へ送信する Agent がデフォルトで動作する! ▪ 実態は Google 提供の fluentd コンテナが動作する DaemonSet ◦ 文字列しか扱えない、障害点が増える、コスト大 ...の理由から上記を選択し直した Kubernetes 上のサービスからのログ収集 Copyright © Merpay, Inc. All Rights Reserved.
今後の課題 © Merpay, Inc. 17
18 • スキーマハンドリング ◦ 現在は Protocol Buffer の定義から事前にスキーマを生成してリリース ◦ 柔軟かつスピーディーにスキーマ更新するために
Schema Registory が必要? ◦ しかし送信されるログのパターンが見えない今は過剰な投資かも ◦ 皆さんがどうやっているか知りたい! • Kubernetes 上のサービスからのログ収集、もっと良いソリューションが欲しい! ◦ Pub/Sub にログを送信する Logging Agent があると良い? ◦ Logging Agent のチューニングや運用コストが生じるデメリットは発生するが ◦ 皆さんがどうやっているか知り(ry 今後の課題 Copyright © Merpay, Inc. All Rights Reserved.
19 • データガバナンスどうにかする(?) ◦ データを蓄積してもその意味が分からなければ活用は進まない ◦ Apache Atlas とか WhereHows
とか AWS Glue の Catalog とかはあるが... ◦ 統制の取れたメタデータ管理なんて幻想な気がする • アクセス制御どうにかする ◦ 現状は GCP の IAM で whitelist 的に管理 ◦ どんな粒度で誰がどう管理するかは中長期的にも課題 今後の課題 Copyright © Merpay, Inc. All Rights Reserved.
おしまい © Merpay, Inc. 20