オブザーバビリティとは

テクノロジーの世界で発明された新しい流行語のように見えるかもしれませんが、オブザーバビリティの概念は、実際にはほぼ1世紀前にすでに工学制御理論に導入されていました。簡単に言うと、オブザーバビリティとは、外部出力の観察のみによって、システムの内部状態を推測することです。

この概念をソフトウェア開発や最新のITインフラストラクチャに適用すると、高度にオブザーバブル(観察可能)なシステムでは、オペレーターがその正常性の全体像を把握するのに十分な情報が開示されます。システムにオブザーバビリティが適切に実装されていれば、その内部状態を理解するために運用チームが多くの労力を費やす必要がなくなります。

オブザーバビリティはテクノロジーを中心とするものではありません。システムに対して求められるレベルの分析情報を得るための、一連のプロセスと関連ツールを含むプラクティスです。この投稿では、オブザーバビリティに含まれる以下のような主要概念について説明します。

  • オブザーバビリティを構成する主要な要素
  • オブザーバビリティが重要な理由
  • モニタリングとオブザーバビリティの違い
  • オブザーバビリティプラットフォームに何を求めるか

オブザーバビリティの基礎: 主要構成要素

ほとんどのオブザーバビリティツールは、オブザーバビリティの3つの柱であるログ、メトリック、トレースを扱います。一部のツールでは、オブザーバビリティのもう1つの側面であるイベントを処理するためのインターフェースが提供されます。

メトリック

メトリックとは、システム特性に関する、ある期間中の計数値または測定値です。メトリックはその定義から数値であり、集計データを表します。メトリックの例としては、サーバーあたり毎分の平均CPU使用率や、JVMあたり日々エラーを返す要求の数などがあります。メトリックは、インフラストラクチャ、ロードバランサー、さらにはアプリケーションからも収集されます。

ログ

ログは、リクエストがコードベースのどの部分に到達したか、そしてアプリケーションがそのリクエストの処理中に予期しない事象や異常な現象を検知したか、などについて手がかりを残すことを目的としています。アクセスログの場合には、アクセス試行を記録するためにも使用されます。ログは、リクエストに応答するアプリケーションやオペレーティングシステム(syslogやWindowsイベントログなど)によって生成されます。

トレース

トレースはログに似ていますが、オペレーターに実際のコード実行ステップが見えるようにします。たとえばトレースは、特定の要求が終了(またはクラッシュ)する前にどのメソッドやサービスをたどっていたかを示すことができます。その性質上、トレースはすべての要求に対して保存されるわけではなく、サンプリングされる傾向にあります。トレースを取得できるかどうかは、選択したオブザーバビリティプラットフォームやライブラリの機能によって決まります。

メトリックを使用すると、オペレーターはシステムの動作が通常よりも遅くなったときを特定できます。さらにトレースを使用して、システムのどの部分が通常より遅いか、そして対処する必要があるかどうかを判定できます。さらに分析するために、ログでエラーや例外を確認できます。

イベント

以上の3つの柱に加えてイベントを使用すると、システムのオブザーバビリティを高めることができます。たとえば、管理者ユーザーが特権タスクを実行するたびに、システムがオブザーバビリティツールでイベントを登録するように設定できます。イベントは、特定のアクション(関数の実行、データベースレコードの更新、コードによってスローされた例外など)に伴って登録されます。イベントを経時的に分析すると、パターンの特定に役立ちます。また、構造化ログを低レベルのイベントとして使用することもできます。

オブザーバビリティは、最も重要なシステムのビジネス継続性に関して重要です。重要システムには多くの場合、以下の要素が含まれます。

  • アプリケーション
  • コンテナ
  • インフラストラクチャ
  • ネットワーク
  • データソース
  • エッジコンピューティングノード

あるコンポーネントがシステム全体の中で重要であるほど、そのオブザーバビリティに投資することがより重要になります。

オブザーバビリティが必要な理由

オブザーバビリティはそれ自体が目的ではなく、ビジネスに要求される可用性と信頼性を得るためのプラクティスです。その目標は、平均修復時間(MTTR)を短縮し、平均故障間隔(MTBF)を長くすることです。本番環境の問題を迅速にトラブルシューティングし、インシデントになる前に問題を特定して積極的な対策を適用することがオペレーターに可能な場合にのみ、これが実現できます。

