gpt4 book ai didi

ruby-on-rails - Rails 4 的 Logstash Grok 模式?

转载 作者:行者123 更新时间:2023-12-05 07:51:27 24 4
gpt4 key购买 nike

谁有 Ruby on Rails 4 多行日志的 Logstash 模式?

我只有 Rails 3 的模式,它有一个非常不同的日志结构:

RUUID \h{32}
# rails controller with action
RCONTROLLER (?<controller>[^#]+)#(?<action>\w+)
# this will often be the only line:
RAILS4HEAD (?m)Started %{WORD:verb} "%{URIPATHPARAM:request}" for % {IPORHOST:clientip} at (?<timestamp>%{YEAR}-%{MONTHNUM}-%{MONTHDAY} %{HOUR}:%{MINUTE}$
# for some a strange reason, params are stripped of {} - not sure that's a good idea.
RPROCESSING \W*Processing by %{RCONTROLLER} as (?<format>\S+)(?:\W*Parameters: {%{DATA:params}}\W*)?
RAILS4FOOT Completed %{NUMBER:response}%{DATA} in %{NUMBER:totalms}ms %{GREEDYDATA}
RAILS4PROFILE (?:\(Views: %{NUMBER:viewms}ms \| ActiveRecord: %{NUMBER:activerecordms}ms|\(ActiveRecord: %{NUMBER:activerecordms}ms)?
# putting it all together
RAILS4 %{RAILS4HEAD}(?:%{RPROCESSING})?(?<context>(?:%{DATA}\n)*)(?:%{RAILS4FOOT})?

Rails 4 日志现在的格式包括时间戳和 ID (#)。

I, [2016-01-26T23:21:44.581108 #27447]  INFO -- : Started GET "/login" for XXX.XXX.XXX.XXX at 2016-01-26 23:21:44 -0800

最佳答案

我搜索了很多 rails4 grok 模式,没有希望。

我找到了一些我现在正在使用的替代品,它们可能对遇到同样问题的人有帮助。

方法 #1

首先,将 lograge gem 添加到您的应用程序中。这个 gem 会将 rails 日志简化为您可以使用 grok 轻松解析的内容。

然后你可以使用下面的模式

LOGRAGE %{WORD:method}%{SPACE}%{DATA}%{SPACE}action=%{WORD:controller}#%{WORD:action}%{SPACE}status=%{INT:status}%{SPACE}duration=%{NUMBER:duration}%{SPACE}view=%{NUMBER:view}(%{SPACE}db=%{NUMBER:db})?%{GREEDYDATA}

此方法在 article 中被提及.

方法 #2

作为另一种选择,您可以使用 json 过滤器,如下所示 article lograge 配置略有不同。

filter {
json {
source => "short_message"
remove_field => "short_message"
}
}

关于ruby-on-rails - Rails 4 的 Logstash Grok 模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35031627/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com