I file di registro che sto cercando di importare in Logstash contengono un campo che a volte sembra una data/ora e talvolta non lo è. Sfortunatamente, la prima occorrenza sembra una data/ora e qualcuno (logstash o elasticsearch) ha deciso di definire il campo come data/ora. Quando si cerca di importare un record di log dopo, elasticsearch ha un'eccezione:Logstash/ElasticSearch: non è corretto per il tipo di dati per il campo
Failed to execute [index ...]
org.elasticsearch.index.mapper.MapperParsingException: Failed to parse [@fields.field99]
at org.elasticsearch.index.mapper.core.AbstractFieldMapper.parse(AbstractFieldMapper.java:320)
at org.elasticsearch.index.mapper.object.ObjectMapper.serializeValue(ObjectMapper.java:587)
...
Caused by: java.lang.IllegalArgumentException: Invalid format: "empty"
at org.elasticsearch.common.joda.time.format.DateTimeFormatter.parseMillis(DateTimeFormatter.java:747)
...
Domanda: Come faccio a dire logstash/elasticsearch di non definire questo campo come data/ora? Vorrei che tutti i campi del mio log (ad eccezione di un campo di timestamp esplicito) fossero definiti come solo testo.
Domanda: sembra che logstash dà a cercare di importare i record dal file di registro dopo aver visto questo quello che elasticsearch genera un'eccezione su. Come posso dire a logstash di ignorare questa eccezione e continuare a cercare di importare gli altri record dal file di registro?
Questo è tutto! Forse puoi aggiungere la tua risposta come risposta reale invece che all'interno della domanda stessa, ne vale la pena. – javanna
StackOverflow non mi consente di rispondere alla mia domanda così presto dopo averlo chiesto poiché sono un noob con una cattiva reputazione: D – allen
Sono stato in grado di spostare la risposta a una risposta corretta di seguito dopo aver atteso il tempo richiesto per rispondere al mio propria domanda – allen