elasticsearch logstash中ignore_older和sincedb_路径之间的差异,elasticsearch,logstash,elasticsearch,Logstash" /> elasticsearch logstash中ignore_older和sincedb_路径之间的差异,elasticsearch,logstash,elasticsearch,Logstash" />

elasticsearch logstash中ignore_older和sincedb_路径之间的差异

elasticsearch logstash中ignore_older和sincedb_路径之间的差异,elasticsearch,logstash,elasticsearch,Logstash,我正在从csv文件收集数据。因为数据应该只导入一次,所以我需要在logstash中为它设置一些配置。 下面两个配置的工作方式相同,只带来新添加的行。他们之间有什么区别吗 1. start_position => "beginning" ignore_older => 0 2. sincedb_path => "/dev/null" start_position => "end" 从文件中: 忽视年长者 当文件输入发现在 指定的时间跨度(以秒为单位),将忽略该文件。在

我正在从csv文件收集数据。因为数据应该只导入一次,所以我需要在logstash中为它设置一些配置。 下面两个配置的工作方式相同,只带来新添加的行。他们之间有什么区别吗

1.
start_position => "beginning"
ignore_older => 0 

2.
sincedb_path => "/dev/null"
start_position => "end"

从文件中:

忽视年长者

当文件输入发现在 指定的时间跨度(以秒为单位),将忽略该文件。在它结束之后 发现,如果被忽略的文件被修改,它将不再被忽略,并且 读取任何新数据。默认值为24小时

起始位置

选择Logstash最初读取文件的位置:在开始处 或者在最后。默认行为将文件视为实时流和 因此从最后开始。如果有要导入的旧数据,请设置 这是一个开始

此选项仅修改第一次接触文件的情况 以前未见过的新文件,即没有当前位置的文件 记录在由Logstash读取的sincedb文件中。如果一个文件已经 如前所述,此选项无效,位置已记录 将使用sincedb文件中的

因此,在您的案例1中:

您将从头开始读取文件。如果您有旧的日志文件,您应该这样做,否则它们将不会被解析,因为logstash将等待附加到文件中。您还包括所有文件。将ignore_older设置为0将包含所有内容。如果您想排除所有早于X的内容,则需要指定此选项,例如,当您想重新分析所有文件,但不关心早于2周的日志时

您的用例编号2:

您将从末尾开始读取所有文件。由于您正在为sincedb路径置零,这意味着您将在每次重新启动时执行此操作,因此在您的logstash关闭时附加的日志将被忽略,因为logstash将不记得它在文件中的位置

为什么您会看到相同的结果:

这些选项仅在启动和新建文件时生效。在你启动logstash之后,他们在做什么都没有区别。如果您从未关闭它,维护或类似的,您也不会看到任何差异

然而,第一个用例更好。它将重新分析所有新文件,因为您指定了0,它还记得它在哪里留下的,这将是有用的,当您关闭您的日志存储一点。第二个用例将在重启时丢失数据。它还将忽略上次修改后24小时以上的所有文件


在此处阅读有关日志存储文件输入的更多信息:

来自文档:

忽视年长者

当文件输入发现在 指定的时间跨度(以秒为单位),将忽略该文件。在它结束之后 发现,如果被忽略的文件被修改,它将不再被忽略,并且 读取任何新数据。默认值为24小时

起始位置

选择Logstash最初读取文件的位置:在开始处 或者在最后。默认行为将文件视为实时流和 因此从最后开始。如果有要导入的旧数据,请设置 这是一个开始

此选项仅修改第一次接触文件的情况 以前未见过的新文件,即没有当前位置的文件 记录在由Logstash读取的sincedb文件中。如果一个文件已经 如前所述,此选项无效,位置已记录 将使用sincedb文件中的

因此,在您的案例1中:

您将从头开始读取文件。如果您有旧的日志文件,您应该这样做,否则它们将不会被解析,因为logstash将等待附加到文件中。您还包括所有文件。将ignore_older设置为0将包含所有内容。如果您想排除所有早于X的内容,则需要指定此选项,例如,当您想重新分析所有文件,但不关心早于2周的日志时

您的用例编号2:

您将从末尾开始读取所有文件。由于您正在为sincedb路径置零,这意味着您将在每次重新启动时执行此操作,因此在您的logstash关闭时附加的日志将被忽略,因为logstash将不记得它在文件中的位置

为什么您会看到相同的结果:

这些选项仅在启动和新建文件时生效。在你启动logstash之后,他们在做什么都没有区别。如果您从未关闭它,维护或类似的,您也不会看到任何差异

然而,第一个用例更好。它将重新分析所有新文件,因为您指定了0,它还记得它在哪里留下的,这将是有用的,当您关闭您的日志存储一点。第二个用例将在重启时丢失数据。它还将忽略上次修改后24小时以上的所有文件


在此处阅读有关日志存储文件输入的更多信息:

非常感谢它的帮助。在哪里可以忽略较旧的保存文件的位置,并且可以修改或删除它?因此,请重新加载已使用ignore older config加载的所有数据。即使我将sincedb_path设置为/var/log/sincedb.log这样的特定位置,也会丢失所有数据?@J.Done否,文件输入的sincedb路径负责记录您在文件中遗漏的位置。因此,在重新启动时,将读取该文件并确定从何处提取该部分。因此,如果使用sincedb path进行文件输入,我们无法判断第一种情况是否更好。非常感谢它的帮助。在哪里可以忽略较旧的保存文件的位置,并且可以修改或删除它?因此,请重新加载已使用ignore older config加载的所有数据。即使我将sincedb_path设置为/var/log/sincedb.log这样的特定位置,也会丢失所有数据?@J.Done否,文件输入的sincedb路径负责记录您在文件中遗漏的位置。因此,在重新启动时,将读取该文件并确定从何处提取该部分。如果使用sincedb path进行文件输入,则无法判断第一种情况是否更好。