この記事では、オブザーバビリティについて解説していきます。

オブザーバビリティについて理解する (収集・分析・可視化)

Sreake編集部

2022.11.29

クラウド基盤の登場により、自社でサーバーを構築してシステムを運用するオンプレ以外の選択肢が増えてきました。多くの企業では、クラウド基盤を活用してシステム運用の効率化を図っているでしょう。

しかし、システムによってはまだまだオンプレで運用しているケースもあるため、管理対象が増えて異常を検知するための定期的な監視業務を効率的に実施できないと悩む企業も多いでしょう。

本記事では、こうした複雑なシステム基盤を把握する新たな監視の概念「オブザーバビリティ」について詳しく解説します。

オブザーバビリティとはなにか

オブザーバビリティ(Observability)とは「Observe(観察する)」と「Ability(能力)」を組み合わせた単語で、日本語では可観測性と訳します。ITシステムやアプリケーションの動きを監視し、予測できない不具合を正確に対処できる状態を意味します。

オブザーバビリティのニーズが増加した背景としては、大きく2つあります。

1つ目は、DevOpsの登場によって、開発者が運用にも携わるようになった結果、アプリケーション監視のニーズが向上したためです。例えば、DevOps、そしてDevOpsの実践であるSREにおいては、正しい監視による現状のサービスレベルの指標とするメトリクス (SLI) と、目標値 (SLO) の設定に高い重要性が置かれています。

2つ目は、アプリケーション構成がマイクロサービス化してきたことです。マイクロサービスとは、いくつかのモジュールに分割し、組み合わせることで一つのサービスにする構成です。今まではWeb/アプリケーション/データベースの3層に分けて構成することが主流でしたが、マイクロサービス化によってシステム運用後でも全体に影響を及ぼさずにアジャイル開発が可能となりました。監視手法についても、今までは一つのシステムを対象としていればよかったものの、マイクロサービス化されたサービスそれぞれが監視対象となったため、アプリケーションの健全性を確認するのが難しくなってきたのです。

ここで「従来型の監視ツールとオブザーバビリティを備えたツールとの違いにはどのようなものがあるのだろうか?」と気になる方も多いでしょう。

従来型の監視ツールはメトリクスを収集し、閾値を超えた場合の異常を通知するだけであるのに対して、オブザーバビリティを備えたツールは予測が困難な問題の原因や現状についてリアルタイムでの把握が可能となります。リアルタイムで把握することにより、今までと比べて効率的に問題解決ができます。

例えば、あるシステムで障害が発生したとしましょう。従来型のツールでは、システムで障害が発生した旨をそのときのログとともに管理者へ通知します。管理者は、ログを見ながらどこに原因があるのかを切り分けていく必要があるのです。一方で、オブザーバビリティを備えたツールは問題の原因がアプリ側なのか、ネットワークなのか、データベース側なのかを後述の3要素を活用し、判断することができます。

このように、複雑で頻繁に変更が加わるサービスを運用している企業ほど、オブザーバビリティを導入して監視にかかるコストを下げるのが効果的です。

オブザーバビリティを高める3要素:収集・分析・可視化

可観測性を高めシステムの不具合を明らかにする際には、次のアクションが必要になります。

  • 収集
  • 分析
  • 可視化

データの収集

オブザーバビリティでは、監視対象となるシステムから多種多様なデータを収集する必要があります。データはクラウド上に構築した仮想マシンやコンテナ、SaaSで利用しているシステムのデータ、ユーザーが利用する端末のデータなど様々な機器からのデータが対象です。

オブザーバビリティの実現には、あらゆるデータを収集していくのが必須となるため、対象の洗い出しや必要なデータを把握するのが重要です。ただし、全てのデータを収集するのは現実的でない場合があるため、必要なデータを取捨選択することが重要です。

データの分析

続いて、オブザーバビリティは収集したデータの関係性を判断し、意味づけをするデータ分析の機能も必要です。

データ分析では、リアルタイムでシステムから収集されたデータを解析するのが重要で、収集したデータを読み解く上で、サービスを構成する要素の関係性を意識する必要があります。

例えば、先述したマイクロサービス化をしているシステムがあったとします。そのとき、システム内で利用しているモジュールやサーバーの関係性を意味づけしておくことで、正しいデータ分析を可能とするのです。

