I have a rsyslog -> logstash -> Elasticsearch setup and noticed a lot of warnings with tried to parse field [v] as an object, but found a concrete value in Logstash logs, but I cannot find the initial syslog which Logstash received from rsyslog. Is there any way to get syslog because of which logstash threw a warning?
Logstash is running as a service and the version is 7.10.2
Logstash warning:
May 16 08:43:09 logstash-prod logstash[27402]: [2022-05-16T08:43:09,813][WARN ][logstash.outputs.elasticsearch][main][8479a9c2760956f31b7228312a89412d7db93b091cceb8033b031b9671b3efba] Could not index event to Elasticsearch. {:status=>400, :action=>["index", {:_id=>nil, :_index=>"logstash-2022.05.16", :routing=>nil, :_type=>"_doc"}, #<LogStash::Event:0x1634e346>], :response=>{"index"=>{"_index"=>"logstash-2022.05.16", "_type"=>"_doc", "_id"=>"orAJzIABf21sMtbdGBw4", "status"=>400, "error"=>{"type"=>"mapper_parsing_exception", "reason"=>"object mapping for [k.v] tried to parse field [v] as object, but found a concrete value"}}}}
In other words, I don't understand what is wrong with the input syslog, because I don't see it in the warning message.
Thanks for the answer @Badger. It's possible that from the same source (rsyslog) in some cases v is a string, and in others is an object. Now I understand the problem.
Did I understand correctly that my filter should look like this:
Added "=>" after rename, no "Failed to execute action" errors, but unfortunately, this solution doesn't solve my problem. I still have "...found a concrete value" errors.
Could we please return to the question which I initially asked? How to get input syslog for troubleshooting?
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.