logstash中使用grok结构化message

本文关注的是如何使用grok结构化logstash收取到的message。

grok解析的本质是正则匹配。

举个例子:

message 如下(rails 打出的log):

I, [2016-12-07T16:52:05.682441 #14610]  INFO -- : monitor project create.timecost 17 branch_test 0 user_name 5

以下三种grok解析的正则格式:

  1. 纯正则匹配

    "monitor project (?(create|delete).timecost) (?\d+) (?\w+) (?\d+) (?\w+) (?\d+)"

  2. 借助grok 官方pattern, 部分匹配

    ".* monitor project %{GREEDYDATA:metric} %{GREEDYDATA:cost} %{GREEDYDATA:branch} %{GREEDYDATA:status} %{GREEDYDATA:user} %{GREEDYDATA:try_times}

  3. 借助grok 官方pattern,全部匹配

    "I, [%{TIMESTAMP_ISO8601:timestamp} #%{POSINT:pid}] *%{RUBY_LOGLEVEL:loglevel} -- +%{DATA:progname}: monitor project %{GREEDYDATA:metric} %{GREEDYDATA:cost} %{GREEDYDATA:branch} %{GREEDYDATA:status} %{GREEDYDATA:user} %{GREEDYDATA:try_times} %{GREEDYDATA:start_time} %{GREEDYDATA:end_time}"

转载于:https://my.oschina.net/u/3119174/blog/802029

你可能感兴趣的:(logstash中使用grok结构化message)