使用Logstash导入数据到Elasticsearch Logstash部署在弹性云主机上时导入数据 当Logstash部署在同一VPC的弹性云主机时,导入数据的流程说明如下图所示。 Logstash部署在弹性云主机上时导入数据示意图 1.确保已部署Logstash的弹性云主机与待导入数据的集群在同一虚拟私有云下,已开放安全组的9200端口的外网访问权限,且弹性云主机已绑定弹性IP。 说明 如果同一个VPC内有多台服务器,只要其中一台绑定了弹性IP,其他的服务器可以不需要绑定弹性IP。通过绑定弹性IP的节点跳转到部署Logstash的节点即可 。 如果有专线或者VPN,也不需要绑定弹性IP。 2.使用PuTTY登录弹性云主机。 例如此服务器中存储了需要导入的数据文件“access20181029log”,文件存储路径为“/tmp/accesslog/”,此数据文件中包含的数据如下所示: 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 indexappend 66232.6 docs/s All Median Throughput indexappend 66735.3 docs/s All Max Throughput indexappend 67745.6 docs/s All 50th percentile latency indexappend 510.261 ms 3.执行如下命令在Logstash的安装目录下新建配置文件logstashsimple.conf。 cd / / vi logstashsimple.conf 在配置文件logstashsimple.conf中输入如下内容。 input { 数据所在的位置 } filter { 数据的相关处理 } output { elasticsearch{ hosts > " "} } input:指明了数据的来源。实际请根据用户的具体情况来设置。 filter:对日志进行了提取和处理,将非结构化信息转换为结构化信息。 output:指明了数据的目的地址。 为集群中节点的内网访问地址和端口号。 当集群包含多个节点时,为了避免节点故障,建议将上述命令中 替换为该集群中多个节点的内网访问地址和端口号,多个节点的内网访问地址和端口号之间用英文逗号隔开,填写格式请参见如下示例。 hosts > ["192.168.0.81:9200","192.168.0.24:9200"] 当集群只包含一个节点时,填写格式请参见如下示例。 hosts > "192.168.0.81:9200" 以步骤2中“/tmp/accesslog/”的数据文件为例,输入数据文件从首行开始,且过滤条件保持为空,即不做任何数据处理操作。需导入数据的集群,其节点内网访问地址和端口号为“192.168.0.81:9200”。导入数据的索引名称为“myindex”。配置文件的示例如下所示,配置文件按实际数据情况修改完成后,输入“:wq”保存。 input { file{ path > "/tmp/accesslog/" startposition > "beginning" } } filter { } output { elasticsearch { hosts > "192.168.0.81:9200" index > "myindex" documenttype > "mytype" } } 如果集群开启了安全模式,则需要先下载证书。 a. 在集群基本信息页面下载证书。 详见下图:下载证书 b. 将下载的证书存放到部署logstash服务器中。 c. 修改配置文件logstashsimple.conf。 以步骤2中“/tmp/accesslog/”的数据文件为例,输入数据文件从首行开始,且过滤条件保持为空,即不做任何数据处理操作。跳转主机的公网IP和端口号为“192.168.0.227:9200”。导入数据的索引名称为“myindex”,证书存放路径为“/logstash/logstash6.8/config/CloudSearchService.cer”。配置文件的示例如下所示,配置文件按实际数据情况修改完成后,输入“:wq”保存。 input{ file { path > "/tmp/accesslog/" startposition > "beginning" } } filter { } output{ elasticsearch{ hosts > [" index > "myindex" user > "admin" password > "" cacert > "/logstash/logstash6.8/config/CloudSearchService.cer" } } 说明 password:登录安全集群的密码 。 4.执行如下命令将Logstash收集的弹性云主机的数据导入到集群中。 ./bin/logstash f logstashsimple.conf 5.登录云搜索服务管理控制台。 6.在左侧导航栏中,选择“集群管理”,进入集群列表页面。 7.在集群列表页面中,单击待导入数据的集群“操作”列的“Kibana”。 8.在Kibana的左侧导航中选择“Dev Tools”,单击“Get to work”,进入Console界面。 9.在已打开的Kibana的Console界面,通过搜索获取已导入的数据。 在Kibana控制台,输入如下命令,搜索数据。查看搜索结果,如果数据与导入数据一致,表示数据文件的数据已导入成功。 GET myindex/search