Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Parsing 知道logstash中文件的结尾_Parsing_Logging_Logstash - Fatal编程技术网

Parsing 知道logstash中文件的结尾

Parsing 知道logstash中文件的结尾,parsing,logging,logstash,Parsing,Logging,Logstash,有没有办法确定logstash是否已经解析了文件底部的所有行。使用logstash解析静态文件,因此logstash在解析完文件中的现有行后不需要等待/运行。 如果logstash中没有此类功能,是否有任何方法可以在不修改日志文件的情况下实现此功能?logstash保留其正在处理(和已处理)的文件的注册表。您可以将该文件中存储的偏移量与文件的实际大小进行比较。如果它们匹配,则“完成”。因此没有内置选项来完成该操作;每次发生日志存储事件时,需要编写一些外部代码来检查注册表。如果这是唯一的解决方案,

有没有办法确定logstash是否已经解析了文件底部的所有行。使用logstash解析静态文件,因此logstash在解析完文件中的现有行后不需要等待/运行。
如果logstash中没有此类功能,是否有任何方法可以在不修改日志文件的情况下实现此功能?

logstash保留其正在处理(和已处理)的文件的注册表。您可以将该文件中存储的偏移量与文件的实际大小进行比较。如果它们匹配,则“完成”。

因此没有内置选项来完成该操作;每次发生日志存储事件时,需要编写一些外部代码来检查注册表。如果这是唯一的解决方案,那么对于每个事件(每行读取),您应该读取sincedb文件并进行比较,对吗?这将是性能下降。让我知道你对此的想法。谢谢。如果你想定期运行logstash,那么就启动它,然后每分钟检查一次注册表,当它被捕获时就杀死它。如果你想做别的事情,描述一下。是的,没错。但是注册表文件的名称(也称为sincedb文件)是随机的,比如“.sincedb_89f324fg4f34f34f34”,所以如何将sincedb文件映射到实际的输入文件。我需要解析不同的文件,不同的文件有不同的sincedb。这不是随机的,而是路径的散列。您可以在脚本中重复该逻辑,也可以将其全部加载。