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

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

创建专有网络VPC(Virtual Private Cloud)和虚拟交换机的具体步骤请参见搭建IPv4专有网络

创建阿里云Elasticsearch实例

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

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

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

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

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

准备数据

进入源阿里云ES的Kibana控制台,在Dev Tools页面的Console中,分别执行如下命令创建索引和文档。
注意

进入Kibana控制台的具体步骤请参见登录Kibana控制台

以下示例以阿里云ES 6.7版本为例,仅供测试,不一定适用于其他版本。

  • 创建名称为my_index的索引
    PUT /my_index
    {
        "settings" : {
          "index" : {
            "number_of_shards" : "5",
            "number_of_replicas" : "1"
          }
        },
        "mappings" : {
            "my_type" : {
                "properties" : {
                  "post_date": {          
                       "type": "date"
                        "dynamic" : "true"       
                   },
                  "tags": {
                       "type": "keyword"
                   },
                    "title" : {
                        "type" : "text",
                        "analyzer" : "cjk"
                    }
                }
            }
        }
    }
  • 创建名称为1的文档
    PUT /my_index/my_type/1?pretty
    {
      "title": "One", 
      "tags": ["ruby"],
      "post_date":"2009-11-15T13:00:00"
    }
  • 创建名称为2的文档
    PUT /my_index/my_type/2?pretty
    {
      "title": "Two", 
      "tags": ["ruby"],
      "post_date":"2009-11-15T14:00:00"
    }