I want something that has a WebUI, can show in a graph like the CPU and RAM graph for this day and maybe some days before. Also I would like to view what was running at any given time (I mean from 2-3 days before to now).
I’ll second this. Prometheus + Grafana is what I’m using now, but you can definitely add more extensions/monitors to get far more detail, like Loki which was suggested above.
Grafana is just the frontend, its a dashboard for your different data sources
Prometheus is the "database", it scrapes data from your endpoints over http
+1 for cmk. Been using it at work for an entire data center + thousands of endpoints and I also use it for my 3 server homelab. It scales beautifully at any size.
I've recently found Beszel and i want to use it to replace my grafana/Prometheus/node exporter stack. It seems to be a rather easy & clean solution. Sure, you can do more with grafana and Prometheus but I can't be bothered having to learn that, when all I want is some simple monitoring.
LibreNMS hasn't been mentioned yet, and it's very good. It does take some setting up, but its use of SNMP for data collection means that it's easy to collect data from a wide range of network hardware as well. A wide range of alerting is available.
We use libreNMS. Its docs state that it will do this, but we only use the uptime monitoring feature, so I can't arrest as to how well it will monitor everything else.
I use this too. When SNMP is set up there are loads of things you can monitor with LibreNMS. Much less of a learning curve than Grafana + Prometheus, although the latter probably has some nice tweaks available that SNMP does not provide.
I work for a large enterprise and build ML model monitoring pipelines fairly frequently—this will be a more in depth but similar use case to what you’re asking.
We use Grafana (visualization) and Prometheus (timeseries db)—they’re built for this use case exactly. Tons of info out there on how to build, configure, connect to your sensors, and deploy it.
You've already received some great suggestions. Another one is Netdata. Personally, I use glances to collect the data and Home Assistant to display the dashboard. But I only do this because I already had Home Assistant running.
Munin is a tried and true solution. It installs on the server creates graphs and makes it easy to see a stair step graph to problems like out of memory.
I'd also highly recommend installing atop and having it collect stats every 1 to 2 minutes. You can go to a crashed server and step through what was running in a "top" like interfsce. I install atop on any server as a means for post incident diagnosis.