Elastic Common SchemaとOpenTelemetry — ベンダーロックインを避けながら、優れたオブザーバビリティとセキュリティを実現

ecs-otel-announcement-1.jpeg

KubeCon Europeで、Elastic Common Schema(ECS)のOpenTelemetry(OTel)プロジェクトへの供与が承認されたことが発表されました。目標は、OpenTelemetryのセマンティック命名規則(SemConv)をECSと統合して、OpenTelemetryが保守管理する単一のオープンスキーマを実現することです。本FAQでは、ElasticによるElastic Common SchemaのOpenTelemetryへの供与と、それが業界の共通スキーマを推進するためにどのように役立つのか、そしてそれがオブザーバビリティとセキュリティにもたらす影響について詳しくご紹介します。

何が発表されるのですか? 

ElasticはCloud Native Computing Foundation(CNCF)の一員として、オープンソースプロジェクトであるElastic Common Schema(ECS)をOpenTelemetryプロジェクトに供与することで、オブザーバビリティとデータセキュリティ向けの共通スキーマの実現を支援します。共通スキーマは、任意のオブザーバビリティ/セキュリティプラットフォームでデータを正規化して、そのデータの分析、視覚化、関連付けを改善するために役立ちます。OpenTelemetryがECSを採用することによって、OTelユーザーコミュニティは、メトリック、ログ、トレース、リソース(ホスト、コンテナーなど)、セキュリティイベントに対応する、完成度の高い実証済みスキーマを利用できるようになります。 

Elasticユーザーが知っておくべきことは何ですか?

ElasticはECSに対するユーザーの投資を保護します。OpenTelemetryでもECSの進化は継続されるため、業界で最も広く使用されると予想されるセマンティック命名規則のスタンダードを採用する明確な道筋を、ECSユーザーに示すことができるでしょう。

ElasticはOTelコミュニティに参加し、積極的に連携することで、今後適切にECSとOpenTelemetryセマンティック命名規則を統合していきます。統合後の新しいスキーマは進化していくことになりますが、Elasticは現在のECS形式のユーザーデータを引き続きサポートします。Elasticユーザーは現状の(「凍結」された)ECSフォーマットのインジェストおよび使用を継続するか、新しいスキーマに移行するかを選択します。

Elasticは新しいスキーマへの移行を決定したユーザー向けに、簡単に移行するためのガイダンスとツールを提供します。

ElasticがECSをOTelに供与するのはなぜですか?

OpenTelemetryのセマンティック命名規則(SemConv)とElastic Common Schemaの統合によって、リソース、メトリック、ログ、トレース、セキュリティイベント、監査イベントに対応する共通命名スキーマが実現し、それを幅広いコードベース、ライブラリ、プラットフォームで使用できるようになります。ECSとOTelセマンティック命名規則の統合によって、次のメリットが実現します。

  • イベントデータの生成元で幅広く採用できる単一スタンダードを確立しようという取り組みが一本化される
  • 運用時の可視性と根本原因分析が改善される
  • ベンダーとコミュニティではデータ変換作業に対処する必要がなくなり、オブザーバビリティとセキュリティの機能の充実化に専念できるようになる
  • セキュリティとオブザーバビリティを含む、多数のシグナルタイプ間での組織の全体分析が容易になる
  • OpenTelemetryの導入が増え、オブザーバビリティとセキュリティの分野の継続的な進化と統合が進む

組織で共通命名スキーマが必要となるのはなぜですか?

多くの組織は、問題が発生したことの把握(可視性)と、それが発生した原因の把握(根本原因分析)に苦慮しています。この運用上の問題が生じるのは、別々のスキーマでサイロ化、構造化されたデータが原因です。組織は問題の把握や根本原因分析、運用の最適化よりも、不必要なデータ変換に多くの時間を取られています。

運用チームは共通スキーマに従ってデータを構築することで、問題の識別、解決、防止に集中し、平均復旧時間(MTTR)を短縮できるようになります。さらに、重複データが発生しなくなり、データの正規化処理を行う必要がなくなるため、コストも削減できます。 

例を挙げて共通スキーマについて説明してください。

単純な例としては、クライアントの監視用または管理用のテレメトリーである複数のソースからクライアントの1個のIPアドレスが送信される場合です。オブザーバビリティプラットフォームはこの情報を複数の形式で受け取ります。

src:10.42.42.42
client_ip:10.42.42.42 
apache2.access.remote_ip: 10.42.42.42 
context.user.ip:10.42.42.42 
src_ip:10.42.42.42

