文档首页/ 云搜索服务 CSS/ 常见问题/ CSS集群迁移/ 使用CSS Logstash迁移Elasticsearch/OpenSearch的配置文件样例
更新时间:2026-04-23 GMT+08:00
分享

使用CSS Logstash迁移Elasticsearch/OpenSearch的配置文件样例

本文以源端和目的端都是CSS服务的Elasticsearch/OpenSearch集群为例,介绍使用CSS服务的Logstash进行集群迁移的配置文件样例。

查看集群类型

  1. 登录云搜索服务管理控制台
  2. 在左侧导航栏,选择“集群管理 > Elasticsearch”
  3. 在集群列表,选择源端或目的端Elasticsearch集群,单击集群名称,进入详情页面。
  4. 选择“概览”页签,在“网络信息”查看集群是否开启安全模式、是否开启HTTPS访问。如图1所示,表示该Elasticsearch集群是使用HTTPS访问的安全集群。
    图1 查看集群安全模式
    表1 不同集群类型之间进行数据迁移的Logstash配置文件样例

    迁移场景

    Logstash配置文件样例

    非安全集群之间进行数据迁移

    非安全集群的Logstash配置文件样例

    使用HTTP访问的安全集群之间进行数据迁移

    安全集群(使用HTTP访问)的Logstash配置文件样例

    使用HTTPS访问的安全集群之间进行数据迁移

    安全集群(使用HTTPS访问)的Logstash配置文件样例

    当源端和目的端集群的安全模式不同时,可以参考本文样例中的input和output模块自由组合出合适的配置文件。

非安全集群的Logstash配置文件样例

当源端和目的端的Elasticsearch/OpenSearch集群都是非安全模式时,Logstash配置文件示例:

input {
    elasticsearch {
        # 源端集群的节点访问地址,无需添加协议
        hosts => ["xxx.xxx.xxx.xxx:9200", "xxx.xxx.xxx.xxx:9200"]
        # 待迁移的源索引名称
        index => "xxx,xxx"
        docinfo => true
    }
}

filter {
    # 移除一些Logstash事件添加的元数据字段
    mutate {
        remove_field => ["@timestamp", "@version"]
    }
}

output {
    elasticsearch {
        # 目的端集群的节点访问地址,无需添加协议
        hosts => ["xxx.xxx.xxx.xxx:9200", "xxx.xxx.xxx.xxx:9200"]
        # 事件写入的索引配置,以下配置表示保留源数据的索引名称、文档类型和文档id
        index => "%{[@metadata][_index]}"
        document_type => "%{[@metadata][_type]}"
        document_id => "%{[@metadata][_id]}"
    }
}

安全集群(使用HTTP访问)的Logstash配置文件样例

当源端和目的端的Elasticsearch/OpenSearch集群都是安全模式且未启用HTTPS访问时,Logstash配置文件示例:

input {
    elasticsearch {
        # 源端集群的节点访问地址,无需添加协议
        hosts => ["xxx.xxx.xxx.xxx:9200", "xxx.xxx.xxx.xxx:9200"]
        # 待迁移的源索引名称
        index => "xxx,xxx"
        docinfo => true
        user => "xxx"           # 访问集群的用户名
        password => "xxx"       # 用户名对应的密码
    }
}

filter {
    # 移除一些Logstash事件添加的元数据字段
    mutate {
        remove_field => ["@timestamp", "@version"]
    }
}

output {
    elasticsearch {
        # 目的端集群的节点访问地址,无需添加协议
        hosts => ["xxx.xxx.xxx.xxx:9200", "xxx.xxx.xxx.xxx:9200"]
        # 事件写入的索引配置,以下配置表示保留源数据的索引名称、文档类型和文档id
        index => "%{[@metadata][_index]}"
        document_type => "%{[@metadata][_type]}"
        document_id => "%{[@metadata][_id]}"
        user => "xxx"           # 访问集群的用户名
        password => "xxx"       # 用户名对应的密码
    }
}

安全集群(使用HTTPS访问)的Logstash配置文件样例

当源端和目的端的Elasticsearch/OpenSearch集群都是安全模式且开启了HTTPS访问时,Logstash配置文件示例:

input {
    elasticsearch {
        # 源端集群的节点访问地址,无需添加协议
        hosts => ["xxx.xxx.xxx.xxx:9200", "xxx.xxx.xxx.xxx:9200"]
        # 待迁移的源索引名称
        index => "xxx,xxx"
        docinfo => true
        user => "xxx"           # 访问集群的用户名
        password => "xxx"       # 用户名对应的密码
        ssl => true             # 启用SSL连接
        ca_file => "/opt/logstash/extend/certs"     # 用于认证源端集群的CA证书文件路径
    }
}

filter {
    # 移除一些Logstash事件添加的元数据字段
    mutate {
        remove_field => ["@timestamp", "@version"]
    }
}

output {
    elasticsearch {
        # 目的端集群的节点访问地址,无需添加协议
        hosts => ["xxx.xxx.xxx.xxx:9200", "xxx.xxx.xxx.xxx:9200"]
        # 事件写入的索引配置,以下配置表示保留源数据的索引名称、文档类型和文档id
        index => "%{[@metadata][_index]}"
        document_type => "%{[@metadata][_type]}"
        document_id => "%{[@metadata][_id]}"
        user => "xxx"           # 访问集群的用户名
        password => "xxx"       # 用户名对应的密码
        ssl => true             # 启用SSL连接
        cacert => "/opt/logstash/extend/certs"       # 用于认证目的端集群的CA证书文件路径
        ssl_certificate_verification => false        # 目的端集群是否启用安全证书认证
    }
}

相关文档