[英]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"]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.