Logstash 如何编写日志存储输出配置以获取ABC、AD_EF、123?

Logstash 如何编写日志存储输出配置以获取ABC、AD_EF、123?,logstash,logstash-grok,logstash-configuration,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 如何编写日志存储输出配置以获取ABC、AD_EF、123 输出示例: 好的,ABC,DEF,123 output { file { path => "/xxx/xxx/xxx/output.txt" code

我的日志格式是:

XXX: 03-20 17:52:28:  XXX. * 0 XXX [XXX] [X XX: X]:XXX\tABC:AD_EF:123\t0\tXXXXXXXXXXXXXXXX\tXXXXXXXXXXXXXXXXXXX
如何编写日志存储输出配置以获取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
    }
}

您的日志输出中似乎嵌入了选项卡,这些选项卡包含您的数据。这很好,因为这意味着我可以帮你解决这个问题

filter {
  csv {
    separator => "      "
    columns => [ 'garbage1', 'good', 'garbage2', 'garbage3', 'garbage4' ]
    source => "message"
  }
}
注意,这在这里很难表示


然后将
good
字段的内容输出到文件中

谢谢你的帮助,但也许我弄错了。 最后,我得到了我的任务的答案:

filter {
grok {
    match => {
        "message" => "XXX\t(?<field1>\w+?):(?<field2>\w+?):(?<field3>\d+?)\t"
    }
}}
过滤器{
格罗克{
匹配=>{
“消息”=>“XXX\t(?\w+):(?\w+):(?\d+)\t”
}
}}