Elasticsearchにデータを追加する

Elasticsearchにデータを取り込む方法はいくつかあります。選択するオプションは、タイムスタンプ付きデータを扱っているか、タイムスタンプなしデータを扱っているか、データの出所、複雑さなどによって異なります。

Kibanaを使用して、サンプルデータをElasticsearchクラスターにロードし、すぐに始めることができます。

一般的なコンテンツ

一般的なコンテンツは、タイムスタンプを持たないデータです。これは、ベクトル埋め込み、ウェブサイトのコンテンツ、製品カタログなどのデータを含む可能性があります。一般的なコンテンツの場合、Elasticsearchインデックスにデータを追加するためのオプションは次のとおりです:

  • API:ElasticsearchのドキュメントAPIを使用して、Dev ToolsのコンソールやcURLを使用してドキュメントを直接インデックスします。
    ウェブサイトやアプリを構築している場合は、選択したプログラミング言語でElasticsearchクライアントを使用してElasticsearch APIを呼び出すことができます。Pythonクライアントを使用する場合は、さまざまなサンプルノートブックのためにelasticsearch-labsリポジトリをチェックしてください。
  • ファイルアップロード:Kibanaファイルアップローダーを使用して、単一のファイルをインデックスし、一回限りのテストと探索を行います。GUIはインデックスとフィールドマッピングの設定をガイドします。
  • ウェブクローラー:ウェブページのコンテンツを抽出してElasticsearchドキュメントにインデックスします。
  • コネクタ:さまざまなサードパーティデータソースからデータを同期して、Elasticsearchに検索可能な読み取り専用のレプリカを作成します。

タイムスタンプ付きデータ

Elasticsearchのタイムスタンプ付きデータは、タイムスタンプフィールドを含むデータセットを指します。Elastic Common Schema (ECS)を使用する場合、このフィールドは@timestampと呼ばれます。これは、ログ、メトリクス、トレースなどのデータを含む可能性があります。

タイムスタンプ付きデータの場合、Elasticsearchデータストリームにデータを追加するためのオプションは次のとおりです:

  • Elastic AgentとFleet:タイムスタンプ付きデータをインデックスするための推奨方法です。各Elastic Agentベースの統合には、デフォルトの取り込みルール、ダッシュボード、視覚化が含まれており、すぐにデータを分析し始めることができます。KibanaのFleet UIを使用して、Elastic Agentsとそのポリシーを中央管理できます。
  • Beats:データソースがElastic Agentによってサポートされていない場合は、Beatsを使用してデータを収集し、Elasticsearchに送信します。収集するデータの種類ごとに別々のBeatをインストールします。
  • Logstash:Logstashは、リアルタイムのパイプライン機能を持つオープンソースのデータ収集エンジンで、さまざまなデータソースをサポートしています。このオプションを使用する理由は、Elastic AgentやBeatsがデータソースをサポートしていないためです。また、Logstashを使用して受信データを永続化したり、データを複数の宛先に送信する必要がある場合にも使用できます。
  • 言語クライアント:リンクされたチュートリアルでは、アプリケーションからデータを取り込むためにElasticsearchプログラミング言語クライアントを使用する方法を示しています。これらの例では、ElasticsearchはElastic Cloud上で実行されていますが、同じ原則が任意のElasticsearchデプロイメントに適用されます。

タイムスタンプ付きデータのデータ取り込みパイプラインに興味がある場合は、Elastic Cloudドキュメントの意思決定ツリーを使用してオプションを理解してください。