CLOUD & OPERATIONS

オブザーバビリティとは。監視と何が違うのか

オブザーバビリティとは、システムが外に出すデータから、中で何が起きているかを問いかけて理解できる性質です。監視との違い、ログ・メトリクス・トレースの3つのデータ、まず見る4つの指標、OpenTelemetry、中小企業の始め方を説明します。

クラウドと運用(CLOUD & OPERATIONS)のコラム

この記事の要点

  • 監視は、あらかじめ決めた項目を見張り、異常を知らせる仕組みです。オブザーバビリティは、予想していなかった問題についても「なぜ起きているのか」を調べられる状態を指します。
  • 手がかりになるデータは、ログ・メトリクス・トレースの3つです。ばらばらに残すより、つなげて見られるほうが原因に近づきやすくなります。
  • まずは監視の基本を整え、システムが複数のサービスに分かれてきたら、処理の流れを追うトレースを足していくのが現実的です。

オブザーバビリティ(可観測性)とは、システムが外に出すデータを使って、システムの中で何が起きているのかを、外から問いかけて理解できる性質のことです。監視が「決めておいた異常に気づく」ための仕組みだとすると、オブザーバビリティは「予想していなかった問題の原因を調べられる」ための備えといえます。監視をやめて置き換えるものではなく、監視の上に重ねて考えるものです。

オブザーバビリティとは

オブザーバビリティの考え方は、オープンソースの OpenTelemetry のプロジェクトの解説が分かりやすくまとめています。それによると、オブザーバビリティは、システムについて問いを立てることで、システムを外から理解できるようにするものです。そして、予想していなかった問題(未知の未知)に対処し、「なぜこれが起きているのか」に答える助けになる、と説明されています。

出典:Observability primer(OpenTelemetry)

用語としてのオブザーバビリティは、用語集でも説明しています。

監視と何が違うのか

監視は、CPU の使用率やサイトの応答のように、見るべき項目と、異常とみなす基準をあらかじめ決めておき、外れたら知らせる仕組みです。起こり得る問題を事前に想定できる場合に強い方法です。

一方、クラウドのシステムは、複数のサービスや外部の API がつながって動くことが増えています。そうした構成では、「どの画面も止まっていないのに、一部のお客様だけ処理が遅い」のように、事前に想定していなかった形の問題が起きます。決めた項目だけを見張っていると、異常には気づけても、原因をたどる手がかりが足りないことがあります。

観点監視オブザーバビリティ
主な目的決めておいた異常に気づき、知らせる予想していなかった問題の原因を調べる
答える問い「いま、異常は起きているか」「なぜ、これが起きているのか」
準備するもの見る項目と、知らせる基準後から問いを立てられるだけのデータと、それをつなげて見る道具

表は考え方の違いを整理したもので、実際の運用では両方を組み合わせます。異常に気づくのは監視、気づいた後に原因を探すのがオブザーバビリティ、という役割の分け方です。

手がかりになる3つのデータ

オブザーバビリティの手がかりになるのは、システムが出すデータ(テレメトリ)です。OpenTelemetry の解説は、テレメトリを、システムとその振る舞いから出されるデータとし、主な形としてトレース・メトリクス・ログの3つを挙げています。

  • ログ:サービスなどが出す、時刻の付いたメッセージ
  • メトリクス:基盤やアプリの数値のデータを、一定の期間で集計したもの(エラーの割合、CPU の使用率、リクエストの数など)
  • トレース:1つのリクエストが、複数のサービスをどう通っていったかを追う記録。処理の1つ1つの単位を「スパン」と呼ぶ

同じ解説は、ログは単独では、どこから呼ばれた処理なのかといった文脈が足りないことが多く、スパンやトレースと結び付けると役に立ちやすくなる、としています。

出典:Observability primer(OpenTelemetry)

ログの残し方や保存の期間は、ログの取り方と見方。何を、どのくらい残すかで説明しています。

まず何を見るか

何から見ればよいか迷う場合は、Google の SRE の書籍が示す「4つの黄金の指標」が出発点になります。

  • レイテンシ:リクエストを処理するのにかかる時間
  • トラフィック:システムにかかっている需要の量
  • エラー:失敗したリクエストの割合
  • 飽和度:サービスがどのくらい「いっぱい」か

同じ書籍は、利用者から見える振る舞いを外から確かめる監視(ブラックボックス監視)と、システムの内部が出す数値にもとづく監視(ホワイトボックス監視)を分けています。外から見る監視は、いま起きている問題に気づくのに向き、内部の数値は、これから起きそうな問題や、再試行で隠れている失敗に気づくのに向くとされています。

出典:Monitoring Distributed Systems(Google SRE)

監視の項目の決め方は、クラウドの監視は何を見るのか。死活・リソース・アプリでくわしく説明しています。

データの集め方をそろえる(OpenTelemetry)

OpenTelemetry は、テレメトリを集めて送るための、オープンソースの仕組みと道具です。特定の製品やサービスに依存しない作りで、さまざまな保存・分析のサービスと組み合わせて使えると説明されています。一方で、OpenTelemetry 自体はデータを保存して見せるサービスではなく、保存や画面での表示は別の道具が担います。

出典:What is OpenTelemetry?(OpenTelemetry)

データの集め方を特定のクラウドの機能だけに寄せず、共通の形で集めておくと、分析の道具を替えるときや、複数のクラウドを使うときに、作り直す範囲を小さくできます。

中小企業はどこから始めるか

多くの会社では、オブザーバビリティの前に、監視の基本が整っていないことがあります。順番としては、次のように進めるのが現実的です。

  1. サイトや業務のシステムが止まっていないかを、外から確かめる監視を置く
  2. サーバーやデータベースの数値(CPU・メモリ・ディスク・接続の数など)と、アプリのエラーの数を集める
  3. ログを1か所に集め、時刻をそろえて、障害のときに検索できるようにする
  4. システムが複数のサービスに分かれてきたら、トレースを足し、ログ・メトリクスと結び付けて見られるようにする

データを集めるほど、保存の費用は増えます。何のために集めるのかを決め、残す期間と細かさを、費用とつり合う範囲にします。

当社のご支援

アメリア・テクノロジーのクラウドの構築と運用管理では、監視の項目と知らせる基準の設計、ログの集め方、トレースを足すかどうかの判断と設定をご支援しています。監視の仕組みは24時間自動で回し、原因の調査と再発の防止は当社の担当者が営業時間内に行います。いまの監視の状況は、無料のクラウドの自己診断でもおおまかに確かめられます。

  • クラウド
  • 監視
  • オブザーバビリティ
  • ログ

この記事に出てくる用語

この記事を書いた人

石田 誠 グループCTO

インターネットの黎明期から、ホスティング事業の立ち上げや、インフラ・セキュリティのプロジェクトに携わってきました。現在は、AWS・Azure へのクラウド移行の支援と、業務アプリケーションの要件定義から実装までを担っています。

このコラムは一般的な情報の提供を目的としたもので、個別の状況への助言ではありません。製品・サービスの名前と内容は、記事の更新日の時点のものです。

あわせて読みたい

クラウドと運用のコラムを見る コラムの一覧に戻る

無料で相談する無料の診断