1個のIPアドレスが複数の方法で表されるため、問題分析が複雑化するだけでなく、IPアドレスの識別も困難になります。オブザーバビリティソリューションに観測データの明確なセマンティックや共通スキーマがなければ、そのデータから相関付け、分析、根本原因分析を自動的に行うことが困難になります。その結果、運用部門(SRE、DevOpsなど)ではこのような複数の定義を把握し、その発見方法を特定した後、手作業でデータを正規化して分析する必要があります。

共通スキーマがあれば、すべての入力データが標準フォーマットで表されます。先の例で言えば、各ソースでクライアントのIPアドレスが同じように識別されます。

source.ip:10.42.42.42

オブザーバビリティとセキュリティのソリューションでは、一貫した方法で定義されたデータスキーマを利用し、データの関連付けと分析を自動化できるようになります。運用部門では不必要なデータ変換に多くの時間を取られることがなくなり、問題の把握や根本原因の特定、運用の効率化に多くの時間を割けるようになります。

Elastic Common Schema(ECS)とは?

Elastic Common Schema(ECS)は、Elasticユーザーコミュニティの支援を受けて開発されたオープンソース(Apache 2.0)仕様であり、Elasticsearchでイベントデータを格納する際に使用される共通フィールドセットを定義します。ECSの目的は、Elasticsearchのユーザーがイベントデータを正規化できるようにすることです。これにより、イベントで表されるデータの分析、視覚化、相関付けを良好に行えるようになります。ECSはElasticのオブザーバビリティソリューションとセキュリティソリューションの基盤であり、広く普及している実績あるスキーマです。2019年の誕生以来、数年にわたり発達してきました。

OpenTelemetryとは何ですか?OpenTelemetryセマンティック命名規則とは何ですか?

OpenTelemetry(OTel)は、仕様、ツール、API、SDKをまとめて提供するオープンソースプロジェクトです。OpenTelemetryを使用して、ソフトウェアのパフォーマンスと挙動の理解に役立つテレメトリーデータ(メトリック、ログ、トレース)の生成、収集、処理、エクスポートを実行できます。これはCNCFエコシステムで2番目に優先されるプロジェクトとなりました。

OpenTelemetryのセマンティック命名規則(SemConv)では、さまざまな種類の運用やデータに対応する共通名が指定されています。OpenTelemetryのSemConvを使用するメリットは、共通の命名スキーマに従うことにあります。この命名スキーマを、OTelのエンドユーザーに対して、コードベース全体、複数のライブラリ、複数のプラットフォームで標準化することができます。もう1つの大きなメリットは、ベンダー固有のセマンティックを切り離せることにあります。つまりデータユーザーはOpenTelemetryのSemConvを使用することで、データのベンダーロックインを解消できます。そのため、データコレクションを適応させなくても、オブザーバビリティソリューションを簡単に乗り換えることができます(ECSの供与により、セキュリティソリューションも乗り換えが容易になります)。

ECSの供与はOpenTelemetryにとってどのような支援となりますか?

OpenTelemetryが最も求めていることは、ログとセキュリティイベントを記述するスキーマの定義を進めることです。既にECSのコントリビューターによって、ログの統一的なセマンティック命名規則のセットが定義されており、広く受け入れられています。これはOTelにも採用できます。ECSは、オブザーバビリティとセキュリティのユースケースで使用されるログを構築する用途に広く使用されています。

この組み合わせによって、ベンダーが作成したログとOTelコンポーネントログ(OTelコレクターログのレシーバーとプロセッサーなど)の統合が進むことになります。その目的は、主要なシステムに対応し、ベンダーに縛られないセマンティック命名規則を定義すること、そしてベンダー作成のコンポーネントまたはオープンソースのコンポーネント(HTTPアクセスログ、ネットワークログ、システムアクセス/認証ログなど)をサポートすることです。これにより、OTel相関付けがこのような新しい信号に拡張されます。ユーザーにとっては、OTel互換のオブザーバビリティおよびセキュリティを備えた製品やサービスに完全に対応した、すぐに活用できるログ統合を使用できるというメリットもあります。 

熟成されたECS Securityの導入は、OpenTelemetryでセキュリティユースケース用に収集されるデータの有効性を大きく高める契機となります。ECSの導入により、OTelプロデューサーはセキュリティイベントを構造化できるようになります。

ECSのライセンスに変更はありますか?

ECSのライセンスに変更はありません。ECSはApache 2.0ライセンスであり、OpenTelemetryも同様です。

Elasticは現時点でOpenTelemetryをサポートしていますか?

ElasticはOTelをネイティブでサポートしています。Elasticユーザーはアプリケーションから直接、またはOTelコレクターを経由してOTelデータをElastic APMに送り、OTel SemConvとECSの両方を処理できます。OTelのネイティブサポートによって、Elastic APMのすべての機能をOTelで使用することができます。OTelの統合について詳しくは、こちらのElasticドキュメントを参照してください

Elastic OTelマイクロサービス