Indeed host is a field managed by each Beat, so it is not recommended to use it in your custom events. Would json.keys_under_root: false be an option for you?
If you need to keep the fields in the top level in any case there is a way to circumvent the override of reserved fields taking advantage of current implementation.
In the output pipeline, input-specific processors are executed first, then "builtin" fields like host.name are added, and finally global processors are executed. So you can rename fields so they are not overwritten by the builtin fields, and then if you want you can overwrite the builtin field.
For that you need to add a processor to prevent your value to be overwritten, e.g:
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.