I’m deploying my NodeJS app + Postgres + Redis in an Ubuntu VPS. Postgres + Redis is running in Docker, whole app is behind an Nginx proxy.
Currently, to monitor, I use a mix of htop (to check server health), docker stats, tail nginx log.
Please recommend me a better way to monitor this (pulling all log & metrics into 1 source and show dashboard like Grafana or something). I just want simple stats like nginx log, CPU &RAM load… Fancier metrics like Redis cache hit/miss rate, slow queries in Postgres is a bonus too.
Asked in self-host because most cloud options have those dashboard & log already.
You can just host a Prometheus+Grafana stack on the same machine.
Grafana’s alerts can send emails
write a python app and send yourself an email depending on your requirements
You can try out https://openobserve.ai/
Grafana has free tier where you can easily setup the agent and then send data to their cloud and it stays there for 14 days.
Zabbix for up/down and performance monitoring/alerting. Can use snmp or their agent to extract info. It can apparently do syslog as well but haven’t figured it out yet so instead I’m using openobserve.
Potentially could pull data from Zabbix and openobserve into grafana for dashboards.
What about Zabbix?
Can use templates for Redis:
https://www.zabbix.com/la/integrations/redisand nginx:
https://www.zabbix.com/la/integrations/nginxand many more
sentry.io can be selfhosted for app monitoring.
Netdata is a ‘set-and-forget’ server monitoring solution. If you want something more tailored, go the prometheus+grafana route.
You can also have your app emit prometheus metrics as well.
UptimeKuma for ping/ ssl certicate check. Grafana / prometheus / Loki for logs and metrics monitoring.