また、手動での分析が難しいパターンでは、データ収集と活用を繰り返し実施することでAIの活用もできます。

データの可視化

最後に、オブザーバビリティでは分析した結果を可視化して正しい理解と効率的な問題解決を促すことが必要です。

データの可視化により、事前にパターンを検知するプロアクティブ検知、迅速な問題解決が実現できます。さらに、問題解決がスムーズに行われることで、システムの稼働率が高くなり、業務停止による機会損失も防げるでしょう。

ダッシュボードで表示されるデータには、メモリやCPUといったシステム情報だけに限らず、顧客データなどのビジネス情報とシステム情報をリアルタイムで関連付けて表示できます。データの可視化では、対象のシステム障害がビジネスへ与える影響を考慮し、重要度の高いものから優先的に可視化していくのが望ましいです。

テレメトリーデータについて理解する

テレメトリーデータとは、可観測性の概念を実現するために収集する必要のあるデータ要素です。このデータは、ソフトウェアやアプリケーション改善を目的として収集され、サービス開発元に自動で収集されます。自社でサービスを運用する企業にとっては、極めて重要性の高いデータです。

オブザーバビリティを高めるにあたって重要となるテレメトリーデータは以下の3つです。

  • メトリクス
  • ログ
  • トレース

メトリクス

メトリクスとは、一定の期間内で計測されたデータポイントの集計値のことです。計測時点のタイムスタンプ、発生したイベント名や値などの情報が記録されます。

メトリクスは長期間保存に適したデータセットで、システムに関わる計測値の今までの傾向を把握できるのが特徴です。さらに、システムの規模を問わない形式のため、大規模なデータセットの作成やデータ収集によってビジネス上の課題を導き出すのにも効果的です。

ログ

ログは、なんらかのイベントが発生した時点のイベント情報を記載したデータです。

ログの多くはテキスト形式であり、デバッグ用のログやスタックトレースなど多くの性質の情報を記録することができるため、システム障害が発生したときに開発者や運用者が参照しながら課題解決をするときに使われます。
また、構造化させたログを保持することで、イベントの項目と値の可視性が高めることができ、コンテナ名などのログの生成元を特定できるようなラベルをログに対して適切に付与することで問題の切り分けが容易になります。
マイクロサービス化によるシステム構成だとしても、各モジュールごとに発生するログ情報が積み重なっていることが多いため、ログを活用すれば根本原因の解決にもつながります。

トレース

トレースとは、マイクロサービスから収集されたスパン(マイクロサービス単体で発生した処理のデータ)のセットです。

マイクロサービスでは複数のサービスを横断する形で処理が実施されるため、そのときに発生する処理の経路やその処理のパフォーマンス、エラーの内容などの情報を保存する必要があります。これらの情報を蓄積しておくことで、どのマイクロサービスに対して発生した問題なのかを特定可能となります。さらに、リクエストが特定できれば、ログやメトリクスの情報も合わせて参照可能となるため、問題解決も容易になります。

注意すべき点としては、これらのデータを収集していても、それぞれ異なる監視ツールで扱っていると、オブザーバビリティは担保されないという点です。オブザーバビリティを実現するには、ログ、メトリクス、トレースを単一のツールに統合し、横断的に確認できる必要があります。

オブザーバビリティなら弊社にお任せください

今回は、オブザーバビリティの概要を解説しました。オブザーバビリティの導入は、単にツールを入れればOKではなく、経験に裏打ちされた正しい理解やツール導入、設定が必要となります。

しかし、一からオブザーバビリティの導入をするためには、多数の経験や知識が必要なため難しいもの。そこで当社では、お客様のオブザーバビリティ導入支援に力を入れており、実際にお客様からも高く評価を頂いています。

・ロギング・モニタリング・アラートの改善事例(FLUX様)

https://sreake.com/case/flux/ 
これからオブザーバビリティの導入を検討したいとお考えの企業様は、ぜひ当社にお問い合わせください。

ブログ一覧へ戻る

お気軽にお問い合わせください

SREの設計・技術支援から、
SRE運用内で使用する
ツールの導入など、
SRE全般についてご支援しています。

資料請求・お問い合わせ