csv - 如何通过组合输入 csv 的两个字段/列在 logstash 中生成@timestamp

标签 csv elasticsearch logstash

我们在 csv 文件中有来自外部来源的数据,如下所示:

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

数据在一列中有date,在另一列中有time - 我需要通过将这两列组合在一起来生成时间戳。

我正在使用 csv 过滤器 在 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 filter将 OrderDate 和 BusinessMinute 字段组合成一个(临时)字段,然后使用 date filter如果成功,让它删除该字段。

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

关于csv - 如何通过组合输入 csv 的两个字段/列在 logstash 中生成@timestamp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28879131/

相关文章:

javascript - 数据安全图表

javascript - 如何使用 fast-csv npm 将新行或新行处的数据(新行)附加到现有 csv 文件

elasticsearch - Elasticsearch:不要忽略搜索值的类型

正则表达式 - 在逗号字符后丢弃文本

logging - Logstash配置更改-重新解析旧日志

function - PowerShell函数的返回值和返回变量的进一步使用

javascript - 从 Javascript 对象中的 CSV 中检索解析的数据(使用 Papa Parse)

elasticsearch - 尝试在JMeter和Kibana之间集成时出错

sorting - ElasticSearch排序不起作用

elasticsearch - 如何在Kibana中合并名称不同但值相同的2个字段