Logstash Filter Grok用于自定义日志

时间:2017-03-21 10:49:55

标签: elasticsearch logstash kibana

我第一次使用Logstash并且我尝试使用grok过滤器映射我的日志,将它们放在ElasticSearch上并使用{{1}进行可视化}。

这是我目前的情况:

过滤

Kibana

日志

filter {
  grok {
    match => { "message" => "%{TIMESTAMP:timestamp} | %{WORD:trackingId} | %{WORD:request} | %{WORD:session} | %{IP:client} | 
      %{WORD:userId} | %{GREEDYDATA:message}" }
  }
}

显然这不起作用。我做错了什么?

1 个答案:

答案 0 :(得分:1)

试试这个

%{TIMESTAMP_ISO8601:timestamp}%{SPACE}\|%{SPACE}%{WORD:trackingId}%{SPACE}\|%{SPACE}%{WORD:request}%{SPACE}\|%{SPACE}%{WORD:session}%{SPACE}\|%{SPACE}%{IP:client}%{SPACE}\|%{SPACE}%{DATA:userId}%{SPACE}\|%{SPACE}%{GREEDYDATA:message}

基于OP评论这里是另一个正则表达式,SPACE替换为\ s *

%{TIMESTAMP_ISO8601:timestamp}\s*\|\s*%{WORD:trackingId}\s*\|\s*%{WORD:request}\s*\|\s*%{WORD:session}\s*\|\s*%{IP:client}\s*\|\s*%{DATA:userId}\s*\|\s*%{GREEDYDATA:message}

我建议您使用此网站测试您的grok正则表达式:https://grokdebug.herokuapp.com/