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
SHIFT EVOLVE
PRO
July 26, 2021
Business
520
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
マイクロサービスのログ可視化
SHIFT EVOLVE
PRO
July 26, 2021
More Decks by SHIFT EVOLVE
See All by SHIFT EVOLVE
コミュニティを、仕事にした。‐ 学びの場が会社の価値になるまで / 20260724 Ayana Chandler
shift_evolve
PRO
0
51
越境QA 〜QA歴18年のキャリア~ / 20260724 Masakazu Yoshikawa
shift_evolve
PRO
0
40
fukabori.fm出張版:AI駆動開発でテストエンジニアは不要になるのか / 20260723 Yoshimasa Iwase & Tomoo Morikawa
shift_evolve
PRO
2
49
【実録】「なんちゃってアジャイル」によるプロジェクト崩壊とその教訓 / 20260723 Takeshi Watarai
shift_evolve
PRO
1
25
AIとハーネスで育てるトランスコンパイラ / 20260722 Yasushi Katayama
shift_evolve
PRO
3
790
AWS DevOps AgentでCDKメンテナンスは楽になるのか ~検証から見えた最適解~ / 20260718 Masaki Okuda
shift_evolve
PRO
0
590
AI時代のYAGNI:「爆速で無駄になった機能」からの学び / 20260720 Naoki Takahashi
shift_evolve
PRO
3
540
AIが変えるDevSecOps―開発速度とセキュリティの両立へ / 20260714 Mitsutoshi Matsuo
shift_evolve
PRO
1
85
生成AI活用によるODC欠陥分析の分類高速化の実践と導入効果 / 20260703 Suguru Ishii
shift_evolve
PRO
2
170
Other Decks in Business
See All in Business
Terraform Provider for TROCCO × AI で 半自動化する複数プロダクトの連携運用 / Semi-Automating Multi-Product Data Integration Ops with the Terraform Provider for TROCCO × AI
medley
0
250
若手としての正解を得られなかった話~でもたぶん生きのこれる~
chronoll
0
370
結果、生き残った_きのこカンファレンス2026
yurufuwahealer
0
160
自分を知ることから始まる生存戦略
peacemaker07
2
450
Nstock 採用資料 / We are hiring
nstock
30
390k
スクラムマスターの観察眼 〜AIによる3days爆速キャッチアップと次の一手〜/The Scrum Master's Insight: Lightning-Fast 3-Day Catch-Up with AI and the Next Move
ikuodanaka
2
420
SalesforceとTableauコミュニティを横断して感じたこと(Osaka Dreamin)
leafyoh
0
120
Web工学とビジネスモデル - IVRyにおけるAI時代の新規事業開発 -
ivry
1
540
Tokyo Artisan Intelligence 株式会社(TAI)半導体戦略_最新版
tai20200303
0
140
「正しいはずの依頼」が届かなかった理由
geneguchi
0
2.8k
AWS Summit Taipei 2026: Decomposing Ontology and Agentic AI - Using Amazon Bedrock to Bring Living Water to Manufacturing ERP
dwchiang
0
280
yomiyomi company deck
yomiyomi
0
1k
Featured
See All Featured
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
740
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
330
Between Models and Reality
mayunak
4
380
Evolving SEO for Evolving Search Engines
ryanjones
0
240
Un-Boring Meetings
codingconduct
0
350
Documentation Writing (for coders)
carmenintech
77
5.4k
The browser strikes back
jonoalderson
0
1.4k
Code Reviewing Like a Champion
maltzj
528
40k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
1k
The Cost Of JavaScript in 2023
addyosmani
55
10k
Statistics for Hackers
jakevdp
799
230k
How to Ace a Technical Interview
jacobian
281
24k
Transcript
マイクロサービス の ログ可視化 ~分散トレーシング導入してみた~ 技術推進部オートメーションG 秋葉 啓充 2021/07/21
アジェンダ • マイクロサービスの課題 • 分散トレーシングの紹介 • 実際に導入してみた
マイクロサービスの課題 • マイクロサービスは、互いのサービスへの影響を最小限化した疎結合なモデルで構成されています。裏を返せば、 1つのリクエストにもかかわらず、複数のサービスをまたいで処理をしなければなりません。 • 故にリクエスト全体の流れを分析することが難しくなり、そのままではトレーサビリティの低下を招くことになります。 3 どのサービスがつながっているんだ??
4 そこで!!
分散トレーシングの紹介 • 分散トレーシングとは、SpanとTraceという考え方でマイクロサービスのアプリケーションの監視やトラブルシュー ティング障害が発生した場所とパフォーマンスの低下の原因を特定します。 5 • Spanとは、1回のsqlの実行や、1回の外部へのリクエストなど、各操作の開始から終了を表します。 • Traceとは、全体の開始から終了までのSpanの集合です。
分散トレーシング Jaeger Jaegerは、UberTechnologiesによってオープンソースとしてリリースされた分散トレースシステム です。 次のようなマイクロサービスベースの分散システムの監視とトラブルシューティングに使用され ます。 • 分散コンテキストトレース • 分散トランザクション監視
• 根本原因分析 • サービス依存性分析 • パフォーマンス/レイテンシーの最適化 6 https://www.jaegertracing.io/
Jaeger技術仕様 Jaegerの技術仕様は以下の通り • フロントエンドはReactによるUI実装 • バックエンドはGoによる実装 • サポートストレージバックエンド • Cassandra
3.4+ • Elasticsearch 5.x, 6.x • メモリストレージ 7
8 実際に導入してみた
案件概要 4月 5月 6月 ・案件ご相談 ・お客様環境に見合ったログ監視サービス検討 ・分散トレーシング機能試験導入 ・分散トレーシング機能ブラッシュアップ お客様
教育業界 スケジュール 体制図 9
ソフトウェア構成図 10
実際に起きた出来事 11 5 月 6 月 • EKSにログを取得する仕組みがない為、そもそもログをどうやって集約してよいかがわからない • 出ているログを分析してみたが、統計を知ったところで使いどころがイメージがつかない
• ElasticSearch Service があまりにも高い • ベトナムのホーチミンロックダウンに伴うオフィス出勤が禁止 • ログ監視サービスが定まらない • 他サービスが、忙しくてクライアントを導入ができない • VPCの上限数に到達してサービス稼働できない • サービスURLがデプロイの度に毎度変わるので連絡が追いつかない • ログを参照したが、そもそもログがほとんど出ていない • ログ監視サービスを見られる人と見られない人がいる • サービス選択時に訳の分からない数値が出ていると言われる • UIが直感的に使えないという意見をもらう • 検索ができない、動かないと言われる • 膨大な資料を英語で渡される • これではエラー補足できないという意見をもらう • 各サービスがプロトコル・言語・フレームワークが統一されているわけではない • …… etc
ログ監視サービスが定まらない 開発会社 事例の 多さ AWS マネージド 導入 経験 特徴 Jaeger
Uberが 開発 〇 - 〇 • Zipkinを 元に作成 X-Ray Amazon が開発 △ 〇 - • サービスマップ 作成 Instana Instana が開発 〇 - △ • パフォーマンス モニタリング Datadog Datadog が開発 △ - - • ダッシュボード による可視化 Zipkin Twitter が開発 〇 - - • Javaで作成 12 • ログ監視サービスが乱立していてどれにするか決められない • 導入経験があり、デファクトのJaegerを試すことにした
• 直感的に使えない(≒使い慣れていない)という意見と解釈して以下の対応を行いました • 操作マニュアル・ビデオを整備して配布 • 検索条件に正規表現を使用できるように変更 • 普段からローカルログで見るのではなく、Jaeger UI を使ってもらうようエスカレーション
13 UIが直感的に使えないという意見をもらう
これではエラー補足できないという意見をもらう 14 { “log”: “2021-06-11 05:05:22.039 [Account Service] XX.XXX.XXX.XX Root=1-XXXXXX-405811633a68259804ed32cd
PATCH /accounts/api/userinfo http-hogehoge-58081-exec-10 INFO jp.XXXXX.XXXXXX.account.infrastructure.XXXXX.XXXConfiguration 185 XXXAPIの結果メッセージ=¥"[BKE_0003](PF02)データベースの更新に失敗しました (TBL_PERSONAL)¥"¥n", "stream": "stdout" } エラーメッセージをINFOレベルで 出力しているケースなども散見される ログの出力レベルの統一の為に ログフォーマット出力ガイドラインを作成して展開
まとめ • 分散トレーシングを導入してみても、 そもそもログが適切に吐かれていないとつらい 15 • マイクロサービスを可視化するには、 分散トレーシングが有効
ご清聴ありがとうございました