Elasticからのagentsの移行
- Beats family - Filebeat、Metricbeat、Packetbeat など - は、いずれも
libbeatライブラリをベースにしています。これらの Beats は、Lumberjack プロトコル経由で Elasticsearch、Kafka、Redis、または Logstash にデータを送信する ことをサポートしています。 Elastic Agentは、ログ、メトリクス、トレース を収集できる統合エージェントです。このエージェントは Elastic Fleet Server を通じて一元管理でき、Elasticsearch、Logstash、Kafka、または Redis への出力をサポートしています。- Elastic は、OpenTelemetry Collector - EDOT のディストリビューションも提供しています。現時点では Fleet Server によってオーケストレーションすることはできませんが、ClickStack への移行を進める場合には、より柔軟でオープンな選択肢になります。
推奨される移行パス
なぜ OpenTelemetry Collector なのか?OpenTelemetry Collector は、オブザーバビリティ データのインジェストにおいて、持続可能でベンダー中立なソリューションを提供します。一部の組織では、数千台、場合によっては数万台規模の Elastic エージェント を運用していることもあると、私たちは認識しています。こうしたユーザーにとっては、既存の エージェント インフラストラクチャとの互換性を維持することが重要になる場合があります。このドキュメントは、その要件をサポートするとともに、チームが段階的に OpenTelemetry ベースの収集へ移行できるよう支援することを目的としています。
ClickHouse OpenTelemetry エンドポイント
beats からの移行
1
Vector をインストールする
公式インストールガイドに従って Vector をインストールします。Elastic Stack OTel collector と同じインスタンスにインストールできます。Vector を本番環境に移行する際は、アーキテクチャとセキュリティに関するベストプラクティスに従ってください。2
vectorの設定
VectorをLumberjackプロトコル経由でイベントを受信するように設定し、Logstashインスタンスとして動作させます。これは、Vector用にlogstash ログソースを設定することで実現できます。TLS の設定相互 TLS が必要な場合は、Elastic のガイド”Logstash 出力向けに SSL/TLS を設定する”に従って、証明書と秘密鍵を生成してください。生成した証明書と秘密鍵は、その後、上記のように設定で指定できます。
beatsソースからイベントを受信する点に注意してください。リマップスクリプトを以下に示します。このスクリプトはログイベントのみで検証済みですが、他のフォーマットへの対応の基礎としても活用できます。VRL - ECS から OTel への移行
VRL - ECS から OTel への移行
remap_filebeatトランスフォームからのイベントを入力として受け取ります。YOUR_INGESTION_API_KEY は ClickStack によって生成されます。このキーは ClickStack の UI (HyperDX) の Team Settings → API Keys から確認できます。最終的な完全なconfigurationを以下に示します:3
Filebeat を設定する
既存の Filebeat インストールでは、イベントの送信先が Vector になるよう設定を変更するだけで済みます。そのためには Logstash 出力を設定する必要があります。ここでも、必要に応じて TLS を設定できます。Elastic Agent からの移行
- エージェント を設定し、Lumberjack プロトコル経由で Vector エンドポイントに送信します。現時点では、この方法は Elastic Agent のみを使用してログデータを収集しているユーザーについてのみテストされています。 これは Kibana の Fleet UI から一元的に設定できます。
- エージェント を Elastic OpenTelemetry Collector (EDOT) として実行します。Elastic Agent には EDOT Collector が組み込まれており、アプリケーションとインフラストラクチャを一度インストルメントするだけで、複数のベンダーやバックエンドにデータを送信できます。この構成では、EDOT collector がイベントを OTLP 経由で ClickStack OTel collector に転送するように設定するだけです。この方法はすべてのイベントタイプをサポートします。
Vector 経由でデータを送信する
2
Elastic Agent を設定する
Elastic Agent は、Logstash プロトコルの Lumberjack 経由でデータを送信するよう設定する必要があります。これはサポートされているデプロイパターンであり、一元的に設定することも、Fleet を使用せずにデプロイする場合は エージェント の設定ファイルelastic-agent.yaml を使って設定することもできます。Kibana から一元的に設定するには、Fleet に Output を追加します。この Output は、エージェント policy で使用できます。これにより、そのポリシーを使用するすべての エージェント は自動的に Vector にデータを送信するようになります。これには TLS による安全な通信の設定が必要なため、Vector インスタンスを Logstash の役割を担うものとして、ガイド「Configure SSL/TLS for the Logstash output」に従うことを推奨します。また、Vector の Logstash ソース側でも相互 TLS を設定する必要がある点に注意してください。入力を適切に設定するため、このガイドで生成した秘密鍵と証明書を使用してください。Elastic Agent を OpenTelemetry collector として実行する
Agent のインテグレーションとオーケストレーションElastic Agent に同梱されている EDOT collector を実行しているユーザーは、エージェント が提供する既存のインテグレーションを利用できません。さらに、この collector は Fleet による一元管理に対応していないため、ユーザーは エージェント を standalone モードで実行し、設定を自分で管理する必要があります。
exporters を削除して OTLP 出力を設定し、ClickStack OpenTelemetry collector にデータを送信します。たとえば、exporters の設定は次のようになります。
Managed ClickStackデフォルトでは、Managed ClickStack 向けに OpenTelemetry Collector をスタンドアロンで実行する場合、API ingestion key は必要ありません。ただし、OTLP auth token を指定することでインジェストを保護できます。詳しくは、“collector を保護する”を参照してください。
YOUR_INGESTION_API_KEY は ClickStack で生成されるものです。キーは ClickStack の UI の Team Settings → API Keys で確認できます。
Vector が相互 TLS を使用するように設定されており、証明書と秘密鍵がガイド “Logstash 出力用に SSL/TLS を設定する” の手順で生成されている場合は、otlp エクスポーターもそれに合わせて設定する必要があります。たとえば次のようになります。