帮助文档 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
帮助文档 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 日志服务
  4. 操作指南
  5. 查询与分析
  6. 通过索引模式查询和分析日志
  7. 日志服务与Elasticsearch的兼容性

日志服务与Elasticsearch的兼容性

  • 通过索引模式查询和分析日志
  • 发布于 2025-04-22
  • 0 次阅读
文档编辑
文档编辑

本文介绍日志服务与Elasticsearch的兼容性信息,包括兼容原理、兼容的Elasticsearch API和Elasticsearch DSL(Domain Specific Language)等。

重要

本文档为阿里云原创文档,知识产权归阿里云所有,由于本文档旨在介绍阿里云与第三方产品交互的服务能力,因此可能会提及第三方公司或产品等名称。

兼容原理

Elasticsearch是一款基于Apache Lucene的开源、分布式搜索和分析引擎,是数据处理和分析的主流工具。当您将日志引擎从Elasticsearch切换为日志服务时,可能遇到使用习惯以及上下游程序修改问题。为了解决这些问题,日志服务提供了Elasticsearch兼容接口,最大程度保障Elasticsearch查询分析方案迁移的平滑度,降低将日志引擎从Elasticsearch切换为日志服务的使用难度。

日志服务所提供的Elasticsearch兼容接口,其兼容机制是将Elasticsearch DSL查询翻译为日志服务的索引查询和SQL分析查询,并且按照Elasticsearch的API格式规范返回查询分析结果,从而实现Elasticsearch查询协议的兼容。

说明
  • 日志服务的Elasticsearch兼容接口是根据Elasticsearch7.10的接口规范实现的。

  • Elasticsearch兼容接口仅支持标准型Logstore,并且至少创建一个字段索引。

image

Elasticsearch兼容API访问域名

Elasticsearch兼容API的访问域名格式为https://${project}.${sls-endpoint}/es/,例如https://etl-guangzhou.cn-guangzhou.log.aliyuncs.com/es/。其中${project}为Project名称,${sls-endpoint}为日志服务Project的访问域名。更多信息,请参见服务入口。

支持的Elasticsearch API

日志服务提供的Elasticsearch兼容接口支持兼容如下Elasticsearch API。

请求方法

API路径

说明

Post

/${index}/_search

查询指定的Index。Index对应日志服务的Project和Logstore,格式为${project}.${logstore}。

Post

/${index}/_async_search

批量查询。

Post

/_msearch

批量查询。

Post

/${index}/_bulk

写入数据到指定的Index。

重要

_bulk接口不支持数据更新,只支持写入数据。

Get

/${index}/_mapping

获取指定Index的Mapping。

支持兼容的Elasticsearch DSL

日志服务提供的Elasticsearch兼容接口支持如下Elasticsearch DSL。

查询相关的DSL列表

DSL

功能说明

bool

布尔运算。

match_all

匹配所有日志。

match

索引匹配。

match_phrase

短语匹配。

查询时,会将该算子翻译为日志服务的SQL LIKE语法,返回结果中的字段列表为配置了字段索引的字段。

multi_match

多字段匹配。

prefix

前缀查询。

range

范围查询。

term

term查询。

查询时,会将该算子翻译为日志服务的索引查询语法。

terms

多个term查询。

查询时,会将该算子翻译为日志服务的索引查询语法。

wildcard

通配符匹配。

查询时,会将该算子翻译为日志服务的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

统计百分位。

返回日志

Top hits

返回分组后的日志。

Elasticsearch兼容API与标准Elasticsearch API的差异点

  • 日志服务提供的Elasticsearch兼容API不支持更新数据。

  • 日志服务提供的Elasticsearch兼容API不支持包含Script的查询语句。

  • 单个日志服务Logstore支持PB级数据量,因此使用日志服务提供的Elasticsearch兼容API时,Elasticsearch不需要做Index滚动。

  • 日志服务的索引不会自动创建,您需要通过API方式或控制台手动创建。具体操作,请参见创建索引。

  • 通过Elasticsearch DSL查询如下字段时,请注意其映射关系。

    Elasticsearch

    日志服务

    说明

    @timestamp

    __time__

    如果查询语句中指定了@timestamp字段,则实际查询时使用的是日志服务的__time__字段。

    _id

    无

    如果日志服务的数据中存在_id字段,则映射为_id字段;如果不存在,则自动使用uuid或_pack_meta填充。

RAM授权

您可以使用如下权限策略授予RAM用户使用Elasticsearch兼容API进行查询和写入数据的权限。

  • 系统权限策略:操作简单。

  • 自定义权限策略:权限精细,配置复杂。

极简授权

您可以通过系统权限策略授予RAM用户使用Elasticsearch兼容API查询、写入数据的权限。具体操作,请参见为RAM用户授权。

系统权限策略名称

查询权限

写入权限

AliyunLogFullAccess

Yes

Yes

AliyunLogReadOnlyAccess

Yes

No

自定义权限策略

您可以通过自定义权限策略授予RAM用户使用Elasticsearch兼容API查询、写入数据的权限。具体操作,请参见创建自定义权限策略、为RAM用户授权。

  • 授予RAM用户使用Elasticsearch兼容API查询和写入数据权限。

    {
        "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/*"
            }
        ]
    }
  • 授予RAM用户使用Elasticsearch兼容API查询数据的权限。

    {
        "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/*"
            }
        ]
    }
  • 授予RAM用户使用Elasticsearch兼容API写入数据的权限。

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

相关文章

查询与分析快速指引 2025-04-22 10:58

日志服务提供查询和分析功能,支持秒级查询十亿到千亿级别的日志,并支持通过SQL对查询结果进行统计分析。本文以Nginx日志为例,为您介绍如何快速开启索引,并在控制台完成查询与分析的基本操作。

创建索引 2025-04-22 10:58

如需对采集到Logstore中的日志进行查询和分析,则必须创建索引。本文为您介绍日志服务索引概念、索引类型、创建索引、关闭索引、配置示例和计费说明等。

数据类型 2025-04-22 10:58

您在创建索引时,可将字段的数据类型设置为text、long、double或JSON。本文介绍各个数据类型的配置示例及注意事项。 数据类型概述 在创建索引时,日志服务提供如下数据类型,请按情况进行选择: text、long、double类型:

重建索引 2025-04-22 10:58

当您需要对历史数据配置索引或修改索引时,可以使用重建索引功能。日志服务支持在选定的时间段中按照最新的索引规则为Logstore重建索引。本文介绍如何在日志服务控制台上重建索引及相关信息。 前提条件 已开启索引。具体操作,请参见创建索引

保留字段 2025-04-22 10:58

在采集日志或投递数据到其他云产品时,日志服务会将日志来源、时间戳等信息以Key-Value对的形式添加到日志中。这些字段是日志服务的保留字段。本文介绍日志服务的保留字段。

查询语法与功能 2025-04-22 10:58

日志服务Logstore支持使用查询语句对存储在Logstore中的日志进行筛选。筛选结果可独立使用,也可以用于分析语句,进行更复杂的分析处理。本文介绍查询语句的语法结构,以及应用场景和具体示例。

目录
Copyright © 2025 your company All Rights Reserved. Powered by 博智数字服务平台.
闽ICP备08105208号-1