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
2.8k
1
Share
ログ収集基盤を導入したらエラーログが99%以上削減された話
ryota_koshiba
July 06, 2019
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
100
Other Decks in Programming
See All in Programming
KagglerがMixSeekを触ってみた
morim
0
370
VueエンジニアがReactを触って感じた_設計の違い
koukimiura
0
170
CursorとClaudeCodeとCodexとOpenCodeを実際に比較してみた
terisuke
1
400
事業会社でのセキュリティ長期インターンについて
masachikaura
0
250
forteeの改修から振り返るPHPerKaigi 2026
muno92
PRO
3
270
TiDBのアーキテクチャから学ぶ分散システム入門 〜MySQL互換のNewSQLは何を解決するのか〜 / tidb-architecture-study
dznbk
1
160
安いハードウェアでVulkan
fadis
1
950
ファインチューニングせずメインコンペを解く方法
pokutuna
0
300
Running Swift without an OS
kishikawakatsumi
0
760
PCOVから学ぶコードカバレッジ #phpcon_odawara
o0h
PRO
0
260
PHP 7.4でもOpenTelemetryゼロコード計装がしたい! / PHPerKaigi 2026
arthur1
1
560
一度始めたらやめられない開発効率向上術 / Findy あなたのdotfilesを教えて!
k0kubun
4
2.9k
Featured
See All Featured
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
240
Statistics for Hackers
jakevdp
799
230k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.5k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
310
Ethics towards AI in product and experience design
skipperchong
2
250
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
The Curious Case for Waylosing
cassininazir
0
300
Test your architecture with Archunit
thirion
1
2.2k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
370
Tell your own story through comics
letsgokoyo
1
890
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) その他
いい感じの流れ
ただし 握り潰されているエラーも多数存在する
今日の話はあくまでもここ 今後はここを掘り出す
まとめ - 目的は作ることではなく、使ってもらうこと - 負債の数値化、可視化で周りを巻き込む - 自分に降りかかる作業を減らすため、可能な限り自動化 今後は顕在化してないバグを掘り起こしていきたい