第3章:ログ・メトリクス・トレースの当たり方(最低限)

この章で学ぶこと

  • 観測の入口を決める(ログ/メトリクス/トレース)
  • request-id 等で点を線にする
  • 複数ログ源を相関する前に時刻同期と時計ずれを確認する
  • “正常との差分”で見る

成果物(または判断基準)

  • 観測点(何を見るか)のメモ
  • 切り分けに使う証跡(ログ抜粋等)

本文

最低限は“どの層で破綻しているか”を特定すること。アプリケーション/DB/外部依存のいずれかに切り分ける。

注: “正常との差分”を見るために、比較対象(直近の正常期間、同時間帯、同リージョン等)を先に決める。

当たり方(例)

  • メトリクス: エラー率、レイテンシ、飽和(接続数/CPU)
  • ログ: エラー種類、request-id、直近変更の影響
  • トレース: どこで詰まっているか(外部呼び出し等)

観測結果はタイムラインに記録し、判断の根拠として残す。

複数ログ源の時刻整合性

タイムゾーンと表記形式が同じでも、ホストの時計がずれていれば事象の順序を誤る。アプリケーション、DB、ロードバランサーなど複数のログ源を相関する前に、次を確認してタイムラインへ記録する。

  • 各ログ源の時刻同期状態(同期済み / 未同期 / 不明)、共通タイムソース、確認日時、確認方法
  • インシデント対象期間に近い時点で基準時刻と比較した時計ずれ(clock skew)の幅と方向
  • 補正の有無。補正する場合は対象ログ源、補正幅・方向、根拠、補正後時刻

原ログの時刻は上書きせず証跡として保全する。分析用タイムラインで補正する場合は、原時刻と補正後時刻を併記する。同期状態やずれが確認できないログ源は「不明」と記録し、時刻だけで前後関係を確定しない。

この確認はログ基盤の構築手順ではなく、相関結果の信頼性を示す最小メタデータである。NIST SP 800-92 は、logging host の時計を共通タイムソースへ同期し、ログ設定やプロセスの異常を記録・報告する高水準のログ管理ガイダンスを示している。

具体例(場当たり→再現性)

悪い例(場当たり)

ログを `grep` で眺めるだけ
メトリクスもトレースも見ない
どの層が原因かが特定できない

良い例(再現性)

メトリクス: レイテンシ上昇と DB 接続待ち増加を確認
ログ: request-id でエラーとクエリ遅延をひも付け
トレース: 外部依存は正常、DB 呼び出しがボトルネック
時刻整合性: アプリと DB の同期状態、共通タイムソース、確認日時を記録
時計ずれ: DB が基準より 2.4 秒進んでいた。原時刻を保全し、分析用タイムラインでは -2.4 秒の補正を併記
記録: 根拠(グラフ/ログ抜粋)を保存

チェックリスト

  • 入口(どの観測を優先するか)が決まっている
  • 正常との差分で見ている
  • 複数ログ源の同期状態、共通タイムソース、時計ずれを確認した
  • 原時刻を保全し、補正した場合は対象、幅・方向、根拠、補正後時刻を記録した
  • 証跡(グラフ/ログ抜粋)が残っている

まとめ

  • 観測の入口(ログ/メトリクス/トレース)を決め、層を切り分ける
  • request-id 等で関連するログをひも付け、点ではなく線で追う
  • 複数ログ源の同期状態と時計ずれを確認し、原時刻と補正を区別して記録する
  • 正常時との差分を前提にし、根拠(グラフ/ログ抜粋)を記録する

次章への接続