SRE本 第6章「分散システムのモニタリング」詳細まとめ【図解・用語・実例付き】
🔰 はじめに
本記事では、SRE本(Site Reliability Engineering)第6章「分散システムのモニタリング」について、SRE未経験者や実務者にも理解しやすいよう要約・解説します。
モニタリングは、SREの基本中の基本。異常の検知・原因の特定・パフォーマンスの分析・容量管理など、あらゆるSRE活動の出発点になります。
📡 モニタリングの目的と役割
目的 |
説明 |
障害の検知 |
サービスの異常をリアルタイムで察知する |
トラブルシュート |
原因の絞り込みと復旧対応 |
パフォーマンス管理 |
応答速度やスループットの把握 |
キャパシティプランニング |
リソース使用率を把握して将来の需要に備える |
🧠 SREが考える「良いモニタリング」とは?
✅ 原則
-
ユーザー視点であること:ユーザー体験に直結するメトリクスを重視
-
自動でアラートを出せること:人手で気づくのでは遅い
-
無駄なアラートを出さないこと:ノイズ削減が運用の鍵
- 可観測性(Observability)を意識すること
🔍 重要用語の整理
用語 |
説明 |
例 |
メトリクス (Metrics) |
数値化された状態情報 |
CPU使用率、リクエスト数 |
ログ (Logs) |
イベントや状態の履歴 |
エラーログ、アクセスログ |
トレース (Traces) |
リクエストの経路・処理時間を追跡 |
分散トレースツール |
イベント (Events) |
特定の出来事を表す通知 |
Podの再起動など |
アラート (Alerts) |
事前定義した条件に基づく警告 |
SLO違反、5xx増加 |
🧭 モニタリング設計の指針(図解)
📌 ブラックボックス vs ホワイトボックス監視
観点 |
ブラックボックス |
ホワイトボックス |
概要 |
外部からの観測 |
内部構造も把握 |
例 |
curlでの死活確認 |
アプリ内部のメトリクス確認 |
メリット |
ユーザー体験に近い |
詳細な状態が把握できる |
デメリット |
原因特定が困難 |
実装依存で壊れやすい |
ベストプラクティス |
両方組み合わせるのが理想 |
|
🧰 実務で使えるモニタリングツール一覧
カテゴリ |
ツール名 |
用途 |
メトリクス収集 |
Prometheus / Datadog / Cloud Monitoring |
サービス状態を可視化 |
ログ分析 |
Cloud Logging / Fluentd / Logstash |
エラー・リクエスト内容の追跡 |
トレース |
OpenTelemetry / Jaeger / X-Ray |
APIや内部処理の可視化 |
可視化 |
Grafana / Kibana / Looker Studio |
ダッシュボード作成 |
アラート管理 |
PagerDuty / Opsgenie / VictorOps |
通知とオンコール対応連携 |
🛠 アラート運用のベストプラクティス
-
SLOベースのアラート:SLO違反の兆候に基づいて通知
-
段階的な通知:Warning → Critical とレベル分け
-
ノイズ除去:同一原因による多重通知はサプレッション設定
-
緊急度に応じたルーティング:重要度で通知先や手段を分岐
✅ モニタリングの失敗あるある
誤り |
解説 |
なんでもかんでも監視対象にする |
ノイズ過多・保守不能に |
アラートを通知するだけ |
自動対応やRunbookがなければ意味なし |
ダッシュボードが多すぎる |
見る人が迷い、使われなくなる |
📌 まとめ
- モニタリングは「検出・分析・改善」の出発点
- ブラックボックスとホワイトボックスの組み合わせが鍵
- 「SLI→SLO→アラート」の構成がSRE的王道
- ノイズ削減と自動化で運用負荷を抑える
🚀 次にやること
- 監視対象の一覧を整理して、ユーザー体験に直結するSLIを選定
- ダッシュボードとアラートを見直してノイズを削減
- 自動化できるアラート対応フローを検討・構築する