テックカリキュラム

Observability・監視・可観測性アーキテクチャ

Observability・監視・可観測性アーキテクチャ

本章では、クラウドネイティブ時代におけるObservability(可観測性)の考え方を学習します。

従来の監視ではCPUやメモリ使用率などのメトリクスを確認するだけでしたが、マイクロサービス化が進んだ現在では、それだけでは障害原因を特定することが困難になっています。

Observabilityとは、システム内部の状態を外部から推測・分析できる能力を指し、Metrics・Logs・Tracesの3本柱を中心に構成されます。


1. Observabilityとは

Observability(可観測性)とは、システム内部で何が起きているかを、収集したデータから推測できる能力です。


Application

↓

Metrics
Logs
Traces

↓

分析

↓

障害原因特定

「監視(Monitoring)」は異常を検知する仕組みですが、「Observability」は異常の原因を分析するための考え方です。


2. Monitoringとの違い

MonitoringObservability
異常検知原因分析
アラート中心データ分析中心
既知の障害未知の障害

3. Observabilityの3本柱

  • Metrics(メトリクス)
  • Logs(ログ)
  • Traces(分散トレーシング)

Application

↓

Metrics

↓

Logs

↓

Trace

↓

Dashboard

4. Metricsとは

数値として継続的に収集されるデータです。

代表例

  • CPU使用率
  • Memory使用率
  • Request数
  • Error数
  • Latency
  • Disk I/O
  • Network Traffic

5. Logsとは

アプリケーションやOSが出力するイベント情報です。


2026-01-01 INFO Login Success

2026-01-01 ERROR Database Timeout

2026-01-01 WARN Retry

ログは障害解析の最も基本となる情報です。


6. Tracesとは

1つのリクエストがどのサービスを経由したかを可視化します。


Client

↓

API Gateway

↓

User Service

↓

Order Service

↓

Payment Service

↓

Database

7. Prometheus

Prometheusは時系列データベースを利用した監視システムです。

特徴

  • Pull型監視
  • 時系列DB
  • PromQL
  • Kubernetes対応

8. Exporter

PrometheusはExporterを利用してデータを収集します。


Node Exporter

↓

Prometheus

↓

Grafana

代表例

  • Node Exporter
  • MySQL Exporter
  • Redis Exporter
  • Blackbox Exporter

9. PromQL

PrometheusではPromQLを利用して分析します。


rate(http_requests_total[5m])

sum(node_cpu_seconds_total)

histogram_quantile()

10. Grafana

Grafanaは監視ダッシュボードを構築するためのツールです。


Prometheus

↓

Grafana

↓

Dashboard

CPU・Memory・Network・Applicationなどを可視化できます。


11. AlertManager

Prometheusのアラート管理を担当します。


Metric

↓

Alert

↓

AlertManager

↓

Slack

↓

Email

↓

PagerDuty

12. ELK Stack

ログ分析ではELK Stackがよく利用されます。

  • Elasticsearch
  • Logstash
  • Kibana

13. Fluentd・Fluent Bit

ログ収集エージェントとして利用されます。


Container

↓

Fluent Bit

↓

Elasticsearch

14. OpenTelemetry

Observabilityデータを収集する標準仕様です。

現在では多くのクラウドサービスが対応しています。


15. Jaeger

Jaegerは分散トレーシングツールです。


Application

↓

OpenTelemetry

↓

Jaeger

↓

Trace表示

16. Zipkin

Zipkinも分散トレーシングツールとして利用されます。


17. SLI・SLO・SLA

SLI(Service Level Indicator)

サービス品質を測定する指標です。

SLO(Service Level Objective)

目標値です。

SLA(Service Level Agreement)

顧客との契約値です。


18. Error Budget

SLOから許容できる障害時間を算出します。


SLO

99.9%

↓

Error Budget

0.1%

19. Four Golden Signals

Google SREで提唱された重要指標です。

  • Latency
  • Traffic
  • Errors
  • Saturation

20. RED Method

  • Rate
  • Errors
  • Duration

Web API監視でよく利用されます。


21. USE Method

  • Utilization
  • Saturation
  • Errors

インフラ監視向けの考え方です。


22. Dashboard設計

良いダッシュボードには以下が必要です。

  • リアルタイム性
  • 重要指標の集約
  • 障害原因を追跡できる構成
  • ノイズの少ない表示

23. よくある監視ミス

  • CPUだけ監視する
  • ログを見ない
  • Traceを収集しない
  • アラートが多すぎる
  • 重要指標が分からない
  • ダッシュボードだけ見て安心する

24. ベストプラクティス

  • Metrics・Logs・Traceを統合する
  • SLIを定義する
  • SLOを設定する
  • Error Budgetを管理する
  • 重要アラートのみ通知する
  • ダッシュボードを継続改善する

まとめ

Observabilityは単なる監視ではなく、システム全体を理解するための重要な設計思想です。

Prometheus・Grafana・OpenTelemetry・Jaegerなどを組み合わせることで、マイクロサービス環境でも迅速な障害解析を実現できます。


本章のゴール

  • Observabilityの概念を説明できる
  • Monitoringとの違いを理解する
  • Metrics・Logs・Tracesを使い分けられる
  • Prometheusを理解する
  • Grafanaを利用できる
  • PromQLを理解する
  • OpenTelemetryを理解する
  • JaegerによるTrace解析ができる
  • SLI・SLO・SLAを説明できる
  • SREの監視設計を理解する