Closed defkev closed 8 years ago
Never mind. After some further digging it looks this is to blame on one of my log sources which is sending its json formatted message with a timestamp (instead of a @timestamp) field populated in ISO8601
2016-06-16T14:59:41.828214+0200
If such a message is the first to hit logstash after elasticsearch creates a new index at 2:00 am the timestamp field will of course get mapped as a date instead of a string. This in return is creating the MapperParsingException and field mapping conflict once one of my other log sources, which are all either not sending a timestamp field in their json formated messages (or are sending a @timestamp in ISO8601) causing elastic to use the syslog time for the timestamp field which is not in ISO8601 but syslogs rfc3164 default format
Jun 16 01:59:36
tl;dr: Mapping a date as a string is not a problem, mapping a string as a date is.
Guess i was just lucky in the past this never happened before during the daily index rotate :hankey:
Elasticsearch version:
JVM version:
OS version:
Description of the problem including expected versus actual behavior: One of my syslog inputs from logstash stopped working this morning exactly at 2:00 am Elasticsearch didn't add any new shards for this very type past this point but started throwing a MapperParsingException in elasticsearch.log for every new shard like:
Note that this is the timestamp field from syslog, not the @timestamp added by elasticsearch. Furthermore the field in question now shows a mapping conflict in kibana, it was previously mapped as a string and the last shard created was at 1:59:36 am
Now as i see it elasticsearch is suddenly trying to parse the said timestamp field as an actual timestamp instead of a string (which cannot be parsed as such since it is missing the year part i suppose) which in return is creating the mapping conflict.
The setup has been running for a while by now and nothing on the configuration has been changed recently, hence i am curious what has caused elasticsearch to thread "Jun 16 01:59:36" as a string and "Jun 16 02:00:28" as a timestamp.