1. 程式人生 > 實用技巧 >Filter模組外掛的詳細介紹

Filter模組外掛的詳細介紹

Json外掛

  1. 作用:將Json格式的字串解析成logstash事件中的實際的Json格式的資料;預設情況下將解析後的Json放在logstash事件的根目錄下,也可以通過target指定將解析後的資料放入事件的任意一個欄位中
  2. JSON解析失敗:
    1. 如果JSON格式的資料解析失敗,事件不受影響,只是會標記為"_jsonparsefailure"。可以使用tag_on_failure選項配置此標記
    2. 如果解析後的資料包含@timestamp欄位,我們將嘗試將其用於事件的@timestamp,如果解析失敗,該欄位將被重新命名為_@timestamp,事件將被標記為_timestampparsefailure
  3. JSON過濾器配置選項
    Setting Input Type Required
    skip_on_invalid_json boolean NO
    source string YES
    tag_on_failure array NO
    target String NO
  4. 配置說明:
    1. skip_on_invalid_json:是否允許在無效的json上跳過過濾器(允許不帶警告地處理json和非json資料)
    2. source:接受json格式的欄位(source => source_field)
    3. tag_on_failure:標記故障,將解析失敗的的值新增到tag_on_failure,預設會標記失敗是_jsonparsefailure;如果解析失敗,返回的欄位中會多一個"tags" => ["_jsonparsefailure",_timestampparsefailure]
    4. target:源欄位值中的JSON將擴充套件為目標欄位中的資料結構(將source中的欄位解析後存放在該欄位中)。如果省略設定,則json解析之後的 資料會儲存在根目錄下面
  5. 例子:控制檯輸入
    1. {"trans_jnls_no":"4","card_no":"444444444444444444","terminal_no":"1","atm_trans_types_type":"2","customer_no":"444444444","cash_mark":}
    2. {"trans_jnls_no":"4","card_no":"444444444444444444","terminal_no":"1","atm_trans_types_type":"2","customer_no":"444444444","cash_mark":""}
      filter{
          json{
              
      #stdin輸入,預設的欄位為message source => "message" #將解析後的JSON格式的資料放入json_field下 target => "json_field" #如果JSON格式解析失敗,則會跳過該過濾器,則Json 過濾器的配置不起作用 skip_on_invalid_json => false #新增解析失敗標記 tag_on_failure => ["_jsonparsefailure",_timestampparsefailure] } }