Logstash 每天摄取 JSON 个文件
Logstash Ingesting Daily JSON Files
我在一个设置中工作,Logstash 将在本地特定目录中查找 JSON 文件以解析并转发到 Elasticsearch。这些文件将每天生成并放置在 Logstash 监控的目录中,因此每天都会有一个新的唯一命名的 JSON 文件。
我的输入是这样的:
input {
file {
path => "/home/path_to_json/*.json"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
我的问题是,如何将 Logstash 配置为仅摄取 latest/newest 文件,而不是每次转储新文件时目录中的所有其他内容,这样它就不会在 Elasticsearch 上复制数据?这是文件插件的默认行为吗?或者我应该在我的输入上设置任何新的东西吗?
提前致谢!
将 sincedb_path
设置为 /dev/null
将确保无论何时重新启动它都不会 remember
任何内容,并从头开始重新阅读所有内容。您可能想删除此行。
将 start_position
设置为 end
将使其仅考虑 lines/files
添加 在 logstash 启动后(第一次)。
通过这两项更改,您应该只会摄取新的 data
。
我在一个设置中工作,Logstash 将在本地特定目录中查找 JSON 文件以解析并转发到 Elasticsearch。这些文件将每天生成并放置在 Logstash 监控的目录中,因此每天都会有一个新的唯一命名的 JSON 文件。
我的输入是这样的:
input {
file {
path => "/home/path_to_json/*.json"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
我的问题是,如何将 Logstash 配置为仅摄取 latest/newest 文件,而不是每次转储新文件时目录中的所有其他内容,这样它就不会在 Elasticsearch 上复制数据?这是文件插件的默认行为吗?或者我应该在我的输入上设置任何新的东西吗?
提前致谢!
将 sincedb_path
设置为 /dev/null
将确保无论何时重新启动它都不会 remember
任何内容,并从头开始重新阅读所有内容。您可能想删除此行。
将 start_position
设置为 end
将使其仅考虑 lines/files
添加 在 logstash 启动后(第一次)。
通过这两项更改,您应该只会摄取新的 data
。