簡體   English   中英

如何通過組合輸入csv的兩個字段/列來在logstash中生成@timestamp

[英]How to generate @timestamp in logstash by combining two fields / columns of input csv

我們在csv文件中有來自外部源的數據:

orderid,OrderDate,BusinessMinute,Quantity,Price
31874,01-01-2013,00:06,2,17.9

該數據有date的一列, time在另一列-我需要這兩列組合在一起,以產生一個時間戳。

我正在使用csv filter使用logstash中的以下配置從文件中讀取上述數據 - 這將生成自己的時間戳:

input {  
  file {
      path => "/root/data/import/Order.csv"
      start_position => "beginning"
  }
}
filter {
    csv {
        columns => ["orderid","OrderDate","BusinessMinute","Quantity","Price"]
        separator => ","
    } 
}
output {  
    elasticsearch {
        action => "index"
        host => "localhost"
        index => "demo"
        workers => 1
    }
}

如何將OrderDate + Business Minute組合為@timestamp

使用mutate過濾器將OrderDate和BusinessMinute字段組合到單個(臨時)字段中,然后使用日期過濾器並在成功時刪除該字段。

filter {
  mutate {
    add_field => {
      "timestamp" => "%{OrderDate} %{BusinessMinute}"
    }
  }
  date {
    match => ["timestamp", "..."]
    remove_field => ["timestamp"]
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM