輸入內容中最好不要出現 "type":"...",key為type的json。它會覆蓋配置文件中的type。導致type不相等,不執行output es操作。
比如json:{"type":"123"}
logstash配置文件為:
input {
kafka {
bootstrap_servers => "111.111.1.1:9092"
topics => ["test"]
group_id => "test_group_main"
client_id => "test_kafka_client_25"
type => "test_logstash_25"
}
}
filter {
if [type] == "test_logstash_25" {
json {
source => "message"
remove_field => ["message"]
}
}
}
output {
if [type] == "test_logstash_25" { #這里的type值變成了123,取自json。導致不存es庫。
elasticsearch {
hosts=> ["111.111.11.111:9200"]
index=> "my_test-%{+YYYY.MM.dd}"
codec => json
}
}
}
自動重新加載配置
為了可以自動檢測配置文件的變動和自動重新加載配置文件,需要在啟動的時候使用以下命令:
./bin/lagstash -f configfile.conf --config.reload.automatic
1
默認,檢測配置文件的間隔時間是3秒,可以通過以下命令改變
--config.reload.interval <second>
1
如果已經運行了沒有提供自動重啟的logstash,可以發送一個掛起命令給logstash重新加載配置文件:
kill -1 <pid>
1
配置文件自動重載工作原理
檢測到配置文件變化
通過停止所有輸入停止當前pipline
用新的配置創建一個新的管道
檢查配置文件語法是否正確
檢查所有的輸入和輸出是否可以初始化
檢查成功使用新的pipeline替換當前的pipeline,
檢查失敗,使用舊的繼續工作.
在重載過程中,jvm沒有重啟.
注意事項
stdin輸入插件不支持自動重啟.
syslog作為輸入源,當重載配置文件時,會崩潰.請看: https://github.com/logstash-plugins/logstash-input-syslog/issues/40
---------------------
作者:落葉下的光
來源:CSDN
原文:https://blog.csdn.net/qq_32292967/article/details/78622647
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
啟動時加載目錄下所有配置文件:配置文件必須要以 config 為后綴。 yml在指定單個可以執行,批量就不認了!!!
bin/logstash -f ./config/ (bin/logstash -f ./config/*還是啟動第一個)
需要用pipeline.xml
驗證正確性:
bin/logstash -f first-pipeline.conf --config.test_and_exit
bin/logstash -f first-pipeline.conf --config.reload.automatic 自動加載
./bin/logstash --path.settings ./bak.config/ 自己設定config目錄