logstash-input-file 配置屬性詳解
Logstash 使用一個名叫 FileWatch 的 Ruby Gem 庫來監聽檔案變化。這個庫支援glob 展開檔案路徑,而且會記錄一個叫 .sincedb 的資料庫檔案來跟蹤被監聽的日誌檔案的當前讀取位置。所以,不要擔心 logstash 會漏過你的資料。
sincedb 檔案中記錄了每個被監聽的檔案的 inode, major number, minor number 和pos。
配置示例:
input {
file {
path => ["/var/log/*.log", "/var/log/message"]
type => "system"
start_position => "beginning"
}
}
解釋
有一些比較有用的配置項,可以用來指定 FileWatch 庫的行為:
- discover_interval
logstash 每隔多久去檢查一次被監聽的 path 下是否有新檔案。預設值是 15秒。 - exclude
不想被監聽的檔案可以排除出去,這裡跟 path 一樣支援 glob 展開。 - close_older
一個已經監聽中的檔案,如果超過這個值的時間內沒有更新內容,就關閉監聽它的檔案控制程式碼。預設是 3600 秒,即一小時。 - ignore_older
在每次檢查檔案列表的時候,如果一個檔案的最後修改時間超過這個值,就忽略這個檔案。預設是 86400 秒,即一天。 - sincedb_path
如果你不想用預設的 $HOME/.sincedb (Windows 平臺上在
C:\Windows\System32\config\systemprofile.sincedb ),可以通過這個配置定義 sincedb 檔案到其他位置。 - sincedb_write_interval
logstash 每隔多久寫一次 sincedb 檔案,預設是 15 秒。 - stat_interval
logstash 每隔多久檢查一次被監聽檔案狀態(是否有更新),預設是 1 秒。 - start_position
logstash 從什麼位置開始讀取檔案資料,預設是結束位置,也就是說 logstash 程式會以類似 tail -F 的形式執行。如果你是要匯入原有資料,把這個設定改成”beginning”,logstash 程式就從頭開始讀取,類似 less +F 的形式執行。
注意
1、通常你要匯入原有資料進 Elasticsearch 的話,你還需要 filter/date 外掛來修改預設的”@timestamp” 欄位值。稍後會學習這方面的知識。
2、FileWatch 只支援檔案的絕對路徑,而且會不自動遞迴目錄。所以有需要的話,請用陣列方式都寫明具體哪些檔案。
3、LogStash::Inputs::File 只是在程式執行的註冊階段初始化一個 FileWatch 物件。所以它不能支援類似 fluentd 那樣的
path => "/path/to/%{+yyyy/MM/dd/hh}.log"
寫法。達到相同目的,你只能寫成
path =>"/path/to/*/*/*/*.log"
FileWatch 模組提供了一個稍微簡單一點的寫法:
/path/to/**/*.log
用 ** 來縮寫表示遞迴全部子目錄。
4、start_position 僅在該檔案從未被監聽過的時候起作用。如果 sincedb 檔案中已經有這個檔案的 inode 記錄了,那麼 logstash 依然會從記錄過的 pos開始讀取資料。所以重複測試的時候每回需要刪除 sincedb 檔案(官方部落格上提供了另一個巧妙的思路:將 sincedb_path 定義為 /dev/null ,則每次重啟自動從頭開始讀)。
作者:jiankunking 出處:http://blog.csdn.net/jiankunking
相關文章
- 屬性配置檔案詳解(2)
- 應用程式池屬性詳解及配置
- display屬性詳解
- cookie屬性詳解Cookie
- CSS字型屬性和文字屬性詳解CSS
- CSS定位屬性詳解CSS
- background屬性用法詳解
- UITableView 屬性用法詳解UIView
- css display屬性詳解CSS
- HTML——② HTML 元素、屬性詳解HTML
- z-index屬性詳解Index
- Android屬性動畫詳解(一),屬性動畫基本用法Android動畫
- After Effects 圖層屬性及屬性組結構詳解
- Python - __slots__屬性詳解Python
- Flutter GetX Tag 屬性使用詳解Flutter
- Rust中的derive屬性詳解Rust
- display的flex屬性使用詳解Flex
- hibernateid屬性generatorclass=””詳解
- Android 佈局屬性詳解Android
- Android taskAffinity屬性使用詳解Android
- PB TreeView 屬性,事件詳解(轉)View事件
- ExtJs控制元件屬性配置詳細JS控制元件
- css3中transition屬性詳解CSSS3
- Meta http-equiv屬性詳解(轉)HTTPUI
- Flutter 入門 — Container 屬性詳解FlutterAI
- fill-opacity屬性用法詳解
- iOS- 詳解文字屬性AttributesiOS
- Android圖文詳解屬性動畫Android動畫
- npm package.json屬性詳解NPMPackageJSON
- 【轉】android佈局屬性詳解Android
- Vue — 計算屬性(computed)詳解Vue
- JS 陣列(Arrey)屬性以及方法詳解JS陣列
- vue計算屬性詳解——小白速會Vue
- CSS border-width屬性用法詳解CSS
- CSS3的content屬性詳解CSSS3
- Python進階之“屬性(property)”詳解Python
- Android中visibility屬性詳解Android
- Android---Android:windowSoftInputMode屬性詳解AndroidWindows