瞭解Logstash輸入插件

  輸入插件是Logstash從特定的數據源讀取數據,Logstash可用插件包括,詳情可見這裏,下面說一些常見的輸入插件:


  stdin插件:標準的輸入插件,能夠從命令行中讀取事件。


  可選配置:

    add_field    hash(哈希)   {}

    codec         codec             “line”

    tags            array(數組)

    type            string(字符串)


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


  通常你要導入原有數據進 Elasticsearch 的話,你還需要 filter/date 插件來修改默認的"@timestamp" 字段值。


  FileWatch 只支持文件的絕對路徑,而且會不自動遞歸目錄。所以有需要的話,請用數組方式都寫明具體哪些文件。

 

  LogStash::Inputs::File 只是在進程運行的註冊階段初始化一個 FileWatch 對象。所以它不能支持類似 fluentd 那樣的 path => "/path/to/%{+yyyy/MM/dd/hh}.log" 寫法。達到相同目的,你只能寫成 path => "/path/to/*/*/*/*.log"。


  logstash 每隔多久去檢查一次被監聽的 path 下是否有新文件。默認值是 15 秒。

  logstash 每隔多久寫一次 sincedb 文件,默認是 15 秒。

  logstash 每隔多久檢查一次被監聽文件狀態(是否有更新),默認是 1 秒。


  generator:生成數據組件,用來生成測試數據最好用。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章