Файлы журнала, которые я пытаюсь импортировать в Logstash, содержат поле, которое иногда выглядит как дата/время, а иногда нет. К сожалению, первое вхождение выглядело как дата/время, и кто-то (logstash или elasticsearch) решил определить поле как дату/время. При попытке импортировать более позднюю запись журнала, Elasticsearch имеет исключение:Logstash/ElasticSearch: недочеты для типа данных для поля
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)
...
Вопрос: Как сказать logstash/elasticsearch не определить это поле как дату/время? Я хотел бы, чтобы все поля из моего журнала (кроме одного поля явного времени) были определены как просто текст.
Вопрос: похоже, что logstash отказывается от попыток импортировать записи из файла журнала после просмотра этого, который elasticsearch генерирует исключение. Как я могу сообщить logstash игнорировать это исключение и продолжать пытаться импортировать другие записи из файла журнала?
Вот и все! Может быть, вы можете добавить свой ответ в качестве реального ответа, а не в самом вопросе, это того стоит. – javanna
stackoverflow не позволил мне ответить на свой вопрос, так как вскоре я спросил его, потому что я ноб с плохой репутацией: D – allen
Мне удалось перевести ответ на правильный ответ ниже, ожидая необходимого количества времени для ответа на мой вопрос собственный вопрос. – allen