2016-01-27 2 views
2

У любого есть шаблон Logstash для Ruby on Rails 4 многострочных журналов?Logstash Grok Pattern для рельсов 4?

У меня есть только шаблон для 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 

ответ

0

Я много искал для рисунка рельсов4, без надежды.

Я нашел несколько альтернатив, которые я использую сейчас, они могут быть полезны для людей с одинаковой проблемой.

Подход № 1

Во-первых, добавьте lograge драгоценный камень для вашего приложения. этот драгоценный камень упростит журнал рельсов на то, что вы можете легко проанализировать с помощью 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" 
    } 
} 
Смежные вопросы