運用チームはオブザーバビリティを使用して管理しているシステムの全体像を把握し、SecOpsはオブザーバビリティツールを使用して侵害や悪意のある行為を見つけることができます。

エンジニアリングの観点から見ると、オブザーバビリティにより、開発者は開発サイクルの早い段階でバグを捕捉できるので、ソフトウェアリリースの信頼性が高まります。これにより、ソフトウェアの品質とリリース速度を維持しながら、イノベーションを推進することが可能となります。また、サポートチームも対応能力を備えることになり、これはリアルユーザーモニタリング(RUM)を使用した場合は特にそうですが、チーム間のコラボレーションが向上し、顧客へのサポートが向上します。

顧客にはより良い製品が提供されるだけでなく、より信頼性の高いサービスも提供されます。エンジニアとサポートチームが問題を特定し、積極的な修正を適用できるからです。高いレベルのオブザーバビリティがあれば、以前は存在が知られていなかった「未知の未知数」が確認できるようにもできます。

モニタリングとオブザーバビリティ

よく混乱が生じるのは、オブザーバビリティとモニタリングの相違点です。

モニタリングは、システムのメトリックとログを継続的にチェックして、システムが健全な状態か、手動での介入が必要かを判断する活動です。モニタリングは、個々のコンポーネント(サーバー、ネットワーク、データベースなど)を分離して測定することが中心です。

一方、オブザーバビリティにはより広いスコープがあります。これは、モニタリングのデータも含め、収集したすべてのデータを関連付けて、問題が発生している場所を正確に示すことが必要なためです。言い換えれば、モニタリングでは何か問題があることが分かり、オブザーバビリティではその問題の根源がどこにあるかが分かります。この違いはあるものの、モニタリングとオブザーバビリティは相互に密接に関連しており、どちらもシステムの出力を扱います。

オブザーバビリティプラットフォームの選択

優れたオブザーバビリティプラットフォームは、企業にとっての資産となります。企業としてセキュリティ、信頼性、可用性の目標を達成するために役立ちます。このため、オブザーバビリティプラットフォームの選択は重要です。

現代のITシステムは複雑化しています。そのほとんどは分散型で、たいていはマルチクラウドまたはハイブリッドクラウドであり、高可用性の要件があります。悪意のある攻撃の標的になることも、よく起こります。

このように複雑な分散システムでは、膨大な量の観測可能なデータが生成される可能性があります。優れたオブザーバビリティプラットフォームは、これらすべてのソースからデータを取得し、タイムリーに保存して選別し、そのデータから意味のある表象を作成できることが必要です。さらには信号、すなわち興味のあるイベントをノイズから分離できる必要があります。優れたオブザーバビリティプラットフォームは、データを関連付けてエンリッチ化し、異常や傾向を見つけてオペレーターに示すことができます。

以下のリストを使用すると、オブザーバビリティプラットフォームの適合性を評価できます。簡単に言えば、選択するプラットフォームは以下の能力を備えているものにします。

  • 使用しているシステム全体と各アプリケーションスタックで、ネイティブまたは信頼性の高いプラグインを介して統合する。
  • 自動化された再現可能な方法でのインストール
  • すべてのターゲットコンポーネントからリアルタイムデータをキャプチャし、有意義で費用対効果の高い方法で保存、インデックス化、関連付け
  • 複雑なシステムの全体像をリアルタイムで表示
  • トレーサビリティがあり、どこでどのように問題が発生しているかを正確に示すことができる。これは、重要な情報をノイズから分離することで可能となる。
  • 時系列での傾向と異常レポートの提供
  • アラートまたはレポートに関連するすべてのコンテキストデータの表示
  • 使いやすいインターフェースでユーザーを支援し、さまざまなチーム用にカスタマイズされた集計レポートを作成可能

CrowdStrike Falcon® LogScaleの紹介: 最新のログ管理

Falcon LogScaleは、最新のログ管理ソリューションであり、コスト効率の高い無制限のライセンスプランで、システムのオブザーバビリティの現状のニーズに対応します。リアルタイムのアラートが提供されるので、オブザーバビリティが高まり、ビジネスの継続性が確保できます。

クラウドストライクのFalcon LogScaleで必要なものすべてを記録

詳細