Logstash配置文件樣例
更新時間 2023-12-10 22:59:29
最近更新時間: 2023-12-10 22:59:29
分享文章
本章節主要介紹Logstash配置文件樣例。
說明以下樣例以源端、目的端的elasticsearch集群訪問類型一樣為例。訪問類型一樣指的是同樣是非安全集群或者同樣是安全集群沒有開啟HTTPS訪問。
如果源端、目的端的elasticsearch集群訪問類型不一樣,可以由下面的3個樣例文件的input和output部分自由組合出您需要的配置文件。
非安全集群
當創建的Elasticsearch類型集群未開啟安全模式時,接入樣例可參考如下。
input {
elasticsearch {
# 源端ES地址
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 {
# 目的端ES地址
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訪問)
當創建的集群開啟了安全模式,但是關閉了HTTPS訪問,接入樣例可參考如下。
input {
elasticsearch {
# 源端用戶名
user => "xxx"
# 源端密碼
password => "xxx"
# 源端ES的地址
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"
# 目的端ES地址
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訪問)
當創建的集群開啟了安全模式,并且開啟了HTTPS訪問,接入樣例可參考如下。
input {
elasticsearch {
# 源端用戶名
user => "xxx"
# 源端密碼
password => "xxx"
# 源端ES的地址,不需要添加協議,添加HTTPS協議會導致報錯
hosts => ["xx.xx.xx.xx:9200", "xx.xx.xx.xx:9200"]
# 需要遷移的索引列表,以逗號分隔
index => "xxx,xxx,xxx"
# 源端ES證書,云上的集群保持以下不變;自建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"
# 目的端ES地址,不需要添加協議
hosts => ["xx.xx.xx.xx:9200", "xx.xx.xx.xx:9200"]
# 目的端索引名稱,以下配置為和源端保持一致
index => "%{[@metadata][_index]}"
# 目的數據的_id,如果不需要保留原_id,可以刪除以下這行,刪除后性能會更好
document_id => "%{[@metadata][_id]}"
# 源端ES證書,云上的集群保持以下不變;自建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
}
}