這個插件可以從指定的目錄或者文件讀取內容,輸入到管道處理,也算是logstash的核心插件了,大多數的使用場景都會用到這個插件,因此這里詳細講述下各個參數的含義與使用
1 path
是必須的選項,每一個file配置,都至少有一個path
- 文件的路徑名需要時絕對路徑
- 支持globs寫法
- 如果想要監聽多個目標文件可以改成數組
2 exclude
是不想監聽的文件,logstash會自動忽略該文件的監聽。配置的規則與path類似,支持字符串或者數組,但是要求必須是絕對路徑。
3 start_position
是監聽的位置,默認是end,即一個文件如果沒有記錄它的讀取信息,則從文件的末尾開始讀取,也就是說,僅僅讀取新添加的內容。對于一些更新的日志類型的監聽,通常直接使用end就可以了;相反,beginning就會從一個文件的頭開始讀取。但是如果記錄過文件的讀取信息,這個配置也就失去作用了。
4 sincedb_path
這個選項配置了默認的讀取文件信息記錄在哪個文件中,默認是按照文件的inode等信息自動生成。其中記錄了inode、主設備號、次設備號以及讀取的位置。因此,如果一個文件僅僅是重命名,那么它的inode以及其他信息就不會改變,因此也不會重新讀取文件的任何信息。類似的,如果復制了一個文件,就相當于創建了一個新的inode,如果監聽的是一個目錄,就會讀取該文件的所有信息。
5 其他的關于掃描和檢測的時間,按照默認的來就好了,如果頻繁創建新的文件,想要快速監聽,那么可以考慮縮短檢測的時間。
6 add_field
就是增加一個字段,
file {add_field => {"test"=>"test"}path => "D:/tools/logstash/path/to/groksample.log"start_position => beginning}
7 tags
用于增加一些標簽,這個標簽可能在后續的處理中起到標志的作用
8 delimiter
是事件分行的標志,如果配置成123,那么就會如下所示。這個選項,通常在多行事件中比較有用。
9.ignore_older
- 值類型為數字或string_duration
- 此設置沒有默認值。
當文件輸入發現在指定的持續時間(如果指定了數字,則為秒)之前最后修改的文件時,將忽略該文件。發現之后,如果修改了忽略的文件,則不再忽略它,并且讀取任何新數據。默認情況下,此選項處于禁用狀態。請注意,該單位以秒為單位。
?
sincedb_clean_after
編輯
- 值類型為數字或string_duration
- 此設置的默認值為“ 2周”。
- 如果指定了一個數字,則將其解釋為天,并且可以為十進制,例如0.5為12小時。
現在,sincedb記錄具有與其關聯的最后一個活動時間戳記。如果在過去N天內未在跟蹤文件中檢測到任何更改,則它的sincedb跟蹤記錄將過期,并且不會保留。此選項有助于防止索引節點回收問題。
?
sincedb_path
編輯
- 值類型為字符串
- 此設置沒有默認值。
sincedb數據庫文件的路徑(保留受監視日志文件的當前位置的路徑),該路徑將被寫入磁盤。默認情況下會將sincedb文件寫入到<path.data>/plugins/inputs/file
?NOTE:它必須是文件路徑,而不是目錄路徑