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
Mackerelにおけるインシデント対応とポストモーテム - 現場での工夫と学び
Search
taxin
October 30, 2025
Technology
0
100
Mackerelにおけるインシデント対応とポストモーテム - 現場での工夫と学び
taxin
October 30, 2025
Tweet
Share
More Decks by taxin
See All by taxin
監視SaaSの運用におけるObservability改善の歩み
taxin
4
5.2k
ポストモーテム読書会のすすめ
taxin
1
2.7k
OpenTelemetry実践 はじめの一歩
taxin
0
3.2k
カスタムダッシュボードの活用方法とMackerel開発チームでの実践例
taxin
0
1.7k
SREを「続けていく」あなたへ
taxin
1
360
Cloud runユーザーから見たk8s
taxin
0
910
ローカルk8s環境のススメ / k8s-tools-for-local
taxin
0
1.2k
EKS 101
taxin
0
960
Other Decks in Technology
See All in Technology
CLIPでマルチモーダル画像検索 →とても良い
wm3
2
760
現場の壁を乗り越えて、 「計装注入」が拓く オブザーバビリティ / Beyond the Field Barriers: Instrumentation Injection and the Future of Observability
aoto
PRO
1
830
次世代のメールプロトコルの斜め読み
hirachan
3
270
ストレージエンジニアの仕事と、近年の計算機について / 第58回 情報科学若手の会
pfn
PRO
4
950
激動の時代を爆速リチーミングで乗り越えろ
sansantech
PRO
1
240
文字列操作の達人になる ~ Kotlinの文字列の便利な世界 ~ - Kotlin fest 2025
tomorrowkey
2
380
今のコンピュータ、AI にも Web にも 向いていないので 作り直そう!!
piacerex
0
330
組織全員で向き合うAI Readyなデータ利活用
gappy50
5
2k
OTEPsで知るOpenTelemetryの未来 / Observability Conference Tokyo 2025
arthur1
0
410
SOTA競争から人間を超える画像認識へ
shinya7y
0
670
オブザーバビリティが育むシステム理解と好奇心
maruloop
3
1.9k
Amazon Q Developer CLIをClaude Codeから使うためのベストプラクティスを考えてみた
dar_kuma_san
0
310
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
174
15k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Docker and Python
trallard
46
3.6k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
54k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Product Roadmaps are Hard
iamctodd
PRO
55
11k
Why You Should Never Use an ORM
jnunemaker
PRO
60
9.6k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
253
22k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3k
Scaling GitHub
holman
463
140k
Making the Leap to Tech Lead
cromwellryan
135
9.6k
Transcript
ja.mackerel.io 2025.10.30 Mackerelにおける インシデント対応とポストモーテム - 現場での工夫と学び
自己紹介 2 西川 拓志 (id:taxintt / @taxin_tt) 2023年3月に株式会社はてなに入社 Mackerel開発チームでEmbedded SREとして
働いています
はじめに インシデントレスポンスとは - インシデントが発生した際に、システム・サービスを迅速に復旧させる ためのプロセス - インシデントレスポンスの各ステップ (障害対応フォーメーションの 形成、調査 etc.)
におけるハードルを下げるための仕組みが重要 ポストモーテムとは - インシデント発生後に行われるインシデントの分析・学習のプロセス - アクションアイテムの作成 “だけ” に留めないことが重要 3
Mackerelにおけるインシデント対応 4
Mackerelにおけるインシデント対応 5 アラート通知 問い合わせ インシデント かどうか? 障害対応 ポストモーテム 恒久対応 Yes
障害中 障害収束後
Mackerelにおけるインシデント対応 6 アラート通知 問い合わせ インシデント かどうか? 障害対応 ポストモーテム 恒久対応 Yes
障害中 障害収束後
Mackerelにおけるインシデント対応(1/3) (※ 前提) Mackerelのサービス基盤の監視にはMackerelを利用している - 情報経路としてはアラートと問い合わせが主 - アラート通知用のSlack channel、ユーザーからの問い合わせが流れて くるSlack
channelに開発チームのメンバーが参加 - 障害と思われる事象が発生している場合は、障害対応フォーメーション を組む - 障害対応するか迷った時に、障害対応の実施要否を判定するための フローチャートを用意している 7
障害対応の実施要否を判定するためのフローチャート - ユーザー影響の有無, アラートの有無で分岐 - インシデントを見逃さない方向に倒している Mackerelにおけるインシデント対応(1/3) 8
Mackerelにおけるインシデント対応 9 アラート通知 問い合わせ インシデント かどうか? 障害対応 ポストモーテム 恒久対応 Yes
障害中 障害収束後
Mackerelにおけるインシデント対応(2/3) - 障害対応は Google Meet + Cosenseを利用 - 障害対応時の情報共有は専用のSlack channelで行う
- 「障害が起きたら、とりあえずこのMeetに入って、このSlack channelを見て...」 - 障害対応用のドキュメントテンプレートをCosenseで用意しており、 チェックリスト方式で初動の動きができるようにしている - 障害対応の記録用のページの作成 - 障害対応フォーメーションの形成 (役割分担 etc.) - ユーザーへの第一報の準備 10
11
Mackerelにおけるインシデント対応(2/3) 初動の動きの中には障害のSeverity判定も含んでいる - Incident Severity Levelsを定義しており、障害のSeverityをフロー チャートで判定できるようにしている - Severityを判定することで、障害対応時のエスカレーション先や役 割分担の調整などを機械的に実施できるようにした
- ※ 障害対応中のSeverity変更も許容している 12
13
Mackerelにおけるインシデント対応(3/3) 初動の動きが済んだら、障害対応を行う - チームにjoinしたタイミングでSRE 1on1を実施しており、障害対応や アーキテクチャ解説など概要情報はインプット済み - 詳細情報にアクセスできるインデックス集 (Cosense) を用意
- e.g.) ログの検索方法、コンポーネントごとの調査方法 etc… - 障害対応時の定型作業などをまとめたRunbook (GitHub) も用意 - 上記のドキュメントにはアラート通知内のリンクやSlackのBookmarks から飛べるようにしている 14
Mackerelにおけるインシデント対応(3/3) 初動の動きが済んだら、障害対応を行う - 障害対応中に障害概要をまとめており、ユーザーへの告知作成時や ポストモーテム実施時に利用する - e.g.) 障害時間、Severity、影響内容とその範囲、原因 etc. -
障害が Resolved になったら、残タスク・申し送り事項などを書いて 障害対応フォーメーションを解散する 15
インシデント対応の改善事例 情報共有係 どのような課題があったか - (業務時間外、途中参加などの場合に) 障害対応の状況がわかりづらい - 障害対応の記録用のページだけだと、どの部分の記載が最新の 状況を表現しているかわからない -
Mackerel開発チームはフルリモートなので、オンラインでの障害 対応において「会話の混線」を防ぎたい 16
インシデント対応の改善事例 情報共有係 課題解決のために何をしたか - 障害対応フォーメーションの中で情報共有係という役割を設けた - 現在の状況と今後の見込みを定期的にSlackに投稿する 17
インシデント対応の改善事例 情報共有係 どのような効果があったか - 現在の状況と今後の見込みがSlackに投稿されるようになった - 途中参加の場合でも障害対応の最新の状況が一目でわかる - Slackに最新の情報があるので、障害対応フォーメーションにおいて 会話が混線しない
18
インシデント対応の改善事例 Incident Severity Levels どのような課題があったか - 障害の重大度や恒久対応の優先度判断の基準が無かった - 障害対応の温度感や質にむらが出たり、スプリントの状況次第では 恒久対応が後回しにされることもあった
- 恒久対応が完了していないことで障害が再発することも... 19
インシデント対応の改善事例 Incident Severity Levels 課題解決のために何をしたか - 障害の重大度を判断するIncident Severity Levelsの定義 -
Mackerel開発チームでは4段階のSeverityを定義した - 障害対応フローにSeverityの判定を組み込む - 導入時には、Incident Severity Levelsに関するワークショップを実施 20
21 重大度 解説 優先度 SEV1 セキュリティもしくは課金・請求に関する 問題 事後対策を最優先で行う SEV2 すべての顧客が機能を正常に利用できない
もしくは Mackerelのコア機能を正常に利用 できない問題 事後対策をデフォルトで通常 のタスクよりも優先して行う SEV3 一部の顧客がコア機能以外を正常に利用で きない問題 通常のタスクも含めて開発 チームで優先度を会話する SEV4 ユーザーを苛立たせているが、顧客が機能 を正常に利用できない程度ではない問題 通常のタスクも含めて開発 チームで優先度を会話する ※ 実際のSeverityの定義から登壇用に文言の修正等を行っています
インシデント対応の改善事例 Incident Severity Levels どのような効果があったか - 障害対応の場面では活用できている - SEVという障害に対する共通認識ができた -
一方で、SEVの判定に迷うケースが散見されるので、フローチャー トの修正 or 機械的に判定できるような仕組みを考えたい - 恒久対応での優先度判断においては課題がある - SEVを基にした意思決定が疎かになる場面があるので、Mackerel チーム内での文化の浸透を目指していく 22
Mackerelにおけるポストモーテム 23
Mackerelにおけるポストモーテム 24 アラート通知 問い合わせ インシデント かどうか? 障害対応 ポストモーテム 恒久対応 Yes
障害中 障害収束後
Mackerelにおけるポストモーテム ポストモーテム用の固定時間枠をチームで合意して確保している - 障害ふりかえり帯:毎週金曜日 午後4:00~5:00 - この時間にはミーティングなどの予定を一切被せない - 遅くとも1週間以内にポストモーテムは実施できるようになる -
「鉄は熱いうちに打て」を実現できる 25
Mackerelにおけるポストモーテム ポストモーテムは、下記のような流れで実施する (60min) - 1) 障害概要・タイムラインの読み合わせ - 2) ~ 4)
のための事実の整理 - 2) GKPT (Good, Keep, Problem, Try) - 整理された事実を分析し、チームにとっての学びを得る - 3) 恒久対応などのアクション・対策の洗い出し - 分析結果や学びを基にインシデントレスポンスの改善に繋げる - 4) 社内共有用の障害報告のアウトライン作成 + 担当者決め - 開発組織にとっての学びを得る 26
ポストモーテムの改善事例 恒久対応などのアクション・対策の洗い出し どのような課題があったか - ポストモーテムの品質にばらつきがあった - アクションアイテムの作成 “だけ” になってしまいがち -
参加者などに依存することなく、ポストモーテムにおける学びの 質を高く維持したい 27
ポストモーテムの改善事例 恒久対応などのアクション・対策の洗い出し 課題解決のために何をしたか - 事前に決められたオープンクエスチョンを利用する - e.g.) 「対応を開始してから障害の収束までの時間を短くできる余地 はありますか?」 -
GKPTだけではなく、事象を分析して学びを得る際の観点を提供する 28
29
ポストモーテムの改善事例 ポストモーテム読書会・アラート点検会 SRE独自の取り組みとして実施している - ポストモーテム読書会 - アラート点検会 30
ポストモーテムの改善事例 ポストモーテム読書会・アラート点検会 どのような課題があったか - 課題ベースではなく taxin のキャッチアップとして始まったのが きっかけ - 2023年3月:入社
~ 2023年5月:読書会の初回 - ポストモーテムを通じて、Mackerelのアーキテクチャに対する 理解を深めたい - システム・障害対応フローの課題・改善点も確認できる 31
ポストモーテムの改善事例 ポストモーテム読書会・アラート点検会 課題解決のために何をしたか - 自チームの過去事例・社内外の障害報告を読書候補としてストックする - 過去のポストモーテムでも異なる学びを得られる (個人・チームは経験を積むと 視野・視座・視点が変化する) -
題材のポストモーテムをエクストリームリーディングする - 各自で黙読→参加者全員で議論 - 議論の結果、出てきたアクションはGitHub issueとして起票する 32
33 ref: ポストモーテム読書会のすすめ - Speaker Deck
ポストモーテムの改善事例 ポストモーテム読書会・アラート点検会 どのような課題があったか - インシデント対応において、検知 ~ トリアージ ~チームの構成を 最速で実施する上でアラートは重要な要素である -
アラートを見て障害の詳細/重大度が一発でわかるのが理想 - 障害判定フローチャートでも触れたが、偽陽性のアラートが多いと疲弊 するので、改善したい - 逆に既存の監視ルールがカバーできていない部分も発見したい 34
ポストモーテムの改善事例 ポストモーテム読書会・アラート点検会 課題解決のために何をしたか - コンポーネントなどの単位で点検対象を決めて、テレメトリーデータや 監視ルールを確認し気になるところを議論する - 過去のポストモーテムが頭に入っていると、監視自体のCoverageにも 目を向けやすい 35
ポストモーテムの改善事例 ポストモーテム読書会・アラート点検会 どのような効果があったか - 直近のポストモーテムの実施有無に関係なく、監視改善について考える ことができるようになった - アラートをよりアクショナブルなものにする - よりユーザー影響を正確に表現できるテレメトリーや監視設定に
改善する etc… 36
最後に 「平時の取り組みが有事の対応力や学びの質を決定する」 - インシデント対応、ポストモーテムを通じた学習はプロセスに 人が介在する以上は質のバラツキができやすいのは事実 - 一方で、人に依存したり、質がバラついたままで良いかというと そんなことはない (ユーザーに対して誠実ではない) 改善のためのプロセスを設計して確実に改善に繋げましょう💪
37