Advanced Hosting 12 min read

How to Monitor Linux VPS with Netdata? Installation, Security, Alerts

MUsamaOctober 31, 2026 · Updated November 13, 2026
Monitor Linux VPS with Netdata

Your Linux VPS could seem healthy while a resource is getting maxed out. The RAM is full. The database takes too long to reply. The logs occupy all the disk space left. The PHP workers become too busy. You start to investigate the problem only after your clients report something wrong. This is when you need to monitor a Linux VPS with Netdata.

Table of Contents

Hide ▲

Netdata turns unnoticed changes into valuable insights. It tracks your server’s performance metrics and shows them on a dashboard which is interactive. Netdata also gives you alerts if there are any metrics that exceed predefined thresholds.

This guide will take you through the steps of installing and securing Netdata on your Linux VPS, integrating it with services, and using the data for troubleshooting.

Key Takeaways
  1. Netdata simplifies VPS monitoring by tracking CPU, RAM, storage, network traffic, and application performance.
  2. Installing Netdata on Linux is straightforward using its official installation script.
  3. Secure your monitoring dashboard by restricting public access, using SSH tunnelling, or configuring an Nginx reverse proxy with HTTPS.
  4. Monitor essential services such as Nginx, MySQL, MariaDB, and PHP-FPM to identify performance bottlenecks.
  5. Configure alerts and notifications to detect resource shortages, server issues, and unusual activity before they affect your applications.

Begin with $2.99/month

Amazing hosting value at such an economical price. HostOnce is a dream come true for so many website owners: you among them! Do not miss your chance!

What Will You Monitor Linux VPS with Netdata?

Your monitoring solution has to answer more than one question. Do not just try to find out if your VPS is active. You would like to know why it is working slowly and which resource is the source of that.

Here is all you can monitor using Netdata:

  • Area
  • What You Can Monitor
  • CPU
  • CPU usage, load, processes and spikes
  • Memory
  • RAM, swap, memory pressure, consumption
  • Storage
  • Disk space, I/O, inodes usage
  • Network
  • Inbound and outbound network traffic
  • Web server
  • Activity of Nginx/Apache
  • Database
  • Behavior of MySQL/MariaDB
  • Applications
  • Process and service activity
  • Health
  • Warnings and critical messages

This makes Netdata especially useful when several websites or apps are situated on one VPS.

VPS hosting from HostOnce offers users full administrative access and is compatible with Linux OS and custom software installation.

Before Installing Netdata

What you need:

  • Linux VPS
  • Access with root or sudo privileges
  • SSH access
  • Active internet connection on the server side
  • Basics of command-line usage

Mostly, this tutorial uses Ubuntu and Debian as example operating systems. However, there may be differences depending on the distribution of your choice.

Make a backup or create a snapshot if needed. Only after that, change the configuration files on the production machine.

Step 1: Update Linux VPS

First, establish an SSH connection to the server. Then perform an update of your package list:

sudo apt update

sudo apt upgrade -y

If curl and the CA certificate package are not installed yet, then you have to install them:

sudo apt install -y curl ca-certificates

Before installing monitoring tools, it is necessary to update the underlying server. This action gives a good starting point.

Step 2: Install Netdata

Netdata advises using their kickstart.sh script for installation on Linux. The installation method will be selected based on the detected type of operating system. The best installation method is using native packages, but there are also other installation methods available.

Run:

wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh

sh /tmp/netdata-kickstart.sh

Inspect the installed files before running them as root.

Now check if the service is running:

sudo systemctl status netdata

Or check the service running on port 19999:

ss -lntp | grep 19999

Netdata normally uses TCP port 19999 for exposing the web UI.

Do not take the default port number as something that has to be exposed to the entire world.

Step 3: Launch Netdata Dashboard

If the connection over the Internet is working, then you can access the dashboard at:

http://YOUR_SERVER_IP:19999

You will see charts for your VPS processes there.

Spend some time browsing through the dashboard before making any changes. Observe the processes running. It is all about understanding the workloads of your server.

Step 4: Secure Netdata Dashboard

Monitoring dashboard stores a lot of useful information about your infrastructure. Making it publicly accessible is not the best idea as you are revealing a lot of information about your server.

