Real-time performance monitoring for Linux systems and applications use Netdata

Written on 16 June 2016

What is Netdata ?

Netdata is a highly optimized Linux daemon providing real-time performance monitoring for Linux systems, Applications, SNMP devices, over the web!

It tries to visualize the truth of now, in its greatest detail, so that you can get insights of what is happening now and what just happened, on your systems and applications.

This is what you get:

  • Stunning bootstrap dashboards, out of the box (themable: dark, light)
  • Blazingly fast and super efficient, mostly written in C (for default installations, expect just 2% of a single core CPU usage and a few MB of RAM)
  • Zero configuration - you just install it and it autodetects everything
  • Zero dependencies, it is its own web server for its static web files and its web API
  • Zero maintenance, you just run it, it does the rest
  • Custom dashboards that can be built using simple HTML (no javascript necessary)
  • Extensible, you can monitor anything you can get a metric for, using its Plugin API (anything can be a netdata plugin - from BASH to node.js, so you can easily monitor any application, any API)
  • Embeddable, it can run anywhere a Linux kernel runs and its charts can be embedded on your web pages too


  1. Prepare your system , install dependencies
    Debian / Ubuntu
apt-get install zlib1g-dev uuid-dev libmnl-dev gcc make git autoconf autogen automake pkg-config  

Centos / Fedora / Redhat

yum install zlib-devel libuuid-devel libmnl-devel gcc make git autoconf autogen automake pkgconfig  

Arch Linux

If your linux distro is Arch base just install netdata.

pacman -S netdata  

Additional optional packages you might need

It would be nice (but not required) if you also install: curl (used by shell plugins to collect data from applications),
jq (a JSON parser and query command line tool),
nodejs (used for node.js plugins for monitoring named and SNMP devices)
You can install them using this:
debian / ubuntu

apt-get install curl jq nodejs  

* centos / fedora / redhat*

yum install curl jq nodejs  

2. Install netdata
Do this to install and run netdata:

download it - the directory 'netdata' will be created

git clone --depth=1  
cd netdata  

build ,install and start it


The script will build netdata and install it to your system.

If you don't want to install it on the default directories, you can run the installer like this:

./ --install /opt.

This one will install netdata in /opt/netdata.
Once the installer completes, the file /etc/netdata/netdata.conf will be created (if you changed the installation directory, the configuration will appear in that directory too).

You can edit this file to set options. One common option to tweak is history, which controls the size of the memory database netdata will use. By default is 3600 seconds (an hour of data at the charts) which makes netdata use about 10-15MB of RAM (depending on the number of charts detected on your system). Check Memory Requirements.

To apply the changes you made, you have to restart netdata.
3. Use netdata

$ systemctl start netdata
$ systemctl stop netdata
$ systemctl restart netdata

4. Test
open http:server-ip:19999
5. Run netdata behind nginx use proxy_server
Create /etc/nginx/sites-available/netdata:

server {  
 access_log   /var/log/nginx/;
        error_log    /var/log/nginx/;

   add_header X-Cache $upstream_cache_status;
   location / {
        proxy_pass http://localhost:19999;


Enable nginx site config

ln -s /etc/nginx/sites-available/netdata /etc/nginx/sites-enable/  
service nginx reload  

Now go to to see Netdata working