0
我設法通過將sincedb_path
指向NUL
(Windows環境)並在開始時設置start_position
來強制Logstash重新加載整個文件。這裏是我的file input
配置:從頭重新加載相同的文件,而不重新啓動logstash
input {
file {
path => "myfile.csv"
start_position => beginning
ignore_older => 0
type => "my_document_type"
sincedb_path => "NUL"
stat_interval => 1
}
}
文件實際上是重新加載每次我重新啓動Logstash並且每次被修改時的時間,但我想在stat_interval
提到它重載每秒。
我也需要它,即使沒有修改重新加載和重新啓動logstash因爲我在過濾器中添加日期基於現場,我每天都需要相同的數據與更新date_field
:
filter {
csv {
columns => ["MyFirstColumn", "MySecondColumn"]
separator => ";"
add_field => {
"date_field" => "%{+ddMMyyy}"
}
}
}
這是預期的行爲的一個例子:
文件內容:
Column A;Column B
Value X;Value Y
數據發送到彈性搜索索引:
Column A : Value X, Column B : Value Y, date_field : 05122016
之後的日子,即使沒有改變我想下面的數據添加到同一個指數Elasticsearch文件:
Column A : Value X, Column B : Value Y, date_field : 06122016
什麼是文件的內容可用?它有很多或只有一行? – luk
該文件包含許多行(每行中以分號分隔的值) – M3HD1
如果涉及到文件,如果要添加新行,它應該起作用並觸發Logstash讀取新行。在你的情況下,你正在更新**現有**線?如果根據我的知識,Logstash必須重新啓動。如果添加新行 - 似乎更自然 - 不需要重新啓動Logstash或設置'sincedb_path' – luk