I am not understanding the ecs changes in the logstash elasticsearch output plugin version 7.9 ecs compatibility.
I have an issue when I try to index an event that has an object mapping for host.
object mapping for [host] tried to parse field [host] as object
I know this is a common error in logstash
My question is does logstash output plugin version 7.10 fix this problem or is this something I need to do in my logstash pipelines?
From 7.10 documentation
This plugin will persist events to Elasticsearch in the shape produced by your pipeline, and cannot be used to re-shape the event structure into a shape that complies with ECS. To produce events that fully comply with ECS, you will need to populate ECS-defined fields throughout your pipeline definition.
Can anyone interpret this language to a more layman's terms?
does this mean that if filebeat sets host to object any event with host as non-object will still be rejected?
I don't think this is so much an output plugin issue - (judging from behavior, not actually looking at the code) the issue is that logstash will in certain circumstances automatically include a [host] field (e.g. the sending system for syslog).
Basically if the index template for the index you are writing to is based on ECS it will include host as an object (host.name, host.ip, etc.) which precludes using host as a flat field.
I typically do the following:
mutate { rename => { "host" => "[host][ip]" }}
Or for observers (e.g. firewall logs) I'll rename it to [observer][ip]
I believe there are some PRs in the logstash github repo regarding this, but I haven't really dug into it.
In case you aren't familiar with the differences (I had no idea until someone pointed it out) Logstash and Elasticsearch represent objects differently - e.g. [host][ip] in Logstash is the same as host.ip in Elasticsearch.
The docs are basically saying:
the Elasticsearch output simply sends what you give it, to be ECS compliant its up to you to properly name fields in your logstash configs.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.