すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:Simple Log Service と Elasticsearch の互換性

最終更新日:Jun 03, 2026

Simple Log Service (SLS) は、Elasticsearch DSL クエリを SLS インデックスクエリおよび SQL 分析クエリに変換する Elasticsearch 互換 API を提供します。このトピックでは、互換性の原理、サポートされる API 操作、およびサポートされる DSL 構文について説明します。

重要

本ドキュメントは Alibaba Cloud の専有情報です。Alibaba Cloud サービスとサードパーティ製品との連携について説明しており、サードパーティ企業または製品の名称を参照する場合があります。

互換性の原理

Elasticsearch は、Apache Lucene をベースとしたオープンソースの分散検索・分析エンジンです。Elasticsearch から SLS へ移行する際、ワークフローの調整や上流・下流のプログラムの変更が必要になる場合があります。SLS は、この移行を簡素化するために Elasticsearch 互換 API を提供します。

この API は、Elasticsearch DSL クエリを SLS のインデックスクエリおよび SQL 分析クエリに変換し、結果を Elasticsearch API 形式で返します。

説明
  • Elasticsearch 互換 API は、Elasticsearch 7.10 仕様に基づいています。

  • Elasticsearch 互換 API は標準 Logstore のみをサポートしており、少なくとも 1 つのフィールドインデックスを作成する必要があります。

image

Elasticsearch 互換 API エンドポイント

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

サポートされる Elasticsearch API 操作

Elasticsearch 互換 API は、以下の操作をサポートしています。

リクエストメソッド

API パス

説明

Post

/${index}/_search

指定されたインデックスをクエリします。インデックスは、${project}.${logstore} 形式で SLS のプロジェクトと Logstore にマッピングされます。

Post

/${index}/_async_search

バッチクエリを実行します。

Post

/_msearch

バッチクエリを実行します。

Post

/${index}/_bulk

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

重要

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

Get

/${index}/_mapping

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

サポートされる Elasticsearch DSL

Elasticsearch 互換 API は、以下の Elasticsearch DSL をサポートしています。

クエリ関連の DSL

DSL

説明

bool

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

match_all

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

match

フィールド値に一致します。

match_phrase

フレーズに一致します。

SQL LIKE 句に変換されます。インデックス化されたフィールドのみを返します。

multi_match

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

prefix

プレフィックスクエリを実行します。

range

範囲クエリを実行します。

term

タームクエリを実行します。

SLS インデックスクエリ構文に変換されます。

terms

複数のタームに対するクエリを実行します。

SLS インデックスクエリ構文に変換されます。

wildcard

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

SLS SQL 分析構文に変換されます。

regexp

正規表現に一致します。

SQL regexp_like 構文に変換されます。インデックス化されたフィールドのみを返します。

exists

フィールドが存在するかどうかを確認します。

ids

ID フィールドをクエリします。

集約関連の DSL

カテゴリ

DSL

説明

グループ統計

Date histogram

@timestamp フィールドでグループ統計を行います。

Histogram

数値間隔でグループ統計を行います。

Range

数値範囲でグループ統計を行います。

Terms

フィールドの一意の値でグループ統計を行います。

Filter

単一のフィルタ条件でグループ統計を行います。

Filters

複数のフィルタ条件でグループ統計を行います。

メトリック統計

Min

最小値を計算します。

Max

最大値を計算します。

Avg

平均値を計算します。

Sum

合計を計算します。

Count

カウントを計算します。

Cardinality

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

Percentiles

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

返されたログ

トップヒット

グループごとに上位の一致ログを返します。

標準 Elasticsearch との違い

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

  • Elasticsearch 互換 API は、スクリプトベースのクエリをサポートしていません。

  • 単一の Logstore はペタバイト規模のデータをサポートするため、インデックスのロールオーバーは不要です。

  • インデックスは自動的には作成されません。API またはコンソールを通じて作成してください。インデックスの作成

  • 以下のフィールドは、Elasticsearch DSL で特定のマッピングに対応します。

    Elasticsearch

    SLS

    説明

    @timestamp

    __time__

    クエリでは、@timestamp フィールドは Simple Log Service の __time__ フィールドに対応します。

    _id

    なし

    Simple Log Service データに _id フィールドが存在する場合、そのフィールドにマッピングされます。_id フィールドが存在しない場合、uuid または _pack_meta が自動的に入力されます。

RAM 権限付与

以下のいずれかのアクセスポリシーを使用して、Resource Access Management (RAM) ユーザーに Elasticsearch 互換 API のクエリ権限および書き込み権限を付与してください。

  • システムポリシー:設定が簡単です。

  • カスタムポリシー:きめ細かい権限を提供しますが、設定が複雑です。

シンプルな権限付与

システムポリシーを使用して、RAM ユーザーに Elasticsearch 互換 API のクエリ権限および書き込み権限を付与してください。RAM ユーザーの権限を管理する

システムポリシー名

クエリ権限

書き込み権限

AliyunLogFullAccess

あり

あり

AliyunLogReadOnlyAccess

あり

なし

カスタムポリシー

きめ細かい権限を設定するには、カスタムポリシーを使用してください。カスタムポリシーを作成する RAM ユーザーの権限を管理する

  • Elasticsearch 互換 API のクエリ権限および書き込み権限を付与する場合

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "log:GetIndex",
                    "log:ListLogStores",
                    "log:GetLogStoreHistogram",
                    "log:GetLogstoreLogs",
                    "log:GetLogStoreContextLogs",
                    "log:GetCursorOrData",
                    "log:GetLogstore",
                    "log:PostLogStoreLogs"
                ],
                "Resource": "acs:log:*:*:project/*"
            }
        ]
    }
  • Elasticsearch 互換 API のクエリ権限のみを付与する場合

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "log:GetIndex",
                    "log:ListLogStores",
                    "log:GetLogStoreHistogram",
                    "log:GetLogstoreLogs",
                    "log:GetLogStoreContextLogs",
                    "log:GetCursorOrData",
                    "log:GetLogstore"
                ],
                "Resource": "acs:log:*:*:project/*"
            }
        ]
    }
  • Elasticsearch 互換 API の書き込み権限のみを付与する場合

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