2017-02-09 20 views
2

Моего штампа времени в журналах в формате, как показано нижекак заменить logstash @timestamp с логом временной меткой

2016-04-07 18:11:38.169 which is yyyy-MM-dd HH:mm:ss.SSS 

Этот файл журнал не жить один (хранящимся/старая один), и я пытаюсь замените эту временную метку значением logstash @timestamp для улучшения в визуализации Kibana.

Мой фильтр в logstash, как ниже

 grok { 
     match => { 
      "message" => [ "(?<timestamp>(\d){4}-(\d){2}-(\d){2} (\d){2}:(\d){2}:(\d){2}.(\d){3}) %{SYSLOG5424SD} ERROR u%{BASE16FLOAT}.%{JAVACLASS} - TransId:2b948ed5-12c0-4ae0-9b99-f1ee01191001 - TransactionId ::\"2b948ed5-12c0-4ae0-9b99-f1ee01191001\"- Actual Time taken to process \:\: %{NUMBER:responseTime:int}" ] 
      } 

    } 

date { 
     match => [ "timestamp:date" , "yyyy-MM-dd HH:mm:ss.SSS Z" ] 
     timezone => "UTC" 
     target => "@timestamp" 
     } 

Но его не заменяет значение @timestamp, Json значение

{ 
    "_index": "logstash-2017.02.09", 
    "_type": "logs", 
    "_id": "AVoiZq2ITxwgj2avgkZa", 
    "_score": null, 
    "_source": { 
    "path": "D:\\SoftsandTools\\Kibana\\Logs_ActualTimetakentoprocess.log", 
    "@timestamp": "2017-02-09T10:23:58.778Z", **logstash @timestamp** 
    "responseTime": 43, 
    "@version": "1", 
    "host": "4637", 
    "message": "2016-04-07 18:07:01.809 [SimpleAsyncTaskExecutor-3] ERROR s.v.wsclient.RestClient - TransId:2b948ed5-12c0-4ae0-9b99-f1ee01191001 - TransactionId ::\"2b948ed5-12c0-4ae0-9b99-f1ee01191001\"- Actual Time taken to process :: 43", 
    "timestamp": "2016-04-07 18:07:01.809" **Mine time stamp** 
    } 

журнала Образец линии -

2016-04-07 18:11:38.171 [SimpleAsyncTaskExecutor-1] ERROR s.v.wsclient.RestClient - TransId:2b948ed5-12c0-4ae0-9b99-f1ee01191001 - TransactionId ::"2b948ed5-12c0-4ae0-9b99-f1ee01191001"- Actual Time taken to process :: 521 

Могли бы вы пожалуйста, помогите и сообщите мне, где я буду зажимать здесь.

+1

Пожалуйста, добавьте образец логарифма. – Fairy

+0

спасибо за ответ .. Обновлено – Vishwa

ответ

1

Вы должны в основном иметь ГРОК матч для того, чтобы использовать timestamp вашей строки журнала:

grok { 
    patterns_dir => ["give your path/patterns"] 
    match => { "message" => "^%{LOGTIMESTAMP:logtimestamp}%{GREEDYDATA}" }   
} 

В файле шаблона убедитесь, чтобы барабанить, который соответствует вашему timestamp в журнале, который мог выглядеть примерно так:

LOGTIMESTAMP %{YEAR}%{MONTHNUM}%{MONTHDAY} %{TIME} 

И затем, как только вы сделали grok фильтрации вы можете быть в состоянии использовать отфильтрованное значение как:

mutate { 
    add_field => { "newtimestamp" => "%{logtimestamp}" } 
    remove_field => ["logtimestamp"] 
} 
date { 
    match => [ "newtimestamp" , "ISO8601" , "yyyy-MM-dd HH:mm:ss.SSS" ] 
    target => "@timestamp" <-- the timestamp which you wanted to apply on 
    locale => "en" 
    timezone => "UTC" 
} 

Надеюсь, это поможет!

+0

Спасибо за ответ. У меня есть мой grok, извинения .. обновленный вопрос снова. Я попробую с мутацией и обновлением .. еще раз спасибо – Vishwa

+0

Да, пожалуйста, дайте мне знать. – Kulasangar

+0

И не забудьте настроить соответствие * grok * в соответствии с вашим. – Kulasangar

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

  • Нет связанных вопросов^_^