The following would do it. Note that it drops the original events, so the only fields that will be on the final event are the ones that were stored in the map.
Also, the -> in the dissect filter has the effect of compacting the double space down to a single space, so you do not need a second pattern in the date filter to hand the double space case for the first 9 days of the month.
and i m getting this warning [2019-07-17T12:18:31,365][WARN ][org.logstash.dissect.Dissector] Dissector mapping, field found in event but it was empty {"field"=>"message", "event"=>{"host"=>"localhost.localdomain", "message"=>"", "tags"=>["_dissectfailure"], "@version"=>"1", "@timestamp"=>2019-07-17T06:48:31.261Z}} and this is also getting stored in elasticindex and displaying in kibana...
If you want to understand dissect better I would start with the blog post that introduced it and the documentation.
The warning occurs because the message field is an empty string ("message"=>""), so it does not match the dissect mapping. The documentation explains that conditional processing may be needed to avoid these warnings.
i have read the docs and cleared the warnings....it is storing all the combined logs in kvData format which is ok...there is a small problem in storing the fields if u see my logs the last field status has some line in the brackets for e.g status=sent (250 2.1.5 Delivery OK) while storing the value in kvData it is storing it as kvData.status=sent but the lines in bracket are not included this is because we have given the field_split => ", " so how to store the whole status field...
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.