architecture – ELK stack configuration

I dont have much experience with elk stack I basically only know the basics.

  • Something i.e. filebeat gets data and sends it logstash
  • Logstash processes it and sends it Elastic search
  • Kibana uses elastic search to visualise data

(I hope that thats correct)

I need to create an elk system where data from three different projects is passed, stored and visualised.

Project no1. Uses MongoDB and I need to get all the information from 1 table into kibana

Project no2. Also uses MongoDB and I need to get all the information from 1 table into kibana

Project no3. Uses mysql and I need to get a few tables from that database into kibana

The thing is for Projects 1 and 2 I need the data flow to be constant (i.e. if a user registers I can see that in kabana)
But for Project no3. I only need the data when I need to generate a report (this project functions as a BI of sorts)

So my question is how does one go about creating an elk architecture that gets the inputs from these 3 sources and is able to combine into one elk project.

My best guess is :

Project No1 -> filebeat -> logstash

Project No2 -> filebeat -> logstash

Project No3 -> logstash

(logstash here being a single instance that then feeds into elastic)

Would this be a realistic approach?

I also stumbled upon redis, and from the looks of it it looks like it can combine all the data sources into one and then feed the output to logstash.

What would be the better approach?

Finally, I mentioned filebeat, but from what I understand it basically reads the data from a log file. Would that mean that I would have to re-write all my database entries into a log file in order to feed them into logstash or can logstash tap into the DB without an intermediary.

I tried looking for all of this online, but for some reason the internet is a bit scarce on ELK stack beginner questions.