更新时间:2025-10-21 GMT+08:00
使用CSS Logstash迁移Elasticsearch集群的Logstash配置文件样例
本文以源端和目的端是相同类型的CSS Elasticsearch集群为例,介绍使用CSS服务的Logstash进行集群迁移的配置文件样例。当源端和目的端的Elasticsearch集群类型不同时,可以参考本文样例中的input和output模块自由组合出合适的配置文件。
查看集群类型
- 登录云搜索服务管理控制台。
- 在左侧导航栏,选择“集群管理 > Elasticsearch”。
- 在集群列表,选择源端或目的端Elasticsearch集群,单击集群名称,进入详情页面。
- 选择“概览”页签,在配置信息模块查看集群是否开启安全模式,是否开启HTTPS访问。如图1所示,表示该Elasticsearch集群是使用HTTPS访问的安全集群。
表1 不同集群类型之间进行数据迁移的Logstash配置文件样例 迁移场景
Logstash配置文件样例
非安全集群之间进行数据迁移
使用HTTP访问的安全集群之间进行数据迁移
使用HTTPS访问的安全集群之间进行数据迁移
非安全集群的Logstash配置文件样例
当源端和目的端的Elasticsearch集群都是非安全模式时,Logstash配置文件可参考如下。
input {
elasticsearch {
# 源端Elasticsearch地址
hosts => ["xx.xx.xx.xx:9200", "xx.xx.xx.xx:9200"]
# 需要迁移的索引列表,以逗号分隔
index => "xxx,xxx,xxx"
# 以下保持默认即可
docinfo => true
}
}
filter {
# 去掉一些logstash自己加的字段
mutate {
remove_field => ["@timestamp", "@version"]
}
}
output {
elasticsearch {
# 目的端Elasticsearch地址
hosts => ["xx.xx.xx.xx:9200", "xx.xx.xx.xx:9200"]
# 目的端索引名称,以下配置为和源端保持一致
index => "%{[@metadata][_index]}"
# 目的数据的_id,如果不需要保留原_id,可以删除以下这行,删除后性能会更好
document_id => "%{[@metadata][_id]}"
# 以下保持默认即可
manage_template => false
ilm_enabled => false
}
}
安全集群(使用HTTP访问)的Logstash配置文件样例
当源端和目的端的Elasticsearch集群都是安全模型且未启用HTTPS访问时,Logstash配置文件可参考如下。
input {
elasticsearch {
# 源端用户名
user => "xxx"
# 源端密码
password => "xxx"
# 源端Elasticsearch的地址
hosts => ["xx.xx.xx.xx:9200", "xx.xx.xx.xx:9200"]
# 需要迁移的索引列表,以逗号分隔
index => "xxx,xxx,xxx"
# 以下保持默认即可
docinfo => true
}
}
filter {
# 去掉一些logstash自己加的字段
mutate {
remove_field => ["@timestamp", "@version"]
}
}
output {
elasticsearch {
# 目的端用户名
user => "xxx"
# 目的端密码
password => "xxx"
# 目的端Elasticsearch地址
hosts => ["xx.xx.xx.xx:9200", "xx.xx.xx.xx:9200"]
# 目的端索引名称,以下配置为和源端保持一致
index => "%{[@metadata][_index]}"
# 目的数据的_id,如果不需要保留原_id,可以删除以下这行,删除后性能会更好
document_id => "%{[@metadata][_id]}"
# 以下保持默认即可
manage_template => false
ilm_enabled => false
}
}
安全集群(使用HTTPS访问)的Logstash配置文件样例
当源端和目的端的Elasticsearch集群都是安全模式且开启了HTTPS访问时,Logstash配置文件可参考如下。
input {
elasticsearch {
# 源端用户名
user => "xxx"
# 源端密码
password => "xxx"
# 源端Elasticsearch的地址
hosts => ["xx.xx.xx.xx:9200", "xx.xx.xx.xx:9200"]
# 需要迁移的索引列表,以逗号分隔
index => "xxx,xxx,xxx"
# 源端Elasticsearch集群的证书,云上的集群保持以下值不变;自建logstash集群可以在集群详情页面下载证书。这里输入对应的证书路径+证书名称。
ca_file => "/rds/datastore/logstash/v7.10.0/package/logstash-7.10.0/extend/certs"
# 以下保持默认即可
docinfo => true
ssl => true
}
}
filter {
# 去掉一些logstash自己加的字段
mutate {
remove_field => ["@timestamp", "@version"]
}
}
output {
elasticsearch {
# 目的端用户名
user => "xxx"
# 目的端密码
password => "xxx"
# 目的端Elasticsearch地址
hosts => ["xx.xx.xx.xx:9200", "xx.xx.xx.xx:9200"]
# 目的端索引名称,以下配置为和源端保持一致
index => "%{[@metadata][_index]}"
# 目的数据的_id,如果不需要保留原_id,可以删除以下这行,删除后性能会更好
document_id => "%{[@metadata][_id]}"
# 目的端Elasticsearch集群的证书,云上的集群保持以下值不变;自建logstash集群,则需要在集群详情页面下载证书到节点里,这里输入对应的证书路径+证书名称
cacert => "/rds/datastore/logstash/v7.10.0/package/logstash-7.10.0/extend/certs"
# 以下保持默认即可
manage_template => false
ilm_enabled => false
ssl => true
ssl_certificate_verification => false
}
}
父主题: CSS集群迁移