The simplest solution here is to configure Netdata to listen only on localhost.

Open the configuration file:

sudo nano /etc/netdata/netdata.conf

Set up under the [web] section:

[web]

bind to = 127.0.0.1

Restart Netdata:

sudo systemctl restart netdata

Verify the listening IP:

ss -lntp | grep 19999

Thus, it is now available locally on the VPS rather than through its public interface.

Netdata Access Via SSH Tunnelling

Establish a tunnel from your machine:

ssh -L 19999:127.0.0.1:19999 root@YOUR_SERVER_IP

And open:

http://localhost:19999

The browser uses the secure SSH connection to reach Netdata. No public exposure of port 19999 is needed.

Step 5: Use Nginx as a Front for Netdata

Determine whether there is more than one administrator who needs access via a browser. Another solution would be an Nginx reverse proxy. Netdata will continue to run at 127.0.0.1:19999 while Nginx is the front-end.

Install the required components:

sudo apt install nginx apache2-utils -y

Set up the password for the admin user:

sudo htpasswd -c /etc/nginx/.htpasswd netdataadmin

Create the Nginx config file:

sudo nano /etc/nginx/sites-available/netdata

Add:

server {

listen 80;

server_name monitor.example.com;

location / {

auth_basic “Netdata Monitoring”;

auth_basic_user_file /etc/nginx/.htpasswd;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

and

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header X-Forwarded-Proto $scheme;

proxy_pass http://127.0.0.1:19999;

}

}

Remember to substitute monitor.example.com with your actual monitoring domain.

Activate the configuration:

sudo ln -s /etc/nginx/sites-available/netdata /etc/nginx/sites-enabled/netdata

and

sudo nginx -t

sudo systemctl reload nginx

Fatimanawaz Avatar

Step 6: Monitor Nginx

System metrics show only half of the picture. For those running websites, it is important to see how the services serving the requests are performing.

Enable stub_status for Nginx.

Open the proper Nginx configuration file. Add:

location /nginx_status {

stub_status;

allow 127.0.0.1;

deny all;

}

Reload Nginx and test:

sudo nginx -t

sudo systemctl reload nginx

Verify the status locally:

curl http://127.0.0.1/nginx_status

Making this page available only on localhost will deny visitors the ability to view the statistics of the web server at will. Netdata may either find the service automatically or need collector configuration. This depends on your version and installation of Netdata.

Step 7: Monitor MySQL or MariaDB

In many cases, database problems are perceived by users as “slow site” when there does not seem to be any problem with CPU usage.

By monitoring MySQL or MariaDB you can identify connections and pressure on resources. You must never give the monitoring program your database root privileges.

Create a dedicated monitoring account:

sudo mysql

CREATE USER ‘netdata’@’localhost’ IDENTIFIED BY ‘USE_A_STRONG_PASSWORD’;

GRANT USAGE, PROCESS, REPLICATION CLIENT, SHOW DATABASES, SHOW VIEW

ON . TO ‘netdata’@’localhost’;

FLUSH PRIVILEGES;

Quit MySQL:

EXIT;

MySQL collector can now be configured in Netdata using this specific account.

It is very important: Monitoring must be given only those privileges which are needed, and not full access just because it is simpler.

Step 8: Monitor PHP-FPM

PHP-FPM is another service which runs on the majority of WordPress and PHP hosting. The server may have extra CPU power but the request would have to wait as all PHP workers are busy.

Make sure that you have the PHP-FPM status URL enabled in the pool config. It will depend on the PHP version installed. As an example:

sudo nano /etc/php/8.3/fpm/pool.d/www.conf

Configure:

pm.status_path = /php-fpm-status

ping.path = /php-fpm-ping

Now, reload the PHP-FPM service:

sudo systemctl reload php8.3-fpm

Replace 8.3 in the above commands with the PHP version on your VPS.

Remember the Nginx status URL. Information from PHP-FPM status must not be accessible by any regular internet user.

Step 9: Set Up Alerts That Matter

The nice dashboard comes in handy while you are using it. Alerts come in handy when you are not.

Netdata offers a rich health monitoring feature set and performs an evaluation of set alert conditions frequently.

