簡體   English   中英

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"]

暫無
暫無

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM