文档

导入Elasticsearch数据

更新时间:
重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

本文介绍如何将Elasticsearch数据导入到日志服务,实现数据的查询分析、加工等操作。

前提条件

版本说明

目前,只支持Elasticsearch 6.3及以上版本。

创建数据导入配置

  1. 登录日志服务控制台

  2. 接入数据区域的数据导入页签中,选择Elasticsearch-数据导入

    image

  3. 选择目标Project和Logstore,单击下一步
  4. 设置导入配置。

    1. 导入配置步骤中,配置如下参数。

      参数

      说明

      任务名称

      SLS任务的唯一名称。

      显示名称

      任务显示名称。

      任务描述

      导入任务的描述。

      服务实例URL

      Elasticsearch服务器的URL地址,格式为http://host:port/

      支持设置多个地址,各个地址之间使用英文逗号(,)隔开,例如http://host1:port1/,http://host2:port2/

      通常情况下,Elasticsearch服务器的服务端口为9200。

      重要

      如果您设置了VPC实例ID,则此处必须设置host为对应ECS实例的IP地址(IPv4)。

      ES索引列表

      待导入的索引,多个索引之间使用英文逗号(,)隔开,例如index1,index2,index3

      ES用户名称

      Elasticsearch用户名。仅当Elasticsearch集群需要用户认证时,此处才需配置。

      ES用户密码

      Elasticsearch用户密码。

      时间字段

      Elasticsearch索引中代表时间的列名,用于指定日志时间。

      如果不指定时间字段,则日志服务默认采用数据导入时的系统时间。

      重要

      如果要进行增量导入,则必须设置时间字段

      时间字段格式

      设置时间格式,用于解析时间字段的值。

      • 支持Java SimpleDateFormat语法的时间格式,例如yyyy-MM-dd HH:mm:ss。时间格式的语法详情请参见Class SimpleDateFormat。常见的时间格式请参见时间格式

      • 支持epoch格式,可选值为epoch、epochMillis、epochMacro、epochNano。

      重要

      Java SimpleDateFormat不支持Unix时间戳,如果您要使用Unix时间戳,需设置时间字段格式为epoch格式。

      时间字段时区

      选择时间字段对应的时区。

      时间字段格式为epoch格式时,不需要设置时区。

      ES查询

      过滤数据的查询语句,需符合Elasticsearch的query_string格式,例如gender:male and city:Shanghai。更多信息,请参见Query string query

      导入模式

      选择数据导入的模式。

      • 只导入历史数据:数据导入完成后,导入任务自动结束。

      • 自动导入新增数据:导入任务将一直运行。

        重要

        如果选择自动导入新增数据,必须设置时间字段

      起始时间

      指定起始时间后,当时间字段的值大于等于起始时间时,数据才会被导入日志服务。

      重要

      只有设置了时间字段后,此配置才有效。

      结束时间

      指定结束时间后,当时间字段的值小于等于结束时间时,数据才会被导入日志服务。

      重要

      只有设置了时间字段且设置导入模式只导入历史数据后,此配置才有效。

      数据最大延迟秒数

      指定数据产生到写入Elasticsearch的最大延迟时间。

      重要
      • 如果设置的值比真实延迟小,将导致有些数据无法从Elasticsearch导入到日志服务。

      • 设置了时间字段且设置导入模式自动导入新增数据后,此配置才有效。

      检查新数据周期(秒)

      检查Elasticsearch中新增数据的周期。默认值:300秒,最小值:60秒。

      VPC实例ID

      如果Elasticsearch集群是VPC环境下的阿里云Elasticsearch集群或ECS上自建的Elasticsearch集群,您可以通过设置VPC实例ID,实现日志服务通过阿里云内网读取Elasticsearch集群的数据。通过阿里云内网读取数据,具备更好的安全性和网络稳定性。

      重要

      Elasticsearch集群需允许被IP网段100.104.0.0/16访问。

    2. 单击预览,预览导入结果。

    3. 确认无误后,单击下一步

  5. 预览数据创建索引,然后单击下一步。日志服务默认开启全文索引。您也可以根据采集到的日志,手动创建字段索引,或者单击自动生成索引,日志服务将自动生成字段索引。更多信息,请参见创建索引

    重要

    如果需要查询日志中的所有字段,建议使用全文索引。如果只需查询部分字段、建议使用字段索引,减少索引流量。如果需要对字段进行分析(SELECT语句),必须创建字段索引。

  6. 单击查询日志,系统将跳转至Logstore查询分析页面。

    您需要等待1分钟左右,待索引生效后,才能在原始日志页签中,查看已采集到的日志。查询和分析日志的详细步骤,请参见查询和分析日志