For a typical hosting VPS, be especially careful about:

  • Disk usage
  • Inode usage
  • Memory pressure
  • Swap usage
  • CPU load
  • Disk I/O
  • Database health
  • Web server errors
  • PHP-FPM load
  • Service availability

Do not set alerts on every harmless variation. Think about CPU usage suddenly rising to 100% for five seconds for a job run at specific times. It doesn’t mean there is an incident going on. The high CPU usage for a few minutes is what matters much more. Proper monitoring distinguishes between a spike and an incident.

Set Practical Disk Warnings

Exhaustion of disks may lead to process failure. Don’t wait until your disk is full, set warnings before that happens.

Your operational approach may look like:

Disk UsageAction
Less than 75%Normal
75%–85%Monitor growth
Greater than 85%Investigate
Greater than 90%Take urgent action

The above numbers are just examples, not hard rules. 40 GB VPS and a multi-terabyte server will differ greatly in how much free space you still have on each at the same per cent of disk used.

Step 10: Set Up Alert Notifications

An alert that appears only on your dashboard may go unnoticed. Netdata provides multiple notification mechanisms. Notification configuration is usually done by setting up:

/etc/netdata/health_alarm_notify.conf

Use the proper recipient and check whether the underlying system can send email. Always test the notification mechanism once configured.

Step 11: Learn to Read the Symptoms of Server Problems

While the primary strength of Netdata isn’t that it provides hundreds of graphs but it will help you to understand the symptoms.

Take a look at the processes graph if your site slows down all of a sudden:

  • Is it PHP eating up the CPU?
  • Or is it MySQL doing that?
  • Has a backed-up file or a compression, malware scan or a cron task started at the same time?

High CPU is the symptom. The process causing the high CPU usage is the hint.

RAM Is Almost Out

Don’t evaluate Linux server memory usage based on “used memory percentage”. Look for memory pressure, swapping, application usage and historical trends. Check whether the server really struggles to allocate memory.

You can use the following command to investigate the processes:

ps aux –sort=-%mem | head

CPU seems okay, but your website is still slowing down? Check your storage performance. High IO wait makes your server super slow even when the CPU is in good shape. Also check the PHP-FPM and Database metrics.

Disk Space Keeps Disappearing

Start with:

df -h

Check large folders:

sudo du -xhd1 /var | sort -h

Inode usage should also be checked:

df -ih

A problem with file creation may appear as a result of using all possible inodes on a filesystem, even if there is plenty of disk space available. Logs, cache files, mail spool, sessions, temporary files and expired backups are the places where it could happen.

Step 12: Test Your Monitoring Setup

You never complete a monitoring setup without testing it.

Netdata check:

sudo systemctl status netdata

Port check:

ss -lntp | grep 19999

Service logs check:

sudo journalctl -u netdata -n 100 –no-pager

  • Check that the dashboard shows the recent statistics. 
  • Test each collector you have added yourself.
  • Check whether Nginx statistics appear if you have added Nginx monitoring.
  • Check database charts if you have set up MySQL monitoring.
  • Send yourself a notification if you have configured notifications.

Try to connect to port 19999 from another network if your Netdata was not intended to be accessible.

Conclusion

Monitoring gives you direction in which you need to dig deeper in order to reveal suspicious tendencies. You can receive detailed information about the status of your apps and services in one easy-to-use monitoring solution. And that solution is to monitor Linux VPS with Netdata. With custom alerts and secure dashboards, it simplifies the process of troubleshooting.

Install the software. You should ensure that only you can access the dashboard. Monitor your website services. Create some useful alerts. Test everything. Then just let the software work by learning your server tendencies. In this way, you will have much more valuable data about your HostOnce VPS rather than guesses next time it slows down.

FAQs

What is Netdata server monitoring?
How can I install Netdata on my Linux VPS?
Is Netdata free?
Can Netdata notify me about server problems?
Can Netdata affect the performance of a VPS?

Was this article helpful?
Written byMUsama

Muhammad Usama has had impactful journey of almost a decade exploring the wonders of writing. He is always excited to share relevant knowledge with the community. Usama enjoys reading books and travelling in his free time.

Related articles

Still need help?

Our support team is available 24/7 and usually replies within minutes.

Submit a request