Как установить мое собственное значение поля в качестве @timestamp? (Логсташ)

#elasticsearch #logstash #kibana #filebeat

Вопрос:

я пытаюсь установить метку времени @со значением моего собственного поля, но у меня только плохие результаты с тегами «_dataparsefailure». Я новичок и не знаю, в чем я не прав. Кто-нибудь может мне помочь? (Извините за мой плохой английский, я итальянец 🙂 )

2021-06-22 09:06:59,041 ——> это мой формат данных

а ниже есть код

      filter {
        
        ...... (some disssect) ....
        
        aggregate {
     task_id => "%{breadcrumbId}_%{ID}"
     code => '
                           map["Inbound_time"] ||= event.get("[Inbound][time]")
                           map["Inbound_log_level"] ||= event.get("[Inbound][log][level]")
                           map["Inbound_operation_name"] ||= event.get("[Inbound][operation][name]")
                           map["Inbound_flow"] ||= event.get("[Inbound][flow]")      
                           map["Inbound_message"] ||= event.get("[Inbound][message]")
                           map["Inbound_payload"] ||= event.get("[Inbound][payload]")
                           map["ID"] ||= event.get("ID")
                           map["Outbound_time"] ||= event.get("[Outbound][time]") 
                           map["Outbound_log_level"] ||= event.get("[Outbound][log][level]") 
                           map["Outbound_operation_name"] ||= event.get("[Outbound][operation][name]")
                           map["Outbound_flow"] ||= event.get("[Outbound][flow]")      
                           map["Outbound_message"] ||= event.get("[Outbound][message]")  
                           map["Outbound_payload"] ||= event.get("[Outbound][payload]")
                           map["event_original"] ||= event.get("[event][original]")
                           map["breadcrumbId"] ||= event.get("breadcrumbId")
                           map["BPOCO"] ||= event.get("BPOCO")
                           map["OrderID"] ||= event.get("OrderID")
                           map["QuoteID"] ||= event.get("QuoteID")
                           map["ServiceID"] ||= event.get("ServiceID")
                           map["Prodotto"] ||= event.get("Prodotto")
                           map["faultString"] ||= event.get("faultString")
                           map["Mobile/NotMobile"] ||= event.get("Mobile/NotMobile")
                           map["SOAP_action"] ||= event.get("[SOAP][action]")
                           event.cancel                                                      
        '
     push_map_as_event_on_timeout => true
     timeout => 10
      
  }
   mutate {
         copy => { "Outbound_time" => "times" }
      }
  mutate {
    convert => {"times" => "string" } 
  }
  date {
    match => ["times", "YYYY-MM-dd HH:mm:ss,SSS"]
    target => "@timestamp"
  }  
 
}
 

Комментарии:

1. фрагмент кода или образец кода здесь гораздо важнее, чем идеальный английский 😉

Ответ №1:

в соответствии с этим фильтром даты источника

 yyyy
full year number. Example: 2015.
 

и ваш фильтр-это

 date {
    match => ["times", "YYYY-MM-dd HH:mm:ss,SSS"]
    target => "@timestamp"
  } 
 

возможно, вы захотите изменить его на

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

Комментарии:

1. можете ли вы скопировать данные times , которые вы видите, из elasticsearch?

2. я решил, я поставил плагин даты перед агрегатом, и теперь он работает. Спасибо тебе то же самое.