- 最新动态
- 功能总览
- 服务公告
- 产品介绍
- 计费说明
- 快速入门
-
用户指南
- CSS服务权限管理
-
使用Elasticsearch搜索数据
- Elasticsearch使用流程
- Elasticsearch集群规划建议
- 创建Elasticsearch集群
- 访问Elasticsearch集群
- 导入数据至Elasticsearch集群
- 使用Elasticsearch集群搜索数据
- 增强Elasticsearch集群搜索能力
- 配置Elasticsearch集群网络
- 备份与恢复Elasticsearch集群数据
- 扩缩容Elasticsearch集群
- 升级Elasticsearch集群版本
- 管理Elasticsearch集群
- 管理Elasticsearch集群索引策略
- Elasticsearch集群监控与日志管理
- 查看Elasticsearch集群审计日志
- 使用OpenSearch搜索数据
- 使用Logstash迁移数据
- CSS服务资源监控
- 最佳实践
- API参考
- SDK参考
-
常见问题
- 产品咨询
- CSS集群访问
- CSS集群迁移
-
CSS集群搜索引擎使用
- CSS服务中为什么新创建的索引分片集中分配到单节点上?
- CSS服务中Elasticsearch 7.x集群如何在index下创建type?
- CSS服务中如何配置Elasticsearch索引副本数量?
- CSS服务中Elasticsearch集群分片过多会有哪些影响?
- 如何查看CSS集群的分片数以及副本数?
- CSS服务中Elasticsearch集群的节点node.roles为i表示什么意思?
- CSS服务中如何设置Elasticsearch集群的默认分页返回最大条数?
- CSS服务中如何更新Elasticsearch生命周期策略?
- CSS服务中如何设置Elasticsearch集群慢查询日志的阈值?
- CSS服务中如何清理Elasticsearch索引数据?
- CSS服务中如何清理Elasticsearch缓存?
- 使用delete_by_query命令删除Elasticsearch集群数据后,为什么磁盘使用率反而增加?
- CSS服务的Elasticsearch集群是否支持script dotProduct?
-
CSS集群管理
- 如何查看CSS集群所分布的可用区?
- CSS服务中Filebeat版本与集群版本的关系是什么?
- 如何获取CSS服务的安全证书?
- CSS服务中如何转换CER安全证书的格式?
- CSS服务中Elasticsearch和OpenSearch集群支持修改安全组吗?
- CSS服务中Elasticsearch集群如何设置search.max_buckets参数?
- CSS服务中如何修改Elasticsearch和OpenSearch集群的TLS算法?
- CSS服务中如何开启Elasticsearch和OpenSearch集群的安全审计日志?
- CSS服务中是否支持停止集群?
- CSS集群冻结索引后如何查询OBS上的索引占用量?
- 如何查看Elasticsearch和OpenSearch集群的系统默认插件列表
- CSS集群备份与恢复
- CSS集群监控与运维
-
故障排除
-
访问集群类
- 无法正常打开Kibana
- Elasticsearch针对filebeat配置调优
- Spring Boot使用Elasticsearch出现Connection reset by peer问题
- 为什么集群创建失败
- Elasticsearch集群出现写入拒绝“Bulk Reject”,如何解决?
- Elasticsearch集群创建index pattern卡住,如何解决?
- 云搜索控制台页面提示系统繁忙
- Elasticsearch集群报错:unassigned shards all indices
- es-head插件连接Elasticsearch集群报跨域错误
- 单节点集群打开Cerebro界面显示告警
- ECS无法连接到集群
- 集群不可用
- 数据导入导出类
-
功能使用类
- 无法备份索引
- 无法使用自定义词库功能
- 快照仓库找不到
- 集群一直处于快照中
- 数据量很大,如何进行快照备份?
- 集群突现load高的故障排查
- 使用ElasticSearch的HLRC(High Level Rest Client)时,报出I/O Reactor STOPPED
- Elasticsearch集群最大堆内存持续过高(超过90%)
- Elasticsearch集群更改规格失败
- 安全集群索引只读状态修改报错
- Elasticsearch集群某一节点分配不到shard
- 集群索引插入数据失败
- CSS创建索引报错“maximum shards open”
- 删除索引报错“403 Forbidden”是什么原因?
- Kibana中删除index pattern报错Forbidden
- 执行命令update-by-query报错“Trying to create too many scroll contexts”
- Elasticsearch集群无法创建pattern
- 端口访问类
-
访问集群类
- 视频帮助
- 产品术语
-
更多文档
-
用户指南(阿布扎比区域)
- 产品介绍
- 快速入门
- 权限管理
- 创建并接入集群
- 集群形态变更
- 导入数据到Elasticsearch
- 管理Elasticsearch类型集群
- 向量检索
- 使用Kibana相关操作
- 查询Elasticsearch SQL
- 增强特性
- 监控
- 审计
-
常见问题
- 产品咨询类
-
功能使用相关
- Elasticsearch是否支持不同VPC之间的数据迁移?
- 如何跨Region迁移CSS集群?
- 如何设置云搜索服务的慢查询日志的阈值?
- 如何更新CSS生命周期策略?
- 如何批量设置索引副本数为0?
- 为什么新创建的索引分片全部被分配到一个node节点上?
- 如何查询快照信息?
- 购买的低版本集群是否可以升级为高版本集群
- 集群被删除后是否还能恢复?
- 如何修改Elasticsearch集群的TLS算法?
- ES集群如何设置search.max_buckets参数?
- Elasticsearch集群中某个客户端节点的node.roles为i表示该节点是ingest节点吗?
- Elasticsearch 7.x集群如何在index下创建type?
- 安全模式集群相关
- 资源使用和更改相关
- 组件使用
- Kibana使用相关
- 访问集群相关
- 端口使用
- 修订记录
- API参考(阿布扎比区域)
-
用户指南(巴黎、阿姆斯特丹区域)
- 产品介绍
- 快速入门
- 权限管理
- 创建并接入集群
- 集群形态变更
- 导入数据到Elasticsearch
- 管理Elasticsearch类型集群
- 向量检索
- 使用Kibana相关操作
- 查询Elasticsearch SQL
- 增强特性
- 监控
- 审计
- 最佳实践
-
常见问题
- 产品咨询类
-
功能使用相关
- Elasticsearch是否支持不同VPC之间的数据迁移?
- 如何跨Region迁移CSS集群?
- 如何设置云搜索服务的慢查询日志的阈值?
- 如何更新CSS生命周期策略?
- 如何批量设置索引副本数为0?
- 为什么新创建的索引分片全部被分配到一个node节点上?
- 如何查询快照信息?
- 购买的低版本集群是否可以升级为高版本集群
- 集群被删除后是否还能恢复?
- 如何修改Elasticsearch集群的TLS算法?
- Elasticsearch集群如何设置search.max_buckets参数?
- Elasticsearch集群中某个客户端节点的node.roles为i表示该节点是ingest节点吗?
- Elasticsearch 7.x集群如何在index下创建type?
- 安全模式集群相关
- 资源使用和更改相关
- 组件使用
- Kibana使用相关
- 访问集群相关
- 端口使用
- 修订记录
- API参考 (巴黎、阿姆斯特丹区域)
-
用户指南(吉隆坡区域)
- 产品介绍
- 快速入门
- 权限管理
- 创建并接入集群
- 集群形态变更
- 导入数据到Elasticsearch
- 管理Elasticsearch类型集群
- 向量检索
- 使用Kibana相关操作
- 查询Elasticsearch SQL
- 增强特性
- 监控
- 审计
-
常见问题
- 产品咨询类
-
功能使用相关
- Elasticsearch是否支持不同VPC之间的数据迁移?
- 如何跨Region迁移CSS集群?
- 如何设置云搜索服务的慢查询日志的阈值?
- 如何更新CSS生命周期策略?
- 如何批量设置索引副本数为0?
- 为什么新创建的索引分片全部被分配到一个node节点上?
- 如何查询快照信息?
- 购买的低版本集群是否可以升级为高版本集群
- 集群被删除后是否还能恢复?
- 如何修改Elasticsearch集群的TLS算法?
- ES集群如何设置search.max_buckets参数?
- Elasticsearch集群中某个客户端节点的node.roles为i表示该节点是ingest节点吗?
- Elasticsearch 7.x集群如何在index下创建type?
- 安全模式集群相关
- 资源使用和更改相关
- 组件使用
- Kibana使用相关
- 访问集群相关
- 端口使用
- 修订记录
- API参考(吉隆坡区域)
-
用户指南(安卡拉区域)
- 产品介绍
- 快速入门
- 权限管理
- 查看集群运行状态和存储容量状态
- 集群列表概览
- 部署跨AZ集群
- Elasticsearch
- 导入数据到Elasticsearch
- 监控
- 审计
-
常见问题
- 产品咨询类
-
功能使用相关
- Elasticsearch是否支持不同VPC之间的数据迁移?
- 如何跨Region迁移CSS集群?
- 如何设置云搜索服务的慢查询日志的阈值?
- 如何更新CSS生命周期策略?
- 如何批量设置索引副本数为0?
- 为什么新创建的索引分片全部被分配到一个node节点上?
- 如何查询快照信息?
- 购买的低版本集群是否可以升级为高版本集群
- 集群被删除后是否还能恢复?
- 如何修改Elasticsearch集群的TLS算法?
- ES集群如何设置search.max_buckets参数?
- Elasticsearch集群中某个客户端节点的node.roles为i表示该节点是ingest节点吗?
- Elasticsearch 7.x集群如何在index下创建type?
- 安全模式集群相关
- 资源使用和更改相关
- 组件使用
- Kibana使用相关
- 访问集群相关
- 端口使用
- 修订记录
- API参考(安卡拉区域)
-
用户指南(阿布扎比区域)
- 通用参考
链接复制成功!
使用自建Logstash导入数据到Elasticsearch
云搜索服务支持使用自建Logstash将其收集的数据迁移到Elasticsearch和OpenSearch中,方便用户通过CSS搜索引擎高效管理和获取数据。数据文件支持JSON、CSV等格式。
Logstash是开源的服务器端数据处理管道,能够同时从多个来源采集数据、转换数据,然后将数据发送到Elasticsearch或OpenSearch中。Logstash的官方文档请参见:https://www.elastic.co/guide/en/logstash/current/getting-started-with-logstash.html。
数据导入分为如下2种场景:
前提条件
- 为方便操作,建议采用Linux操作系统的机器部署Logstash。
- Logstash的下载路径为:https://www.elastic.co/cn/downloads/logstash-oss
说明:
Logstash要求使用OSS版本,选择和CSS一致版本。
- 安装Logstash之前,需要先安装JDK。在Linux操作系统中,您可以执行yum -y install java-1.8.0命令直接安装1.8.0版本JDK。在Windows操作系统中,您可以访问JDK官网,下载符合操作系统版本的JDK,并根据指导安装。
- 安装完Logstash后,再根据如下步骤导入数据。安装Logstash的操作指导,请参见:https://www.elastic.co/guide/en/logstash/current/installing-logstash.html
- 在“Logstash部署在弹性云服务器上时导入数据”场景中,请确保此弹性云服务器与接入的Elasticsearch集群在同一个VPC下。
Logstash部署在外网时导入数据
当Logstash部署在外网时,导入数据的流程说明如图1所示。
- 创建一个跳转主机,并按如下要求进行配置。
- 跳转主机为一台Linux操作系统的弹性云服务器,且已绑定弹性IP。
- 跳转主机与CSS集群在同一虚拟私有云下。
- 已开放跳转主机的本地端口,用于SSH转发,能够从本地端口转发至CSS集群某一节点的9200端口。
- 关于跳转主机的本地端口转发配置,请参见SSH官方文档。
- 使用PuTTY,通过弹性IP登录已创建的跳转主机。
- 执行如下命令进行端口映射,将发往跳转主机对外开放端口的请求转发到待导入数据的集群中。
ssh -g -L <跳转主机的本地端口:节点的内网访问地址和端口号> -N -f root@<跳转主机的私网IP地址>
说明:
- <跳转主机的本地端口>:为步骤1中的端口。
- <节点的内网访问地址和端口号>:为集群中某一节点的内网访问地址和端口号。当该节点出现故障时,将导致命令执行失败。如果集群包含多个节点,可以将<节点的内网访问地址和端口号>替换为集群中另一节点的内网访问地址和端口号;如果集群只包含一个节点,则需要将该节点修复之后再次执行命令进行端口映射。
- <跳转主机的私网IP地址>:打开弹性云服务器管理控制台,从“IP地址”列中获取标有“私网”对应的IP地址。
例如:跳转主机对外开放的端口号为9200,节点的内网访问地址和端口号为192.168.0.81:9200,跳转主机的私网IP地址为192.168.0.227,需要执行如下命令进行端口映射。
ssh -g -L 9200:192.168.0.81:9200 -N -f root@192.168.0.227
- 登录部署了Logstash的服务器,将需要进行操作的数据文件存储至此服务器中。
例如,需要导入的数据文件“access_20181029_log”,文件存储路径为“/tmp/access_log/”,此数据文件中包含的数据如下所示:
说明:
文件存储路径中的access_log文件夹如果不存在,用户可以自建。
| All | Heap used for segments | | 18.6403 | MB | | All | Heap used for doc values | | 0.119289 | MB | | All | Heap used for terms | | 17.4095 | MB | | All | Heap used for norms | | 0.0767822 | MB | | All | Heap used for points | | 0.225246 | MB | | All | Heap used for stored fields | | 0.809448 | MB | | All | Segment count | | 101 | | | All | Min Throughput | index-append | 66232.6 | docs/s | | All | Median Throughput | index-append | 66735.3 | docs/s | | All | Max Throughput | index-append | 67745.6 | docs/s | | All | 50th percentile latency | index-append | 510.261 | ms |
- 在部署Logstash的服务器中,执行如下命令在Logstash的安装目录下新建配置文件logstash-simple.conf。
cd /<Logstash的安装目录>/ vi logstash-simple.conf
- 在配置文件logstash-simple.conf中输入如下内容。
input { 数据所在的位置 } filter { 数据的相关处理 } output { elasticsearch { hosts => "<跳转主机的公网IP地址>:<跳转主机对外开放的端口号>" } }
- input:指定数据的来源。实际请根据用户的具体情况来设置。input参数的详细解释和使用介绍请参见https://www.elastic.co/guide/en/logstash/current/input-plugins.html。
- filter:指定对数据进行处理的方式。例如,对日志进行了提取和处理,将非结构化信息转换为结构化信息。filter参数的详细解释和使用介绍请参见https://www.elastic.co/guide/en/logstash/current/filter-plugins.html。
- output:指定数据的目的地址。output参数的详细解释和使用介绍请参见https://www.elastic.co/guide/en/logstash/current/output-plugins.html。<跳转主机的公网IP地址>请从弹性云服务器管理控制台的“IP地址”列中获取标有“弹性公网”对应的IP地址。<跳转主机对外开放的端口号>即为步骤1中的端口,例如:9200。
以步骤4中“/tmp/access_log/”的数据文件为例,输入数据文件从首行开始,且过滤条件保持为空,即不做任何数据处理操作。跳转主机的公网IP和端口号为“192.168.0.227:9200”。导入数据的索引名称为“myindex”。配置文件的示例如下所示,配置文件按实际数据情况修改完成后,输入“:wq”保存。
input { file{ path => "/tmp/access_log/*" start_position => "beginning" } } filter { } output { elasticsearch { hosts => "192.168.0.227:9200" index => "myindex" } }
说明:
如果在使用中出现license相关的报错,可以尝试设置ilm_enabled => false。
如果集群开启了安全模式,则需要先下载证书。
- 在云搜索服务管理控制台。
- 在“集群管理”页面,单击需要下载证书的集群名称,进入集群基本信息页面。
- 在集群基本信息页面下载证书。
图2 下载证书
- 将下载的证书存放到部署logstash服务器中。
- 修改配置文件logstash-simple.conf。
以步骤4中“/tmp/access_log/”的数据文件为例,输入数据文件从首行开始,且过滤条件保持为空,即不做任何数据处理操作。跳转主机的公网IP和端口号为“192.168.0.227:9200”。导入数据的索引名称为“myindex”,证书存放路径为“/logstash/logstash6.8/config/CloudSearchService.cer”。配置文件的示例如下所示,配置文件按实际数据情况修改完成后,输入“:wq”保存。
input{ file { path => "/tmp/access_log/*" start_position => "beginning" } } filter { } output{ elasticsearch{ hosts => ["https://192.168.0.227:9200"] index => "myindex" user => "admin" password => "******" cacert => "/logstash/logstash6.8/config/CloudSearchService.cer" manager_template => false ilm_enabled => false ssl => true ssl_certificate_verification => false } }
说明:
password:登录安全集群的密码。
- 执行如下命令将Logstash收集的数据导入到集群中。
./bin/logstash -f logstash-simple.conf
说明:
此命令需要在存放logstash-simple.conf文件的目录下执行。例如,logstash-simple.conf文件存放在/root/logstash-7.1.1/,则需要先进入该路径,再执行此命令。
- 登录云搜索服务管理控制台。
- 在左侧导航栏中,对应的集群类型,进入集群管理列表页面。
- 在集群列表页面中,单击待导入数据的集群“操作”列的“Kibana”。
- 在Kibana的左侧导航中选择“Dev Tools”,进入Console界面。
- 在已打开的Kibana的Console界面,通过搜索获取已导入的数据。
在Kibana控制台,输入如下命令,搜索数据。查看搜索结果,如果数据与导入数据一致,表示数据文件的数据已导入成功。
GET myindex/_search
Logstash部署在弹性云服务器上时导入数据
当Logstash部署在同一VPC的弹性云服务时,导入数据的流程说明如图3所示。
- 确保已部署Logstash的弹性云服务器与待导入数据的集群在同一虚拟私有云下,已开放安全组的9200端口的外网访问权限,且弹性云服务器已绑定弹性IP。
说明:
- 如果同一个VPC内有多台服务器,只要其中一台绑定了弹性IP,其他的服务器可以不需要绑定弹性IP。通过绑定弹性IP的节点跳转到部署Logstash的节点即可。
- 如果有专线或者VPN,也不需要绑定弹性IP。
- 使用PuTTY登录弹性云服务器。
例如此服务器中存储了需要导入的数据文件“access_20181029_log”,文件存储路径为“/tmp/access_log/”,此数据文件中包含的数据如下所示:
| All | Heap used for segments | | 18.6403 | MB | | All | Heap used for doc values | | 0.119289 | MB | | All | Heap used for terms | | 17.4095 | MB | | All | Heap used for norms | | 0.0767822 | MB | | All | Heap used for points | | 0.225246 | MB | | All | Heap used for stored fields | | 0.809448 | MB | | All | Segment count | | 101 | | | All | Min Throughput | index-append | 66232.6 | docs/s | | All | Median Throughput | index-append | 66735.3 | docs/s | | All | Max Throughput | index-append | 67745.6 | docs/s | | All | 50th percentile latency | index-append | 510.261 | ms |
- 执行如下命令在Logstash的安装目录下新建配置文件logstash-simple.conf。
cd /<Logstash的安装目录>/ vi logstash-simple.conf
在配置文件logstash-simple.conf中输入如下内容。input { 数据所在的位置 } filter { 数据的相关处理 } output { elasticsearch{ hosts => "<节点的内网访问地址和端口号>"} }
- input:指定数据的来源。实际请根据用户的具体情况来设置。input参数的详细解释和使用介绍请参见https://www.elastic.co/guide/en/logstash/current/input-plugins.html。
- filter:对日志进行了提取和处理,将非结构化信息转换为结构化信息。filter参数的详细解释和使用介绍请参见https://www.elastic.co/guide/en/logstash/current/filter-plugins.html。
- output:指定数据的目的地址。output参数的详细解释和使用介绍请参见https://www.elastic.co/guide/en/logstash/current/output-plugins.html。<节点的内网访问地址和端口号>为集群中节点的内网访问地址和端口号。
当集群包含多个节点时,为了避免节点故障,建议将上述命令中<节点的内网访问地址和端口号>替换为该集群中多个节点的内网访问地址和端口号,多个节点的内网访问地址和端口号之间用英文逗号隔开,填写格式请参见如下示例。
hosts => ["192.168.0.81:9200","192.168.0.24:9200"]
当集群只包含一个节点时,填写格式请参见如下示例。
hosts => "192.168.0.81:9200"
以步骤2中“/tmp/access_log/”的数据文件为例,输入数据文件从首行开始,且过滤条件保持为空,即不做任何数据处理操作。需导入数据的集群,其节点内网访问地址和端口号为“192.168.0.81:9200”。导入数据的索引名称为“myindex”。配置文件的示例如下所示,配置文件按实际数据情况修改完成后,输入“:wq”保存。
input { file{ path => "/tmp/access_log/*" start_position => "beginning" } } filter { } output { elasticsearch { hosts => "192.168.0.81:9200" index => "myindex" } }
如果集群开启了安全模式,则需要先下载证书。
- 在集群基本信息页面下载证书。
图4 下载证书
- 将下载的证书存放到部署logstash服务器中。
- 修改配置文件logstash-simple.conf。
以步骤2中“/tmp/access_log/”的数据文件为例,输入数据文件从首行开始,且过滤条件保持为空,即不做任何数据处理操作。跳转主机的公网IP和端口号为“192.168.0.227:9200”。导入数据的索引名称为“myindex”,证书存放路径为“/logstash/logstash6.8/config/CloudSearchService.cer”。配置文件的示例如下所示,配置文件按实际数据情况修改完成后,输入“:wq”保存。
input{ file { path => "/tmp/access_log/*" start_position => "beginning" } } filter { } output{ elasticsearch{ hosts => ["https://192.168.0.227:9200"] index => "myindex" user => "admin" password => "******" cacert => "/logstash/logstash6.8/config/CloudSearchService.cer" manager_template => false ilm_enabled => false ssl => true ssl_certificate_verification => false } }
说明:
password:登录安全集群的密码。
- 执行如下命令将Logstash收集的弹性云服务器的数据导入到集群中。
./bin/logstash -f logstash-simple.conf
- 登录云搜索服务管理控制台。
- 在左侧导航栏中,选择对应的集群类型,进入集群管理列表页面。
- 在集群列表页面中,单击待导入数据的集群“操作”列的“Kibana”。
- 在Kibana的左侧导航中选择“Dev Tools”,进入Console界面。
- 在已打开的Kibana的Console界面,通过搜索获取已导入的数据。
在Kibana控制台,输入如下命令,搜索数据。查看搜索结果,如果数据与导入数据一致,表示数据文件的数据已导入成功。
GET myindex/_search