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
510
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
高速な品質フィードバックを実現するAIテスト設計エージェント構築の要点 / 20260529 Suguru Ishii
shift_evolve
PRO
0
63
SREの仕事は「壊さないこと」ではなくなった 〜自律化していくシステムに、責任と判断を与えるという価値〜 / 20260515 Naoki Shimada
shift_evolve
PRO
1
290
ボトムアップの改善の火を灯し続けろ!〜支援現場で学んだ、消えないための3つの打ち手〜 / 20260509 Kazuki Mori
shift_evolve
PRO
2
1.1k
AI活用時代の事業判断高度化を導くエンジニアリング基盤 / 20260424 Atsushi Funahashi
shift_evolve
PRO
2
160
ネットワーク運用を楽にするAWS DevOps Agent活用法!! / 20260421 Masaki Okuda
shift_evolve
PRO
2
340
プロダクトを触って語って理解する、チーム横断バグバッシュのすすめ / 20260411 Naoki Takahashi
shift_evolve
PRO
1
700
40代からのアウトプット ― 経験は価値ある学びに変わる / 20260404 Naoki Takahashi
shift_evolve
PRO
7
1.5k
俺の/私の最強アーキテクチャ決定戦開催 ― チームで新しいアーキテクチャに適合していくために / 20260322 Naoki Takahashi
shift_evolve
PRO
1
940
事例から紐解くSHIFT流QA支援 ~大規模プロジェクトの品質管理支援、QA組織立ち上げ~ / 20260320 Nozomu Koketsu
shift_evolve
PRO
0
340
Other Decks in Business
See All in Business
株式会社リバイブル 会社説明資料
rebible
0
980
エイターリンク株式会社 会社紹介資料
aeterelink
0
43k
ITが何の略なのかも知らないままエンジニアになっちゃったのでインターネットに生き恥を晒してみた話
m_k__77
1
280
Team Topologies as the 'infrastructure for agency' with humans and AI
matthewskelton
PRO
0
210
どこまでを引き受けるのか — 変わり続ける役割と、変わらない思考法 / How Much We Take On — Evolving Roles and Enduring Ways of Thinking
nrslib
2
930
HP掲載プラン
desaki
0
220
M3 Career Culture Deck(セールス&コンサルティング職)
m3c
2
320k
エージェントスキル:自律型AIが変える最適化とサプライチェーンの未来
mickey_kubo
0
140
株式会社アシスト_会社紹介資料
ashisuto_career
3
180k
パーソルクロステクノロジー_グループソリューション本部のご紹介 / Introduction_of_gs
pxt_gs_ssol
0
3.4k
SimpleForm 会社紹介資料
simpleform
2
55k
【事業について知る】エーテンラボ採用デック
a10lab201612
0
130
Featured
See All Featured
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
430
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
540
GitHub's CSS Performance
jonrohan
1033
470k
How to Think Like a Performance Engineer
csswizardry
28
2.6k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
Marketing to machines
jonoalderson
1
5.4k
WCS-LA-2024
lcolladotor
0
630
Facilitating Awesome Meetings
lara
57
7k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.3k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
590
A better future with KSS
kneath
240
18k
How GitHub (no longer) Works
holman
316
150k
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 • マイクロサービスを可視化するには、 分散トレーシングが有効
ご清聴ありがとうございました