監視設計の基本と可用性向上の考え方

2026.02.14
監視設計の基本と可用性向上の考え方

監視設計の基本と可用性向上の考え方

監視設計の出発点:SLO/SLI/アラート方針

目的と対象の棚卸し

監視は「全部見る」ではなく「落とさないために必要なことだけを見る」が基本です。顧客体験を壊す要因(例:決済不可、APIタイムアウト、管理画面ログイン不能)を列挙し、影響範囲(収益/業務/信頼)と復旧難易度で優先度をつけます。インフラ/アプリ/外部依存(DNS, CDN, 支払ゲートウェイ)の三層で整理し、責任境界を明確にします。

SLIとSLOの数値化

SLIは体験を測る指標、SLOはその目標です。例として「チェックアウト成功率」「API p95レイテンシ」「5xxエラーレート」。月間SLOを99.9%にすると誤差予算(エラーバジェット)は約43分/月です。SLOは「事業が許容できる停止時間」から逆算し、バックエンドの冗長化・当番体制・コストとトレードオフで合意します。

アラート設計の原則

ページャ(即時起床)を鳴らすのは「ユーザー影響が現在進行形で大きいとき」に限定します。推奨は以下です。

  • ページャ条件:5分間のp95レイテンシ>400ms かつ 5xx>2%
  • チケット条件:ディスク使用率>85%(30分継続)、バッチ遅延<SLA逸脱見込み
  • 情報通知:新規デプロイ、オートスケール発火、バックアップ完了

単一メトリクスの瞬間風速ではなく、複合条件と時間窓で誤検知を抑えます。デプロイ中の一時的な変動はサイレンスで回避し、同一原因の重複はグループ化して一件に束ねます。

何をどう監視するか:メトリクス/ログ/トレースと外形監視

ブラックボックスとホワイトボックス

外形(ブラックボックス)は「ユーザー視点で動いているか」を見るもの。内部(ホワイトボックス)は「なぜ遅い/落ちたか」を解く手がかりです。どちらか片方では片手落ちです。SLO達成の判定は外形、原因特定と予兆は内部で捉えます。

具体的な監視項目と閾値例

  • 外形監視:TLS証明書期限(30日前で警告/7日前でページャ)、チェックアウト合成テスト(失敗率>1%でページャ)
  • アプリ:5xxレート、p95/99レイテンシ、キュー滞留長(滞留>N分でページャ)
  • DB:コネクション使用率>80%(15分)、レプリカ遅延>10秒、ロック待ち時間>200ms
  • OS/コンテナ:CPUスチール、メモリ圧迫(RSS/ワーキングセット)、ファイルディスクリプタ枯渇>90%
  • ネットワーク:SYNエラーレート、eBPFベースのドロップ、AZ間レイテンシ逸脱
  • ジョブ/バッチ:遅延の「傾き」を監視(直値ではなく増加速度)

ダッシュボードは「SLOトップ(赤/黄/緑)→レイテンシブレークダウン→資源利用→依存先の健全性」の順に掘れる構成にします。可観測性の3本柱(メトリクス/ログ/トレース)を一つの事実で結び、トレースIDで相互にジャンプできるとMTTRが縮みます。

可用性を上げる運用:ノイズ削減、当番、Runbookと自動化

アラートノイズ削減テクニック

  • ダイナミックしきい値:曜日/時間帯のベースラインからの逸脱を検知
  • ヒステリシス:回復条件を発火条件より緩めにしチャタリングを防止
  • 関連付け:同一AZ障害は一件に集約、根本のネットワーク異常にぶら下げる
  • 変更連携:デプロイ/インフラ変更イベントをオーバーレイ表示し誤検知を見分ける

エスカレーションとMTTR短縮

一次当番は「判断不要の手順」を高速実行、難易度が上がる前に二次へエスカレーション。Runbookは「前提→判定→コマンド→期待結果→戻し方」まで1スクリーンで完結させます。生成AI(ChatGPT, Claude, Gemini)で初稿を作り、実機検証で差分を埋めると整備が進みます。IaCの監視ルールや自動修復スクリプトはCopilotで雛形を用意し、レビューを通して標準化します。

キャパシティとリリース連携

可用性は設計だけでなく日々のオペレーションで磨きます。エラーバジェットの消費が早いときはリリースを凍結し信頼性改善に集中、逆に余裕がある月は性能実験や大規模移行の試行に充てます。メンテナンスはSLO対象外時間帯に計画し、ユーザー告知とリハーサルをセットにします。

身近な企業活用例:中規模ECの失敗と改善

オンプレ由来の構成を踏襲しつつコンテナ化したばかり。監視はCPU/メモリとHTTP 200率のみ。ブラックフライデー本番でDB CPU飽和→カートAPIがタイムアウト、多数の誤検知が雪崩れて担当が判断不能に。復旧まで90分、売上に大打撃。翌月、次の施策を実行しました。

  1. SLOを「注文成功率99.9%」「API p95<400ms」に設定、誤差予算43分/月を明文化。
  2. 外形の合成チェックアウト(商品検索→カート→決済)を1分間隔で実施、失敗率をSLOに連動。
  3. アプリは5xx×レイテンシの複合でページャ、DBはコネクション使用率とロック待ちで予兆検知。
  4. デプロイイベントを監視に連携、10分の自動サイレンスを適用。
  5. Runbookを整備(フェイルオーバー、接続プール再設定、緊急スロットリング)。初稿はChatGPTで作成し、現場で検証・更新。
  6. 容量プランニングを週次で可視化、ピーク時は読み取り系を水平スケール。Copilotでアラート定義のIaC化。

結果、ページャは月120件→45件に減少、誤報は70%削減。次の大型セールは合成監視で早期検知→APIの同時接続上限を一時引き上げ、MTTRは18分に短縮。SLO達成率は3カ月連続で目標クリアとなり、施策の可視化により経営合意も取りやすくなりました。運用担当はClaude/Geminiで障害報告のテンプレを即時生成し、顧客広報も迅速化できました。

監視設計はツールの羅列ではなく、事業の許容停止時間から逆算した指標設計、外形×内部の二層監視、ノイズを抑えるアラート方針、Runbookと当番体制の運用がそろって初めて効きます。これらを地道に回すことで、サーバ監視運用事業の現場は「問題が起きる前に気づける組織」に変わっていきます。