如何编写logstash输出配置来获取ABC,AD_EF,123?

时间:2017-03-20 11:35:22

标签: logstash logstash-grok logstash-configuration

我的日志格式是:

XXX: 03-20 17:52:28:  XXX. * 0 XXX [XXX] [X XX: X]:XXX\tABC:AD_EF:123\t0\tXXXXXXXXXXXXXXXX\tXXXXXXXXXXXXXXXXXXX

如何编写logstash输出配置以获取ABC,AD_EF,123?

输出示例: 好,ABC,DEF,123

output {
    file {
        path  => "/xxx/xxx/xxx/output.txt"
        codec => plain {
            format => "good,ABC,DEF,123"   # how to write this regular expression????
        }
        flush_interval => 0
    }
}

2 个答案:

答案 0 :(得分:0)

您的日志输出似乎包含嵌入的标签,这些标签会包含您的数据。这很好,因为这意味着the csv filter可以为你解决这个问题。

filter {
  csv {
    separator => "      "
    columns => [ 'garbage1', 'good', 'garbage2', 'garbage3', 'garbage4' ]
    source => "message"
  }
}

注意,that is the actual tab character in there,这里很难代表。

然后,您可以将good字段的内容输出到您的文件中。

答案 1 :(得分:0)

感谢大家的帮助,但也许我犯了一个错误。 最后,我得到了我的任务答案:

filter {
grok {
    match => {
        "message" => "XXX\t(?<field1>\w+?):(?<field2>\w+?):(?<field3>\d+?)\t"
    }
}}