logstash 學習二 input 配置

在 “helloword” 示例中,我們對 logstash 有了個簡單的瞭解。logstash配置 有一個簡單的原則:logstash 一定要有一個input 和一個output . 這章的主要目標是 輸入插件 input .

先給個配置

input {
    file {
        type => "access_u_ex"
        #添加自定義字段
        add_field => {"fromhost" => "EIR"}
        #監聽文件的路徑
        path => "D:/java/logs/test/test1*"
        #排除不想監聽的文件
        exclude => "test13.log"
        # 監聽文件的起始位置
        start_position => "beginning" 
        #增加標籤
        #tags => "tag1" 
        #設置多長時間掃描目錄,發現新文件
        #discover_interval => 15        
        #設置多長時間檢測文件是否修改
        #stat_interval => 1

        codec => multiline {
            charset => "GB2312"
            patterns_dir => ["d:/java/logstash-2.3.4/bin/patterns"]
            pattern => "^%{SECOND_TIME}"
            negate => true
            what => "previous"
        }
    }
}

從上到下,解釋下配置參數的含義。

  • file : 讀取文件 。
    path : 日誌文件絕對路徑(只支持文件的絕對路徑)。
    type : 定義類型,以後的filter 、output 都會用到這個屬性。
    add_field : 添加字段 ,儘量不要與現有的字段重名。重名的話可能會有不同錯誤出現。
    start_position : 從什麼位置開始讀取文件,默認是結束位置。如果要導入原有數據,把這個設定改爲beginning .
    discover_interval : 設置多長時間檢查一個被監聽的path 下面是否有新文件。默認時間是15 秒 .
    exclude : 不想監聽的文件排除出去。
    stat_interval : 設置多久時間檢查一次被監聽的文件(是否有更新),默認是1秒 。

    說明
    1、 有時候path可能需要配置多個路徑 :

      path => ["D:/java/logs/test/test1*" ,"D:/java/logs/test/test2*"]
   2、 add_field 添加字段時,想判斷要添加的字段是否存在,不存在時添加
      if ![field1]{
          mutate{
            add_field => {"field1" => "test1"}
          }
      } 
  • codec 編碼插件
    logstash 實際上是一個input | codec | filter | codec | output 的數據流。codec 是用來decode 、 encode 事件的 。

  • Multiline 合併多行數據
    Multiline 有三個設置比較重要 : pattern 、negate 、what .

    pattern  :  必須設置 ,String 類型 ,沒有默認值。匹配的是正則表達式。上面 配置中 的含義是 : 通過SECOND_TIME 字段與日誌文件匹配,判斷文件開始位置。
    negate : boolean 類型 ,默認爲false . 如果沒有匹配,否定正則表達式。
    what    :  必須設置,可以設置爲 previous 或  next .  (ps: 還沒弄清楚兩者之間的關係,目前我用的都是 previous ) 。
    

    根據上面的配置,還有兩個設置 : charset 、patterns_dir 。

        charset : 一般都知道是編碼 ,這個就不多說了 。
        patterns_dir : 從配置中看到的是一個 文件路徑 。習慣,我會在 創建這麼個文件:logstash-2.3.4/bin/patterns 。裏面還有一個叫 j2ee  的文件 ,裏面是日誌的配置規則 ,用來解析日誌文件。 
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章