logstash - 访问 logstash 中的数组元素

标签 logstash gsub

我正在尝试将此日期结构 YYYY-MM-DD_HH-MM-SS 转换为 logstash 中的 YYYY-MM-DD HH:MM:SS。 这是我的过滤器:

filter {


    csv {
        separator => " "

        columns => ["date","abc","xyz"]
    }

    mutate {

        split => ["date", "_"]
        gsub => [date[1]","-",":"]
        join => [“date”, “ ”] 
    }

}

但我似乎无法访问 date[1],尽管它存在,来自 JSON 结果的 sniipet:

                 "date" => [
  [0] "2014-09-22",
  [1] "02-35-56" ],

访问 date[1] 的正确语法是什么?如果不存在,转换此日期结构的替代过滤器是什么?

最佳答案

你可以尝试使用ruby过滤器

filter{
    ruby {
        code => "
             temp = event['date']
             event['date'] = temp.split('_')[0] + ' '+ temp.split('_')[1].gsub('-',':')
        "
    }
}

使用 ruby​​ 代码转换日期。

关于logstash - 访问 logstash 中的数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26007503/

相关文章:

ruby - unicode 零宽度连接器到正常空间

regex - lua gsub 特殊替换产生无效的捕获索引

rest - 使用现有 "id"字段索引 Elasticsearch 文档

elasticsearch - 无法生成geo_point数据类型为Logstash的geo_point字段

string - 替换包含特定字符串的整个表达式

R gsub 通配符

r - 如何改进跳过两个单词之一的正则表达式?

elasticsearch - 如何使用logstash从弹性中获取匹配条件的嵌套对象

elasticsearch - Filebeat未将数据发送到Logstash

java - 在 ES 中解密 Logstash 加密数据时遇到问题