2015-09-30 2 views
0

Я пытаюсь тренда данных ниже заархивированную метку времени. Я не уверен, почему мои даты и время не разобраны. Согласно моему отладчику grok, он работает отлично.kibana не trending над разобранным timestamp

http://i.stack.imgur.com/GDFAy.png

Пример ввода:

[15/06/[email protected]:05:31.233-0700] P-007158 T-4131301152 2 WS 4GLTRACE  Run htmAssociate "vsess vsess 1349" [htmOffsets - dpa/setup/vsysadv.w @ 9563] 

Конфигурационный файл

input { 
file { 
    path => "/Users/philipp/Documents/Performance/ProductionMetrics/4gltrace_logs/4gltrace_log_bstash.txt" 
    start_position => beginning 
} 
} 
    filter { 
    grok { 
match => ["message", "\[%{DATE}@%{TIME}-%{INT:TIMEZONE}] %{NOTSPACE:PID} % {NOTSPACE:T} %{INT:NUM} %{WORD:WS} %{WORD:4GLTRACE} %{GREEDYDATA} \[%{DATA:PROGRAM}]"] 
} 

} 

output { 
    elasticsearch { host => localhost protocol => "http" port => "9200" } 
    stdout { codec => rubydebug } 
    } 

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

+0

А что вы получаете, и как это отличается от того, что вы ожидали? (Думаю, вы ищете фильтр даты {}). –

+0

Да, я надеялся получить дату и время архивированного события, но на самом деле я просто получаю день, когда файл был импортирован в logstash. Чтобы быть более точным: я надеялся провести тренд по данным «15/[email protected]: 12: 56.451-0700» – ppragados

ответ

0

Вам необходимо использовать date{} filter в logstash, чтобы взять поле из вашего мероприятия и заменить значение @timestamp этим значением.

Если у вас есть поле, называемое my_timestamp в следующем формате, это будет сделать это:

date { 
    match => [ 'my_timestamp', "dd/MMM/yyyy:HH:mm:ss Z" ] 
    remove_field => [ 'my_timestamp' ] 
} 
+0

Я попробовал обновить свой файл конфигурации с помощью вышеуказанного, но поскольку мой формат временной отметки: «15/06/02 @ 11: 05: 31.233-0700 «Я обновил фильтр даты как: date { match => ['my_timestamp'," yy/MM/dd @ HH: mm: ss.sss-Z "] remove_field => [ 'my_timestamp'] }, но logstash ему это не понравилось. Как взять метку времени с указанным выше форматом? – ppragados

+0

Вы должны проанализировать исходную строку журнала в новое поле, которое затем можно передать в дату {}. Это может занять grok {}, чтобы разбить его, а затем mutate-> add_field, чтобы перекомпилировать его. –

+0

Привет, поэтому я добавил поле добавления мутата в конкатенацию, но я просто получаю буквально возвращение. Что я делаю не так? mutate { add_field => { "timestamp" => "% {DATE}% {TIME}" } } – ppragados

Смежные вопросы