查看导入配置

创建导入配置成功后,您可以在控制台中查看已创建的导入配置及生成的统计报表。

  1. 单击目标Project。

  2. 选择目标日志库下的数据接入 > 数据导入,单击配置名称。

  3. 导入配置概览页面,查看导入配置的基本信息和统计报表。

    Elasticsearch导入

相关操作

  • 删除导入配置

    导入配置概览页面,您可以单击删除配置,删除该导入配置。

    警告

    删除后不可恢复,请谨慎操作。

  • 停止和重启导入任务

    创建导入配置后,日志服务会对应生成一个导入任务。您可以在导入配置概览页面,单击停止,停止导入任务。停止后,支持重启。

    重要

    导入任务被停止后,其状态最长保留24小时。如果在停止的24小时内没有重启该任务,则该任务将不可用。即在停止的24小时后,再重启该任务,后续任务运行过程中将出错。

常见问题

问题

可能原因

解决方法

预览时出现Elasticsearch连接错误(failed to connect)。

  • 设置Elasticsearch服务器的URL地址错误。

  • 没有在白名单中添加导入服务对应的IP地址,导致导入服务无法访问Elasticsearch集群。

  • 导入部署在阿里云上的Elasticsearch集群数据时,没有设置VPC实例ID。

  • 确保设置了正确的Elasticsearch服务器的URL地址。

  • 在白名单中添加IP地址,允许导入服务连接Elasticsearch集群。更多信息,请参见IP地址白名单

  • 采用阿里云内网导入部署在阿里云上的Elasticsearch集群数据时,确保设置了VPC实例ID。

预览时出现超时错误(preview request timed out)。

待导入的Elasticsearch索引中没有数据或没有符合过滤条件的数据。

  • 如果Elasticsearch索引中无数据,请在写入数据后,再重试预览。

  • 设置时间字段和时间格式时,确保该设置与真实数据中的时间字段、格式相匹配。

  • 设置Elasticsearch查询条件或时间范围时,确保Elasticsearch索引中存在符合条件的数据。

日志服务中显示的数据时间和数据本身的时间不一致。

设置导入配置时,没有指定日志时间字段或者设置时间格式、时区有误。

设置指定的日志时间字段以及正确的时间格式和时区。更多信息,请参见创建数据导入配置

导入数据后,无法查询和分析数据。

  • 数据不在查询范围内。

  • 未配置索引。

  • 索引未生效。

  • 检查待查询数据的时间是否在查询时间范围内。

    如果不在查询范围内,请调整查询范围并重新查询。

  • 检查是否已为Logstore设置索引。

    如果未设置,请先设置索引。具操操作,请参见创建索引重建索引

  • 如果已设置索引,且数据处理流量观测仪表盘中显示的成功导入数据量符合预期,则可能原因是索引未生效,请尝试重建索引。具体操作,请参见重建索引

导入的数据条目数量少于预期。

存在大于3 MB的Elasticsearch数据,您可以通过数据处理流量观测仪表盘确认。

缩小单条Elasticsearch数据的大小。

开启增量导入时,新数据存在明显的延迟。

  • 设置数据最大延迟秒数过大。

  • Elasticsearch集群带宽达到限制。

  • 通过公网导入数据时,网络不稳定。

  • Logstore Shard数量过少。

  • 更多原因,请参见性能限制

  • 确保设置了合理的数据最大延迟秒数,并根据真实情况进行调整。

  • 检查Elasticsearch集群流量是否达到带宽限制(特别是部署在阿里云上的Elasticsearch集群),如果达到或接近带宽限制,则需要进行带宽扩容。

  • 如果通过公网导入Elasticsearch数据,则需保证公网带宽足够大。

  • Logstore Shard数量较少时,请尝试增加Shard的个数,并观察延迟情况。具体操作,请参见管理Shard

错误处理机制

错误项

说明

与Elasticsearch集群通信异常

导入任务采用Scroll模式拉取Elasticsearch数据,默认使用的keep-alive时长为24小时。遇到网络连接错误或其他无法与Elasticsearch服务正常通信的错误(例如用户认证错误)时,导入任务会自动重试。

如果在24小时内无法恢复正常连接,Scroll Session信息将被Elasticsearch服务端清除,导致重试导入任务也无法恢复正常运行(提示No search context found错误),您只能重建导入任务。