Netdata – Real-time performance monitoring

Netdata_LogoIf you are looking for a real time performance monitoring and web based, Netdata is what you need.

On top of being in real time, per second updates, with 300+ graphs and 2000+ metrics monitored, NetData requires almost no configuration and no maintenance.

2 years ago, I presented VMStats, an other real time performance monitoring app, webbased. It was (still is) fancy but only lacked some detailed of processes, networks, etc… like what some command line would give you.

And that is where Netdata can interest you, as it combines both world.

netdata realtime monitoring - summary


Written in C, as an optimized Linux daemon providing all your metrics on the web (CPU, Disk, Ram, Bandwidth, Apache, MySQL, SNMP, …..) through a fancy dashboard (bootstrap), Netdata can also connect to API to further extend its monitoring capabilities (Bash, NodeJS, …). For the full detail, I suggest you to visit their Github page or check their demo page.


netdata realtime monitoring - network


So let’s see how to install it !



They have build an auto-installer to prepare your system with all the dependencies needed to monitor your server. It works on most platforms (Arch, Gentoo, Debian, Redhat, Suse and all their derivatives) as explained on their wiki.


1) Install the dependencies using the auto-installer

You will first need curl:

sudo apt-get install curl

And then run either of the following:

  • To get a basic installation (No mysql/mariadb hardware sensors, SNMP monitoring)

    curl -Ss '' >/tmp/ && bash /tmp/ netdata

  • To get the complete set to monitor

    curl -Ss '' >/tmp/ && bash /tmp/ netdata-all


2) Install Netdata

You will need to clone their git repo (So make sure you got git or git-core installed) and then run:

git clone --depth=1
cd netdata

And launch their installation script:


It will install Netdata and start it.


3) Starting Netdata at boot

To ensure Netdata starts at boot, you can use their systemd script.

killall netdata
cp system/netdata.service /etc/systemd/system/
systemctl daemon-reload
systemctl enable netdata
service netdata start

Netdata should be running again and accessible to http://this.machine.ip:19999/

If you are not using systemd but init.d, adapt the steps to use the netdata-init-d script instead,


Virtualhost configuration

I have too many services running (or tried too many) to remember all those ports. Instead, I use a dedicated virtualhost to redirect a sub-domain to the port. And this is how to do it.

Obviously, the first thing you need to do is to create a CNAME or A redirection through your domain name registrar, like live.domain.tld poiting to your public IP.

Then, you need to install the mod-proxy-html to do the redirection. In root, or with sudo, type:

apt-get install libapache2-mod-proxy-html

while you will also need to activate the mod-proxy-http (Already installed)

a2enmod proxy_http

then create a new virtualhost:

nano /etc/apache2/sites-available/netdata

and reuse/adapt the content of my virtualhost:

<VirtualHost *:80>

        ProxyRequests Off
        <Proxy *>
        Order deny,allow
        Allow from all
        ProxyPass / http://localhost:19999/
        ProxyPassReverse / http://localhost:19999/

Save it and enable it.

a2ensite netdata

Reload Apache

service apache2 reload

and you should now have access to your Netdata monitoring app using your subdomain.


Looks nice, isn’t it !



Loves to discover web-based apps to install on his own server@home and write articles about it


Add a comment