オブザーバビリティとは?その意味や注目される理由、おすすめツールを紹介
迅速かつ柔軟性をもったアプリケーション開発を行うために「クラウドネイティブ」が注目されています。このクラウドネイティブなシステムのおける最も重要な課題のひとつが、複雑なシステムの運用管理であり、この課題解決には、「オブザーバビリティ」が重要な役割を果たします。オブザーバビリティとは、一言で言うと、システムを「いつ、何が、どこで起こっているのかを観測可能に保つ」ことです。
Cloud Native Computing Foundation(CNCF)のTAG(Technical Advisory Group)であるObservability TAG が、2021年に公開した「Observability Whitepaper」を基に、オブザーバビリティについて解説します。
オブザーバビリティとは
オブザーバビリティ(Observability)とは、Observe (観察する)とAbility(能力)とを組み合わせた言葉で、「可観測性」と翻訳されています。オブザーバビリティの概念を最初に提唱したのは、1960年に「On the general theory of control systems」を発表した、「カルマンフィルター」で知られるルドルフ・カルマン(Rudolf E. Kálmán)氏だとされています。カルマンフィルターは、測定データからシステムの状態を推定するアルゴリズムで、NASAのアポロ計画で使われたことで有名です。アポロ計画では、センサーの情報から宇宙船の正しい位置を推定し、進行方向の調整などを行う際に使用されました。このように、「システム内部の状態を外部出力の情報から推測し、調整する制御理論」としてオブザーバビリティの概念が用いられました。
オブザーバビリティ(可観測性)とは、観察する能力のことであり、「システム内部の状態を外部出力の情報から推測できる度合いを示す指標」です。つまり、外部出力の情報から、内部の状態を推測できる度合いが高ければ高いほど、オブザーバビリティ(可観測性)が高いシステムと言うことができます。
オブザーバビリティが注目される背景
市場変化に対応するため、システムの開発にはスピードや目まぐるしい環境変化に即応するために欠かせない、経営や組織運営の機敏性が求められています。クラウドネイティブなシステムが必要とされ、クラウド コンピューティング、マイクロサービス、分散化システムの採用が増加しています。これらの運用管理は、従来の監視手法では対応しきれないため、より高度な新たな運用管理の概念である、オブザーバビリティが求められるようになりました。
進化するオブザーバビリティに求められる要素
オブザーバビリティをどのように実現していくかを考える上で重要なのが「何を観測すべきか」という点です。Observability Whitepaperではシステムが生成する出力を「シグナル」と定義しています。このシグナルを観測することで、外部から「システムがどうなっているか」を推測できます。
シグナルはシステムが生成する出力であり、その出力を基に推測することができます。シグナルは、システムや目的により異なります。シグナルは、重複する可能性もありますが、それぞれのシグナルが、システムの特定の側面に特化しています。これらの異なるシグナルをすべて使用し、観察するためのさまざまな方法を提供します。
オブザーバビリティのシグナルとして広く認識されているのが、「メトリクス」「ログ」「トレース」の3本柱です。Observability Whitepaperには下記のような図で表現されています。
Observability Whitepaperでは、メトリクス、ログ、トレースを、「3 本の柱」ではなく「主要なシグナル」と考えています。なぜ、「柱」ではなく、「主要な」と捉える必要があるのか。それは、 柱は、その1 つが欠けると、その概念自体が成り立たないといった意味合いがあるからです。シグナルは、そういった性質のものではなく、1つのシグナルを使用することにより、可観測性の目標を達成するといったことも可能です。もうひとつは、オープンソース コミュニティにおいて、アプリケーション プロファイルやクラッシュ ダンプなど、より多くのシグナルが普及してきています。現在のシグナルが、すべてのニーズを満たしているわけではなく、今後も、新たなシグナルが発生する可能性があります。そのため、これら3つのシグナルを「柱」としてではなく、「主要な」シグナルと捉える必要があると考えています。
その主要な3つのシグナルについての概要を説明します。
メトリクス
メトリクスは、「何が」起こっているのか、場合によっては「なぜ」起こっているのかについて大きな役割を果たします。メトリクスは、根本原因を明らかにするわけではなく、問題の方向性を特定するために必要な概要と、根本原因への出発点を提供します。メトリクスによって提供される情報は、システムの全体的な動作と健全性に関する洞察を形成するために使用されます。
メトリクスの最も一般的な使用例は、ビジュアルなダッシュボードにより、人に対して、システムの概要を把握することを手助けするとともに、監視対象システムが「しきい値を超えた」「異常な動作をしている」といった状況になれば、それのアラートを通知します。長期的には、傾向の分析や計画目的にも使用することができます。インシデント発生後の根本的な問題を修正したり、監視して再発を防止する上でも、重要な情報を提供します。
ログ
ログは、アプリケーション ログ、セキュリティ ログ、システム ログ、監査ログ、インフラストラクチャ ログなどのカテゴリに分類することができます。
・アプリケーション ログ
アプリケーション内でイベントが発生すると作成されます。これらのログは、開発者が開発中およびリリース後にアプリケーションがどのように動作するかを理解し、測定するのに役立ちます。
・セキュリティ ログ
システム上で発生したセキュリティ イベントに応じて作成されます。これには、ログインの失敗、パスワードの変更、認証要求の失敗、リソース アクセス、ファイル、デバイス、ユーザーなどのリソースの変更、その他の管理上の変更など、さまざまなイベントが含まれます。
・システム ログ
物理デバイスと論理デバイス、ブート シーケンス、ユーザーまたはアプリケーションの認証、および障害やステータス メッセージを含むその他のアクティビティを扱うカーネル レベルのメッセージなど、オペレーティング システム自体内で発生するイベントが記録されます。
・監査ログ
監査証跡とも呼ばれるもので、イベントと変更の記録です。誰がアクティビティを実行し、どのアクティビティが実行されたか、システムがどのように応答したかなどを記録することによって、イベントの変更を記録します。
・インフラストラクチャ ログ
インフラストラクチャを管理するもので、IT 基盤に影響を与える物理的および論理的機器の管理するために必要な情報が含まれています。
ログは、メトリクス、トレース、セキュリティ、デバッグなど、さまざまな場面で重要な役割を果たします。アプリケーションおよびシステム関連のすべてのイベントを記録しておくことにより、特定の状況につながる段階的なアクションを理解し、再現することが可能になります。つまり、根本原因の把握や、分析に非常に有効で、障害発生時のアプリケーションまたはシステムの状態を理解するための情報を得ることができます。
トレース
トレースは、エンドユーザーによって開始されたリクエストと、その結果としてアクセスされたすべてのダウンストリーム(サーバ側からクライアント側へ向かうデータの流れ)のほか、マイクロサービス全体にわたるそのリクエストなど、分散トランザクション中に何が起こったかを理解するための記録です。トレーにより、サービス、キュー、データベースなど、分散システムのさまざまなアクター間の因果関係を明らかにすることが可能になります。
オブザーバビリティと監視の違い
監視は文字通り、システムの監視です。監視ツールを使ってシステムの負荷状態、稼働状況などのデータを収集し、分析します。これにより、正常に稼働していることや、あるいは、異常が発生していれば、異常な状態にあることを把握することができます。具体的には、ログ、ハードウェア、死活、トラフィック、アプリケーション、ジョブ、パフォーマンスなどの各種監視を行うことにより、幅広くシステムの状態を監視することができます。
それに対して、オブザーバビリティは、監視により得られた情報を基に、システムとしての健全性を包括的に把握することができます。問題が生じたい際にも、監視では「何が起きたのか」はわかりますが、「なぜ起きたのか」まではわかりません。オブザーバビリティは、この監視ではわからない「なぜ起きたのか」を把握することができます。つまり、根本原因を把握することにより、対処が必要な箇所を特定したりすることができます。
オブザーバビリティの用途
オブザーバビリティのメリットとしては、以下の4つをあげることができます。
1.DevOpsによるシステムの開発・運用が可能
DevOpsを実現するためには、複雑化するシステムの動的な変化や全体の状況を常に把握しておく必要がありますが、従来型の監視ツールによる運用では、それに対応することができません。オブザーバビリティでは、システムデータを収集・分析することにより、DevOpsにおいて、システムの開発者あるいは運用は、以下のメリットを享受します。
・可視性の向上
分散システムが拡大するほど、システム全体の状況の把握が困難になりますが、そのような大規模システムにおいても、オブザーバビリティにより、システムのリアルタイムな可視化を実現できます。稼働中のサービスや、パフォーマンス、デプロイ前のシステム状態、など状態をくまなく把握することができます。
・アラート対応の向上
オブザーバビリティは、リアルタイムに問題を発見し、迅速な解決へと導きます。システムを詳細まで可視化することができるため、すばやく変更箇所を特定し、問題を解消することができます。システム変更時に悪影響が生じた場合にも、同様に、問題箇所を特定し対処することができます。
・システムの開発・運用プロセスの効率化
システム全体のデータの流れを追跡することができ、問題に関する情報をつぶさに確認できるため、調査の工程だけではなく、修復およびデプロイまでのプロセスを効率化し、開発・運用のパフォーマンスが向上します。
・情報収集の効率化
オブザーバビリティにより、リアルタイムの情報もちろんのこと、デプロイ以前のシステムの状態をも把握することができます。監視ツールによる情報収集に比べて、運用に必要な情報の収集効率が格段に向上します。
・開発の効率化
監視と、監視をトリガとして問題対処に関する一連の作業が効率的に行えるようになることによって、開発者への負担を軽減することができるため、迅速に開発を進めることができるようになります。アフターフォローに要していた時間を削減し、顧客ニーズに応えるための検討にその時間を充てることができるようになります。
2.分散化システムを可視化できる
・パフォーマンスや可用性の把握が可能
コンテナやマイクロサービスなどの分散化システムのオブザーバビリティ(可観測性)を高めることにより、システムの状態を可視化することができ、運用性が向上します。
コンテナやマイクロサービスはスケーラビリティが、その特徴のひとつで、柔軟なシステム拡張が可能です。それは、大きなメリットですが、その拡張に比例して、実行されているサービスの数もまた増加するため、それだけ全体を把握することが難しくなります。そのようなシステムの状況に対しても、オブザーバビリティを高めることにより、可視化でき、パフォーマンスや可用性を把握し、こうした課題にも対応できます。
3.クラウドサービスの円滑な運用、活用の実現
・問題解決の迅速化
従来型の監視システムだけで、クラウドサービスを運用するには、その規模の拡大とともに、やがて限界が訪れます。オブザーバビリティは、こうした課題をも解消します。可観測性が高まれば、必要なデータや関連する情報を取得できるようになります。迅速に問題解決でき、クラウドサービスの円滑な運用、活用を実現します。
4.コスト削減効果が期待できる
・運用性の向上
現在、IT環境全体の一部分だけをモニタリングできる監視ツールを導入し、使用しているとしたら、担当者はツールを個別に確認して情報収集し、監視することになります。それには時間とエネルギーが必要です。監視ツールをオブザーバビリティプラットフォームに統合し、置き換えることができれば運用性が向上し、コスト削減にもつながることでしょう。
おすすめのオブザーバビリティツール
オブザーバビリティを高める方法としては、IBM Instana Observability の導入がおすすめです。IBM Instana Observabilityには、次の特徴があります。
フルスタックの可観測性
ホストごとに単一の軽量エージェントがすべてのコンポーネントを検出し、アプリケーションのパフォーマンス、マイクロサービス、Kubernetes、データベース、API、サーバーレス、コンテナをリアルタイムに継続的に監視します。それを、ダッシュボードと視覚化的なツールによって、実用的な洞察を可能とし、システム運用上必要な行動につなげることができます。
自動化とインテリジェンス
あらゆるサービスを自動的に検出してマッピングし、可観測性のメトリックを取り込み、要求を一つ一つ追跡し、すべてのプロセスのプロファイルを作成し、アプリケーションの依存関係を残らずマッピングします。しきい値に基づくスマート・アラート、イベント、問題、サービス・インシデントの自動検出と関連付け、各インシデントに対し想定しうる根本原因の自動特定で、平均解決時間(MTTR)を大幅に短縮します。
効率的な問題解決支援
モバイル・アプリケーションとエンド・ユーザーの監視は、ユーザーの行動を包括的に理解し、フロントエンドの問題を迅速に解決するための統合データ・ソースを提供します。合理化されたアプローチで、問題のトラブルシューティングを最大限に効率化できます。
300以上のテクノロジーに対応
ネットワーク監視ツールやログ管理ツールをはじめとするその他の監視ツールと連携し、プラグインやアプリケーションの再起動を必要とせずに、ITインフラストラクチャー全体にわたるアプリケーション・パフォーマンスを包括的に可視化します。
まとめ
オブザーバビリティ(可観測性)とは、「システム内部の状態を外部出力の情報から推測できる度合いを示す指標」です。
クラウド コンピューティング、マイクロサービス、分散化システムが進み、従来の監視手法では対応しきれなくなり、オブザーバビリティが求められるようになりました。
オブザーバビリティは、主要な3つのシグナル「メトリクス」「ログ」「トレース」などによりシステムの状況を観察するためのさまざまな方法を提供し、健全性やパフォーマンスなど、システムの状態を包括的に把握します。
オブザーバビリティにより、DevOpsの原則に沿った開発・運用体系を実現でき、コンテナ、マイクロサービスで分散したシステムを可視化し、クラウドサービスを円滑に運用・活用できます。
分散システムの可視化するためには、オブザーバビリティを高める必要があり、フルスタックの可観測性を実現するIBM Instana Observabilityにはそのために必要な機能がすべて備わっています。
IBM Instana Observabilityについて、詳しく知りたい方は下記リンクよりお気軽にお問い合わせください。
https://www.synnex.co.jp/inquiry
[筆者プロフィール]
峯 英一郎
ITコンサルタント。 大手SIer(約18年勤務)を経て、ソフトウェア会社の経営に従事。お客さまの価値最大化につながる新しい受託開発のあるべき姿を追求し続けている。