本文介绍在开始本教程前,需要完成的准备工作。

创建专有网络和虚拟交换机

创建专有网络和虚拟交换机的具体步骤,请参见搭建IPv4专有网络

创建阿里云Elasticsearch实例

创建2个阿里云Elasticsearch实例,分别作为Logstash的input和output,创建方式请参见创建阿里云Elasticsearch实例,实例配置如下。实例配置

本教程选择实例版本为通用商业版6.7.0,使用的数据迁移方案为阿里云Elasticsearch 6.7.0 > 阿里云Logstash 6.7.0 > 阿里云Elasticsearch 6.7.0,提供的脚本仅适用于该数据迁移方案,其他方案不保证兼容。

注意
  • 源阿里云Elasticsearch实例需要与Logstash实例在同一VPC下,否则需要配置网络与安全,使用外网访问Logstash,详情请参见配置NAT公网数据传输
  • 目标阿里云Elasticsearch实例需要与Logstash实例在同一区域、同一可用区、同一VPC下,且版本满足兼容性要求
  • 访问阿里云Elasticsearch实例的账号,默认为elastic(本文以此为例)。如果需要使用自建用户,要给予自建用户相应的角色和权限。

开启目标Elasticsearch实例的自动创建索引功能

阿里云Elasticsearch为了保证用户操作数据的安全性,默认将自动创建索引设置为不允许。Logstash在传输数据时,使用的是提交数据的方式创建索引,而不是使用Create index API方式。因此在使用Logstash上传数据前,需要把目标Elasticsearch实例的自动创建索引设置为允许,详情请参见开启自动创建索引

准备数据

进入源阿里云Elasticsearch实例的Kibana控制台,在Dev Tools页面的Console中,执行如下命令创建索引和文档。
注意
  • 进入Kibana控制台的具体步骤,请参见登录Kibana控制台
  • 以下示例以Elasticsearch 6.7.0版本为例,仅供测试,不一定适用于其他版本。
  1. 创建名称为my_index的索引。
    PUT /my_index
    {
        "settings" : {
          "index" : {
            "number_of_shards" : "5",
            "number_of_replicas" : "1"
          }
        },
        "mappings" : {
            "my_type" : {
                "properties" : {
                  "post_date": {          
                       "type": "date"       
                   },
                  "tags": {
                       "type": "keyword"
                   },
                    "title" : {
                        "type" : "text"
                    }
                }
            }
        }
    }
  2. 创建名称为1的文档。
    PUT /my_index/my_type/1?pretty
    {
      "title": "One", 
      "tags": ["ruby"],
      "post_date":"2009-11-15T13:00:00"
    }
  3. 创建名称为2的文档。
    PUT /my_index/my_type/2?pretty
    {
      "title": "Two", 
      "tags": ["ruby"],
      "post_date":"2009-11-15T14:00:00"
    }