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
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ログ収集基盤を導入したらエラーログが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
net-httpのHTTP/2対応について
naruse
0
460
Webフレームワークの ベンチマークについて
yusukebe
0
150
正しくソフトウェアを作る、前提を疑うための認知の視点 / doubt-premise
minodriven
18
6.3k
OSもどきOS
arkw
0
470
Spec-Driven Development with AI-Agents: From High-Level Requirements to Working Software
antonarhipov
2
470
タクシーアプリ『GO』の バックエンド開発のおける AI利活用と若者のすべて
pyama86
3
1.9k
AIエージェントの隔離技術の徹底比較
kawayu
0
470
TypeScript+Orvalで実現する型安全かつ堅牢でスケーラブルなマルチチャネル通知基盤 / TSKaigi Night talks ~after conference~
d0riven
0
320
These Five Tricks Can Make Your Apps Greener, Cheaper, & Nicer
hollycummins
0
280
AI 時代のソフトウェア設計の学び方
masuda220
PRO
29
12k
jQueryをバージョンアップする前に使いたいjQuery Migrate
matsuo_atsushi
0
200
Claspは野良GASの夢をみるか
takter00
0
180
Featured
See All Featured
We Are The Robots
honzajavorek
0
240
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
380
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
460
[SF Ruby Conf 2025] Rails X
palkan
2
1.1k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
210
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
160
The browser strikes back
jonoalderson
0
1.2k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
290
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.5k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.3k
BBQ
matthewcrist
89
10k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
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) その他
いい感じの流れ
ただし 握り潰されているエラーも多数存在する
今日の話はあくまでもここ 今後はここを掘り出す
まとめ - 目的は作ることではなく、使ってもらうこと - 負債の数値化、可視化で周りを巻き込む - 自分に降りかかる作業を減らすため、可能な限り自動化 今後は顕在化してないバグを掘り起こしていきたい