このページは機械翻訳によるものです。内容の正確さは保証しておりません。 人力翻訳を依頼する

Simple Log ServiceとElasticsearchの互換性

更新日時2024-10-31 08:52

このトピックでは、Simple Log ServiceとElasticsearchの互換性について説明します。 このトピックでは、Simple Log Serviceと互換性のあるElasticsearch API操作とElasticsearchドメイン固有言語 (DSL) についても説明します。

重要

このトピックはAlibaba Cloud独自の情報であり、Alibaba Cloudがサードパーティサービスとやり取りするために提供する機能について説明します。 したがって、このトピックでは、サードパーティの企業およびサービスの名前を参照できます。

互換性

Elasticsearchは、Apache Luceneに基づいて構築されたオープンソースの分散検索および分析エンジンです。 Elasticsearchは、データ処理と分析によく使用されます。 ログエンジンをElasticsearchからSimple log Serviceに切り替える場合、使用習慣や上流および下流のプログラムを変更する必要がある場合があります。 これらの問題を解決するために、Log ServiceはElasticsearchと互換性のあるAPIを提供し、Elasticsearchのクエリと分析ソリューションのスムーズな移行を保証し、Simple Log Serviceの使用の難しさを軽減します。

Simple Log ServiceのElasticsearch互換APIは、Elasticsearch DSLクエリ構文を、Simple Log Serviceのインデックスベースのクエリ構文とSQL分析構文に変換します。 その後、Simple Log Serviceは、Elasticsearchの要件を満たす形式でクエリと分析の結果を返します。 このようにして、Elasticsearchクエリプロトコルを実装できます。

説明
  • Simple Log ServiceのElasticsearch互換APIは、Elasticsearch 7.10のAPI仕様に基づいて実装されています。

  • 標準ログストアを使用し、少なくとも1つのフィールドインデックスを作成する場合にのみ、Elasticsearch互換API操作を呼び出すことができます。

image

Elasticsearchと互換性のあるAPIエンドポイント

Elasticsearch互換APIのエンドポイントは、https://${project}.${sls-endpoint}/es/ 形式です。 例: https://etl-guangzhou.cn-guangzhou.log.aliyuncs.com/es/${project} はプロジェクトの名前を指定します。 ${sls-endpoint} は、プロジェクトのエンドポイントを指定します。 詳細については、「エンドポイント」をご参照ください。

サポートされているElasticsearch互換のAPI操作

次の表に、Simple Log ServiceのElasticsearch互換APIと互換性のあるElasticsearch APIの操作を示します。

リクエスト方法

APIパス

説明

リクエスト方法

APIパス

説明

Post

/${index}/_search

指定されたインデックスを照会します。 indexフィールドは、Simple Log ServiceプロジェクトとLogstoreを指定します。 形式: ${project}.${logstore}

Post

/${index}/_async_search

一度に複数のリソースを照会します。

Post

/_msearch

一度に複数のリソースを照会します。

Post

/${index}/_bulk

指定したインデックスにデータを書き込みます。

重要

_bulk操作はデータ書き込みのみをサポートし、データ更新はサポートしません。

Get

/${index}/_mapping

指定されたインデックスのマッピングを照会します。

サポートされているElasticsearch DSL

次の表では、Simple Log ServiceのElasticsearch互換APIと互換性のあるElasticsearch DSLについて説明します。

クエリ関連のDSL
アグリゲーション関連のDSL

DSL

説明

bool

ブール演算を実行します。

match_all

すべてのログと一致します。

match

インデックスと一致します。

match_phrase

フレーズと一致します。

クエリを実行すると、演算子はSimple Log ServiceのSQL LIKE句に変換されます。 クエリ結果のフィールドは、フィールドインデックスで設定されます。

multi_match

複数のフィールドに一致します。

prefix

プレフィックスを照会します。

range

範囲を照会します。

term

用語を照会します。

クエリを実行すると、演算子はSimple Log Serviceのインデックスベースのクエリ構文に変換されます。

terms

複数の用語を照会します。

クエリを実行すると、演算子はSimple Log Serviceのインデックスベースのクエリ構文に変換されます。

wildcard

ワイルドカードパターンと一致します。

クエリを実行すると、演算子はSimple Log ServiceのSQL分析構文に変換されます。

regexp

正規表現と一致します。

クエリを実行すると、演算子はSimple Log ServiceのSQL regexp_like関数に変換されます。 クエリ結果のフィールドは、フィールドインデックスで設定されます。

exists

値が存在するかどうかをチェックします。

ids

IDフィールドを照会します。

カテゴリ

DSL

説明

グループ別の統計分析

Date histogram

@ timestampフィールドに基づいて統計を分析します。

Histogram

特定の値間隔に基づいて統計を分析します。

Range

値の範囲に基づいて統計を分析します。

Terms

フィールドの一意の値に基づいて統計を分析します。

Filter

単一のフィルター条件に基づいて統計を分析します。

Filters

複数のフィルター条件に基づいて統計を分析します。

メトリックベースの統計分析

Min

最小値を計算します。

Max

最大値を計算します。

Avg

平均値を計算します。

