Linux VPS

Monitor a Linux server in real time with Netdata

Install Netdata on a Linux VPS, view per-second CPU, RAM, disk and network charts, keep the dashboard private and set up useful alerts.

IntermediateLinux VPS3 min read

Netdata collects thousands of metrics every second with almost no setup and shows them in a live web dashboard. It auto-detects Nginx, MySQL, Redis, Docker and more, which makes it a fast way to add server monitoring to a VPS and see exactly when and why load spikes.

Before you start

  • Root or sudo access to a Linux VPS (Ubuntu, Debian, AlmaLinux, Rocky).
  • Around 100–200 MB of free RAM for the agent.
  • A plan to keep the dashboard private: it shows details about your server.

Install Netdata

The official kickstart script detects your distro and installs native packages where available. Read it first if you like, then run:

wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh
sh /tmp/netdata-kickstart.sh --stable-channel --disable-telemetry

Netdata starts automatically and listens on port 19999. Check it with systemctl status netdata.

Keep the dashboard private

The safest option is to bind Netdata to localhost and reach it through an SSH tunnel. Edit /etc/netdata/netdata.conf (run /etc/netdata/edit-config netdata.conf if it does not exist):

[web]
    bind to = 127.0.0.1

Restart with systemctl restart netdata, then from your computer open a tunnel:

ssh -L 19999:127.0.0.1:19999 root@203.0.113.10

Browse to http://localhost:19999. Alternatives: put Netdata behind Nginx with basic auth and HTTPS, or allow port 19999 only from your IP in the firewall.

Warning: do not leave port 19999 open to the whole internet. The dashboard reveals running services, users and traffic patterns.

Read the key charts

SectionWhat to look for
System Overview → CPUiowait high = disk bottleneck; steal high = busy host node
Memory → RAM / SwapLittle available RAM and rising swap = memory pressure
DisksUtilisation near 100% and long backlog = I/O saturation
NetworkingBandwidth spikes, dropped packets, TCP resets
ApplicationsWhich process group (php-fpm, mysqld) uses the resources

Drag across a chart to zoom in on a spike; all charts follow the same time window, so you can correlate a CPU peak with a traffic burst.

Monitor services

Netdata's collectors pick up most services automatically. Some need access: for MySQL/MariaDB create a read-only user:

CREATE USER 'netdata'@'localhost';
GRANT USAGE, REPLICATION CLIENT, PROCESS ON *.* TO 'netdata'@'localhost';

For Nginx, enable stub_status on 127.0.0.1. Collector configs live in /etc/netdata/go.d/; edit them with /etc/netdata/edit-config go.d/mysql.conf.

Set up alerts

Netdata ships with sensible health alerts (disk almost full, RAM low, high load). To get them by email, edit health_alarm_notify.conf:

/etc/netdata/edit-config health_alarm_notify.conf

Set DEFAULT_RECIPIENT_EMAIL="you@example.com" (the server needs working outbound mail), or configure Slack, Discord or Telegram in the same file. Test with:

sudo -u netdata /usr/libexec/netdata/plugins.d/alarm-notify.sh test

The path may be /usr/lib/netdata/plugins.d/ on some distros.

Troubleshooting

  • Dashboard does not load: check ss -ltnp | grep 19999, the bind address and your firewall or tunnel.
  • A service has no charts: the collector cannot access it. Look at journalctl -u netdata | grep -i mysql (or the service name).
  • Netdata uses too much RAM or disk: lower retention under [db] in netdata.conf, or raise update every to 2–5 seconds.

Netdata FAQ

Is Netdata free?

The agent is open source and free. Netdata Cloud, an optional hosted dashboard for many servers, has free and paid tiers.

Netdata vs htop?

htop shows the current moment in a terminal. Netdata keeps history, covers services and sends alerts.

Does Netdata replace uptime monitoring?

No. If the server goes down, so does Netdata. Use an external uptime check alongside it.

Next steps

Was this guide helpful?

Still stuck?

Ask MdmHost AI for a quick answer, or open a ticket and our team will take a look. We are here 24/7.