Logstash同步ES索引数据
一,软件下载地址
https://www.elastic.co/cn/downloads/past-releases#logstash-oss
建议使用版本和elasticsearch版本一致,本次教程使用7.9.3版本
二、安装配置
bash
tar -zxvf logstash-oss-7.9.3.tar.gz
cd logstash-7.9.3/config
cp logstash-sample.conf logstash.conf
配置文件 logstash.conf 内容:
bash
input{
elasticsearch{
# 源端地址
hosts => ["172.16.7.77:9200","172.16.7.78:9200","172.16.7.79:9200"]
# 安全集群配置登录用户名密码
user => "admin"
password => "12345678"
# 需要迁移的索引列表,以逗号分隔,基于机器实际信息填写,-.*表示排除.开始的索引。
# index =>"know_info,share_info,test_01,logistics_keyword,notice,ask_info,shop_v2,pinyin2,jjkl_company,cmm_resources_info,user_test,demo,employment,auth_log,machine_info,look,down_num,stars,notice_project,nginx_access_log"
index => "nginx_access_log"
# 以下三项保持默认即可,包含线程数和迁移数据大小和logstash jvm配置相关
docinfo=>true
# 默认不变,如果需要增加迁移速度可以适当调高以下两个参数,但是需要保证机器配置
slices => 3
size => 3000
# 使用https配置,华为云需要指定ca_file ,文件在控制台下载自行上传
# SSL默认为false
ssl => true
ca_file => "/opt/es/logstash-7.9.3/CloudSearchService-dev.cer"
}
}
filter {
# 去掉一些logstash自己加的字段
mutate {
remove_field => ["@timestamp", "@version"]
}
}
output{
elasticsearch{
# 目的端es地址
hosts => ["172.16.10.66:9200"]
# 目的端索引名称,以下配置为和源端保持一致
user => "elastic"
password => "123456789"
index => "%{[@metadata][_index]}"
# 目的端索引type,以下配置为和源端保持一致
# document_type => "%{[@metadata][_type]}"
# 目标端数据的_id,如果不需要保留原_id,可以删除以下这行,删除后性能会更好
document_id => "%{[@metadata][_id]}"
ilm_enabled => false
manage_template => false
# inptu和output的证书写法不一样
# cacert => "/opt/logstash-7.9.3/config/CloudSearchService.cer"
}
}
校验配置文件:bin/logstash -f config/logstash.conf -t
启动:bin/logstash -f config/logstash.conf