Sum

合計値を計算します。

Count

数量を計算します。

Cardinality

一意の値の総数を計算します。

Percentiles

値のパーセンタイルを計算します。

ログを返す

Top hits

集計されたログを返します。

Elasticsearch互換APIと標準のElasticsearch APIの違い

  • Simple Log ServiceのElasticsearch互換APIは、データ更新をサポートしていません。

  • Simple Log ServiceのElasticsearch互換APIは、スクリプトを含むクエリステートメントをサポートしていません。

  • Simple Log Service Logstoreを使用すると、ペタバイト単位のデータを照会できます。 Simple Log ServiceのElasticsearch互換APIを使用する場合、Elasticsearchはインデックスのロールオーバーを実行する必要はありません。

  • Simple Log Serviceは自動的にインデックスを作成しません。 API操作を呼び出すか、Simple Log Serviceコンソールを使用してインデックスを作成する必要があります。 詳細については、「インデックスの作成」をご参照ください。

  • Elasticsearch DSLを使用してフィールドをクエリする場合、ElasticsearchとSimple Log Serviceのフィールド間のマッピングに注意してください。 次の表に、フィールドマッピングについて説明します。

    Elasticsearch

    Simple Log Service

    説明

    Elasticsearch

    Simple Log Service

    説明

    @ timestamp

    __time__

    クエリステートメントで @ timestampフィールドを指定すると、Simple Log Serviceの __time__ フィールドがマッピングされます。

    _id

    なし

    Simple Log Serviceに _idフィールドが存在する場合、Elasticsearchの_idフィールドはSimple Log Serviceの _idフィールドにマッピングされます。 _idフィールドがSimple Log Serviceに存在しない場合、システムはuuidまたは _pack_metaフィールドを生成し、_idフィールドの値をuuidまたは_pack_metaフィールドにマップします。

    RAM ユーザーへの権限付与

    次の方法を使用して、Elasticsearch互換APIを使用してデータを照会または書き込む権限をRAMユーザーに付与できます。

    • シンプルモード: システムポリシーを使用して、RAMユーザーに必要な権限を付与できます。 パラメーターを設定する必要はありません。

    • カスタムモード: カスタムポリシーを作成し、RAMユーザーにポリシーをアタッチできます。 このモードでは、きめ細かいアクセス制御を実行できます。 しかし、このモードの構成は複雑である。

    シンプルモード
    カスタムモード

    システムポリシーを使用して、Elasticsearch互換APIを使用して、RAMユーザーにデータのクエリまたは書き込み権限を付与できます。 次の表に、システムポリシーを示します。 詳細については、「RAMユーザーを作成し、RAMユーザーにSimple Log Serviceへのアクセスを許可する」をご参照ください。

    システムポリシー名

    クエリ権限

    書き込み権限

    AliyunLogFullAccess

    必須

    必須

    AliyunLogReadOnlyAccess

    必須

    選択可能

    カスタムポリシーを使用して、Elasticsearch互換APIを使用して、RAMユーザーにデータのクエリまたは書き込み権限を付与できます。 次の例は、カスタムポリシーの設定方法を示しています。 詳細については、「カスタムポリシーの作成」および「RAMユーザーへの権限付与」をご参照ください。

    • 次のスクリプトは、Elasticsearch互換APIを使用してデータのクエリと書き込みを行う権限をRAMユーザーに付与するサンプルポリシーを示しています。

      {
          "Version": "1",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "log:GetIndex",
                      "log:GetLogStoreContextLogs",
                      "log:ListLogStores",
                      "log:GetLogStoreHistogram",
                      "log:GetLogstoreLogs",
                      "log:GetLogStoreContextLogs",
                      "log:GetCursorOrData",
                      "log:GetLogstore",
                      "log:PostLogStoreLogs"
                  ],
                  "Resource": "acs:log:*:*:project/*"
              }
          ]
      }
    • 次のスクリプトは、Elasticsearch互換APIを使用してデータを照会する権限をRAMユーザーに付与するサンプルポリシーを示しています。

      {
          "Version": "1",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "log:GetIndex",
                      "log:GetLogStoreContextLogs",
                      "log:ListLogStores",
                      "log:GetLogStoreHistogram",
                      "log:GetLogstoreLogs",
                      "log:GetLogStoreContextLogs",
                      "log:GetCursorOrData",
                      "log:GetLogstore"
                  ],
                  "Resource": "acs:log:*:*:project/*"
              }
          ]
      }
    • 次のスクリプトは、Elasticsearch互換APIを使用してRAMユーザーにデータを書き込む権限を付与するサンプルポリシーを示しています。

      {
          "Version": "1",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "log:PostLogStoreLogs"
                  ],
                  "Resource": "acs:log:*:*:project/*"
              }
          ]
      }

  • 目次 (1, M)
  • 互換性
  • Elasticsearchと互換性のあるAPIエンドポイント
  • サポートされているElasticsearch互換のAPI操作
  • サポートされているElasticsearch DSL
  • Elasticsearch互換APIと標準のElasticsearch APIの違い
  • RAM ユーザーへの権限付与
フィードバック