We ingest data with Elastic’s integrations. What we have found over the years is that Elastic will release an integration and make changes to the field mappings over time. This is understandable, but we eventually run into issues with mapping conflicts for large data sets like CrowdStrike FDR with over 3000 fields.
For example, in an older version of the integration, the Fleet-managed mappings were indexing crowdstrike.Success as a Keyword when it contained Boolean values. The integration development team identified this and corrected it, which is good, but then we have a mapping conflict. For example, now it is type Boolean but half our indices have it as Keyword. We can’t use this field inside of data views or any other internal tools. It is basically busted. Over time, this issue occurs over many fields in our datasets.
As far as I know, Elastic’s only solution is to reindex the data. We keep over a year’s worth of data and this solution is not quick when dealing with TB of data. A lot of time would be spent fixing these problems and reindexing. It is also not easy for our cluster to handle.
Is there a better solution to addressing mapping conflicts?
I understand we could take ownership and create the mappings ourselves, but that lowers the value of the integrations due to the time it would take to develop the index templates. It also does not address the issue that fixing mapping conflicts is difficult.
I feel like there should be a more integrated solution within Kibana and Elasticsearch that allows you to handle mapping conflicts easily. It would make sense to me if there was a button on the mapping conflicts page that we could click to “remap” the field across the affected indices so that the mapping aligns with the current type. The action would only target the affected field - lightweight and fast.
This would work well where the mapping changes from type Keyword to Boolean on a true or false value.
There could also be situations where the value shape has changed entirely. For example, crowdstrike.Success could change from a 1 to a true and the remap process would require a painless script or pipeline to process the field before remapping.
If Elastic would improve the mapping conflict resolution capabilities within Kibana, it could potentially reduce the effort and load required to handle these conflicts. I think it would be a big win for the product and customer base who struggles with these issues.