繁体   English   中英

logstash:如何从log4j消息中提取数据?

[英]logstash : how to extract data from log4j message?

我尝试使用logstash从我的log4j消息中提取数据。 消息看起来像这样:

Method findAll - Start by : bokc

我想提取方法名称:“ findAll”和用户“ bokc”。

我怎样才能做到这一点?

我使用logstash 1.5.2,我的配置是:

input {
    log4j {
        mode => "server"
        type => "log4j-artemis"
        port => 4560
    }
}

filter {
  multiline {
    type => "log4j-artemis"
    pattern => "^\\s"
    what => "previous"
  }
  mutate {
    add_field => [ "source_ip", "%{host}" ]
  }
}

使用grok过滤器

filter {
  grok {
    match => [
      "message",
      "^Method %{WORD:method} - Start by : %{USER:user}"
    ]
    tag_on_failure => []
  }
}

这会将两个单词提取到“方法”和“用户”字段中。 tag_on_failure的设置可确保不匹配的消息不会被_grokparsefailure标记。 由于大多数消息都不与模式匹配,因此将它们标记为失败是没有意义的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM