As the question, my Logstash reads data from a file and eventually writes it to elasticsearch, I need to ensure that the data will not be lost, do I need to enable persistent queues? My question is whether I need to enable the persistent queue to save the data to a file, since the source of the input itself is already a file?
Yes. The sincedb is updated when a file input reads data. That does not mean the data has made it to the output, but does mean it will not be re-read.