Filebeat 和 Logstash 有时会读取旧文件
Filebeat and Logstash read old files sometimes
我有一个文件夹,其中包含 2016 年至今的日志文件,并使用 "ignore_older: 48h" 设置了 filebeat。所有文件都会轮换,因此 "log" 始终是新文件,"log.1" 是下一个,依此类推。
日志位于安装在 logstash 主机上的 linux NFS 分区上。
我希望 filebeat 只获取在过去 24 小时内发生更改的日志文件,而忽略较旧的文件。
上述情况会发生,但有时它也会以无特定顺序获取旧文件。
我对 2018 年的一个旧文件执行 运行 "stat" 命令,我看到以下内容:
Access: 2019-03-02 03:15:32.254460960 +0000
Modify: 2018-09-06 13:12:00.331460890 +0000
Change: 2019-02-28 03:34:33.946462475 +0000
我运行 filebeat 版本6.4.2
此数据是否混淆了 Logstash?检查文件是否已更改时,它实际上在看什么。我怎样才能阻止它获取旧文件。
更新:
我的 filebeat 配置如下所示:
- type: log
enabled: true
paths:
- /path/to/my/log/file/log*
fields:
logname: "log.name"
include_lines: ["SOME_TEXT"]
ignore_older: 48h
日志为 CSV 格式。
在另一台主机上我也这样做但是直接使用 logstash,输入配置是这样的:
input {
file {
path => "/path/to/my/log/file/log*"
mode => "tail"
start_position => "beginning"
close_older => "24h"
ignore_older => "2w"
}
}
我这里也有同样的问题。
你可以尝试做两件事,一是像这样在登录路径后去掉*
- /path/to/my/log/file/log
因为 filebeat 将读取旋转的日志文件,即使它在移动到一定年龄之前也是如此。
或者对于 logstash,路径参数是一个数组,如果您知道文件轮换的频率,您可以创建要读取的文件列表:
path => [ "path/to/my/log/file.log", "/path/to/my/log/file1.log", "path/to/my/log/file2.log"]
我有一个文件夹,其中包含 2016 年至今的日志文件,并使用 "ignore_older: 48h" 设置了 filebeat。所有文件都会轮换,因此 "log" 始终是新文件,"log.1" 是下一个,依此类推。 日志位于安装在 logstash 主机上的 linux NFS 分区上。
我希望 filebeat 只获取在过去 24 小时内发生更改的日志文件,而忽略较旧的文件。
上述情况会发生,但有时它也会以无特定顺序获取旧文件。
我对 2018 年的一个旧文件执行 运行 "stat" 命令,我看到以下内容:
Access: 2019-03-02 03:15:32.254460960 +0000
Modify: 2018-09-06 13:12:00.331460890 +0000
Change: 2019-02-28 03:34:33.946462475 +0000
我运行 filebeat 版本6.4.2
此数据是否混淆了 Logstash?检查文件是否已更改时,它实际上在看什么。我怎样才能阻止它获取旧文件。
更新:
我的 filebeat 配置如下所示:
- type: log
enabled: true
paths:
- /path/to/my/log/file/log*
fields:
logname: "log.name"
include_lines: ["SOME_TEXT"]
ignore_older: 48h
日志为 CSV 格式。
在另一台主机上我也这样做但是直接使用 logstash,输入配置是这样的:
input {
file {
path => "/path/to/my/log/file/log*"
mode => "tail"
start_position => "beginning"
close_older => "24h"
ignore_older => "2w"
}
}
我这里也有同样的问题。
你可以尝试做两件事,一是像这样在登录路径后去掉*
- /path/to/my/log/file/log
因为 filebeat 将读取旋转的日志文件,即使它在移动到一定年龄之前也是如此。
或者对于 logstash,路径参数是一个数组,如果您知道文件轮换的频率,您可以创建要读取的文件列表:
path => [ "path/to/my/log/file.log", "/path/to/my/log/file1.log", "path/to/my/log/file2.log"]