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
ログ収集基盤を導入したらエラーログが99%以上削減された話
Search
ryota_koshiba
July 06, 2019
Programming
1
2.8k
ログ収集基盤を導入したらエラーログが99%以上削減された話
ryota_koshiba
July 06, 2019
Tweet
Share
More Decks by ryota_koshiba
See All by ryota_koshiba
まだまだ導入するか分からないけどサービスメッシュ 聞いてきた
ryota548
3
960
Group Detection Based on User-to-User Distance in Everyday life for Office Lunch Group Recommendation
ryota548
1
99
Other Decks in Programming
See All in Programming
AIコードレビューの導入・運用と AI駆動開発における「AI4QA」の取り組みについて
hagevvashi
0
500
Everything Claude Code OSS詳細 — 5層構造の中身と導入方法
targe
0
120
Docコメントで始める簡単ガードレール
keisukeikeda
1
120
Agent Skills Workshop - AIへの頼み方を仕組み化する
gotalab555
15
8.9k
Go 1.26でのsliceのメモリアロケーション最適化 / Go 1.26 リリースパーティ #go126party
mazrean
1
410
TipKitTips
ktcryomm
0
170
CSC307 Lecture 14
javiergs
PRO
0
470
encoding/json/v2のUnmarshalはこう変わった:内部実装で見る設計改善
kurakura0916
0
420
どんと来い、データベース信頼性エンジニアリング / Introduction to DBRE
nnaka2992
1
290
AI駆動開発の本音 〜Claude Code並列開発で見えたエンジニアの新しい役割〜
hisuzuya
4
510
猫の手も借りたい!ので AIエージェント猫を作って社内に放した話 Claude Code × Container Lambda の Slack Bot "DevNeko"
naramomi7
0
270
エージェント開発初心者の僕がエージェントを作った話と今後やりたいこと
thasu0123
0
250
Featured
See All Featured
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
150
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
150
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
140
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
350
Believing is Seeing
oripsolob
1
84
The World Runs on Bad Software
bkeepers
PRO
72
12k
Facilitating Awesome Meetings
lara
57
6.8k
Navigating Weather and Climate Data
rabernat
0
140
How to train your dragon (web standard)
notwaldorf
97
6.6k
Designing for humans not robots
tammielis
254
26k
Writing Fast Ruby
sferik
630
63k
Code Review Best Practice
trishagee
74
20k
Transcript
ログ収集基盤を導入したら エラーログが99%以上削減された話 DMM.com 小芝 涼太
あなたは誰? TwitterとかQiitaとか: @_r548 DMM.com 動画配信事業部のエンジニア
DMM動画について
DMMの売り上げを支え続けてきた 20年前から続くサービス
提供しているサービスや 対応するデバイスも年々増える
もちろん技術負債もたまる
主な仕事:技術負債の返済 開発効率の向上 障害発生率を減らしコスト削減
今までやってきたこと DBの利用状況調査 (general_logから分析, Spark, EMR) 本番環境のクラウド化、コンテナ化 (GKE, Istio, Spinnaker等の技術検証中) UIパーツのコンポーネント化
(Vue.js, Storybook) ログ収集基盤の構築、運用 (EFK, KFH, Lambda)
今までやってきたこと DBの利用状況調査 (general_logから分析, Spark, EMR) 本番環境のクラウド化、コンテナ化 (GKE, Istio, Spinnaker等の技術検証中) UIパーツのコンポーネント化
(Vue.js, Storybook) ログ収集基盤の構築、運用 (EFK, KFH, Lambda) ←
これまでDMM 様々な事業部が乗っかるモノリシック (動画、電子書籍、物販などなど) ↓ 各事業部に合わせた サーバの設定ができない
アクセスログやアプリケーションログ を取得することができていなかった
1年前 事業部ごとにサーバを分離 ↓ 各事業部に合わせたサーバの設定が可能
やっとログ収集ができる!
ログ収集やろう
None
fluentdでサーバのログをAWS上の Kinesis Firehoseへ転送
S3:アクセスログ&エラーログ Elasticsearch:エラーログのみ
アクセスログは Athenaを用いて抽出できるように
エラーログはKibanaから検索できるように
None
とりあえず作った
ただ、誰も使ってくれていない
しかも 数十万件のエラーログが発生していた
どうい状況?? 数種類のログが大半を占めていそう サービスに大きな影響を与えるものではない
それにしてもノイズが多すぎる 本来みたいログが見れない 新たなエラーログを検知できない
ログ基盤の意味をなしていない
エラーログを撲滅させよう!
エラーログ撲滅の流れ
エラーログから該当するコードを調査 ↓ アクセスログからエラーログの再現性を確認 ↓ 該当箇所を修正してエラーログが出ないことを確かめる
↑この辺 エラーメッセージ毎のログをカウント
チームメンバー数人で エラーログランキングの上位から 1つ1つ潰していく地道な作業
数週間で80%ほど削減できた
それでも残り数万件が存在
ここが一番やばい
種類が多すぎるし、なかなか減らない
いつ終わんのこれ??
もっと周りを巻き込もう
事業部全体のSlackチャンネルに 毎朝エラーログの状況を投下する
None
前日のエラーログ件数を取得し、 毎朝Slackへ通知
事業部全体のSlackチャンネルに 毎朝エラーログの状況を投下する ↑エンジニア以外も含む
↑この数字がエンジニアの焦り具合を表している
いい感じ
今までなぜこんな状況になっていたか ↓ やばそうなことは分かっているが どのくらいやばいかは分からない
負債を数値化 ↓ どのくらいやばいかがやっと分かった
< 俺このエラーログ対応するわ! < じゃあ自分はこれ! < みんなでやっていこー! < やるぞー!
みんなでエラーログを撲滅させよう! ↑他事業部(インフラやビッグデータ)のエンジニアも参加
自分がやるべきこと
エラーを潰すこと ↓ ログ基盤をよりよくする
改めて、エラーログ撲滅の流れ
エラーログから該当するコードを調査 ↓ アクセスログからエラーログの再現性を確認 ↓ 該当箇所を修正してエラーログが出ないことを確かめる
エラーログから該当するコードを調査 ↓ アクセスログからエラーログの再現性を確認 ↓ 該当箇所を修正してエラーログが出ないことを確かめる
アクセスログからエラーログの再現性を確認 問題点:Athenaを利用 => AWSにログインする必要 => S3のログを基にあらかじめテーブルの作成 アクセスログの調査を全員ができない状況
None
Crawlerがログフォーマットを自動識別し Data Catalogにテーブルとして追加
RedashからAthenaを操作
自動化することで 自分の手から離れた
現在どうなっているか
当初より99.9%以上削減された
めっちゃ減った✌
エラーログが撲滅されることで どんないいことがあったか
リリースの品質向上 ユーザに影響を与える前にバグや障害を検知
他にも
負債や主要項目の通知が当たり前に SonarQubeの静的解析結果 APIのレスポンスが遅いランキング GAの主要な値(ユーザ数, CVR) その他
いい感じの流れ
ただし 握り潰されているエラーも多数存在する
今日の話はあくまでもここ 今後はここを掘り出す
まとめ - 目的は作ることではなく、使ってもらうこと - 負債の数値化、可視化で周りを巻き込む - 自分に降りかかる作業を減らすため、可能な限り自動化 今後は顕在化してないバグを掘り起こしていきたい