• 沒有找到結果。

使用 Logstash 导入数据到 Elasticsearch

云搜索服务支持使用Logstash将其收集的数据迁移到Elasticsearch中,方便用户通过 Elasticsearch搜索引擎高效管理和获取数据。数据文件支持JSON、CSV等格式。

Logstash 是开源的服务器端数据处理管道,能够同时从多个来源采集数据、转换数 据,然后将数据发送到Elasticsearch中。Logstash的官方文档请参见:https://

www.elastic.co/guide/en/logstash/current/getting-started-with-logstash.html。

数据导入分为如下2种场景:

Logstash部署在外网时导入数据

Logstash部署在弹性云服务器上时导入数据

前提条件

● 为方便操作,建议采用Linux操作系统的机器部署Logstash。

● Logstash的下载路径为:https://www.elastic.co/cn/downloads/logstash-oss 说明

Logstash要求使用OSS版本,选择和CSS一致版本。

● 安装完Logstash后,再根据如下步骤导入数据。安装Logstash的操作指导,请参

见:https://www.elastic.co/guide/en/logstash/current/installing-logstash.html

● 安装Logstash之前,需要先安装JDK。在Linux操作系统中,您可以执行yum -y install java-1.8.0命令直接安装1.8.0版本JDK。在Windows操作系统中,您可以 访问JDK官网,下载符合操作系统版本的JDK,并根据指导安装。

● 在“Logstash部署在弹性云服务器上时导入数据”场景中,请确保此弹性云服务 器与接入的Elasticsearch集群在同一个VPC下。

Logstash 部署在外网时导入数据

当Logstash部署在外网时,导入数据的流程说明如图4-4所示。

4-4 Logstash 部署在外网时导入数据示意图

1. 创建一个跳转主机,并按如下要求进行配置。

ssh -g -L <跳转主机的本地端口:节点的内网访问地址和端口号> -N -f root@<跳转主机的私网IP地址>

说明

ssh -g -L 9200:192.168.0.81:9200 -N -f [email protected]

4. 登录部署了Logstash的服务器,将需要进行操作的数据文件存储至此服务器中。

} }

– 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。

如果集群开启了安全模式,则需要先下载证书。

a. 在集群基本信息页面下载证书。

4-5 下载证书

b. 将下载的证书存放到部署logstash服务器中。

c. 修改配置文件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"

} }

说明

password:登录安全集群的密码。

7. 执行如下命令将Logstash收集的数据导入到集群中。

./bin/logstash -f logstash-simple.conf 说明

此命令需要在存放logstash-simple.conf文件的目录下执行。例如,logstash-simple.conf文 件存放在/root/logstash-7.1.1/,则需要先进入该路径,再执行此命令。

8. 登录云搜索服务管理控制台。

9. 在左侧导航栏中,选择“集群管理”,进入集群列表页面。

10. 在集群列表页面中,单击待导入数据的集群“操作”列的“Kibana”。

11. 在Kibana的左侧导航中选择“Dev Tools”,进入Console界面。

4-6 登录 Dev Tools 界面

12. 在已打开的Kibana的Console界面,通过搜索获取已导入的数据。

在Kibana控制台,输入如下命令,搜索数据。查看搜索结果,如果数据与导入数 据一致,表示数据文件的数据已导入成功。

GET myindex/_search

Logstash 部署在弹性云服务器上时导入数据

当Logstash部署在同一VPC的弹性云服务时,导入数据的流程说明如图4-7所示。

4-7 Logstash 部署在弹性云服务器上时导入数据示意图

1. 确保已部署Logstash的弹性云服务器与待导入数据的集群在同一虚拟私有云下,

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"

} }

如果集群开启了安全模式,则需要先下载证书。

a. 在集群基本信息页面下载证书。

4-8 下载证书

b. 将下载的证书存放到部署logstash服务器中。

c. 修改配置文件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"

} }

说明

password:登录安全集群的密码。

4. 执行如下命令将Logstash收集的弹性云服务器的数据导入到集群中。

./bin/logstash -f logstash-simple.conf

5. 登录云搜索服务管理控制台。

6. 在左侧导航栏中,选择“集群管理”,进入集群列表页面。

7. 在集群列表页面中,单击待导入数据的集群“操作”列的“Kibana”。

8. 在Kibana的左侧导航中选择“Dev Tools”,进入Console界面。

4-9 选择 Dev Tools

9. 在已打开的Kibana的Console界面,通过搜索获取已导入的数据。

在Kibana控制台,输入如下命令,搜索数据。查看搜索结果,如果数据与导入数 据一致,表示数据文件的数据已导入成功。

GET myindex/_search