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