Netdata – A Real-Time Performance Monitoring Tool for Linux Systems

netdata is a extremely optimized Linux utility that provides real-time (per second) performance monitoring for Linux systems, applications, SNMP devices, etc. and shows full interactive charts that absolutely render all collected values over the web browser to analyze them.

Don’t Miss: 20 Useful Command-line Tools to Monitor Linux Performance

It has been developed to be installed on each Linux system, without interrupting the current running applications on it. You can use this tool to monitor and get overview of what is happening in real-time and what just happened, on your Linux systems and applications.

This is what it monitors:

  1. Total and Per Core CPU usage, interrupts, softirqs and frequency.
  2. Total Memory, RAM, Swap and Kernel usage.
  3. Disk I/O (per disk: bandwidth, operations, backlog, utilization, etc).
  4. Monitors Network interfaces including: bandwidth, packets, errors, drops, etc).
  5. Monitors Netfilter / iptables Linux firewall connections, events, errors, etc.
  6. Processes (running, blocked, forks, active, etc).
  7. System Applications with the process tree (CPU, memory, swap, disk reads/writes, threads, etc).
  8. Apache and Nginx Status monitoring with mod_status.
  9. MySQL database monitoring: queries, updates, locks, issues, threads, etc.
  10. Postfix email server message queue.
  11. Squid proxy server bandwidth and requests monitoring.
  12. Hardware sensors (temperature, voltage, fans, power, humidity, etc).
  13. SNMP devices.

netdata Installation on Linux Systems

The latest release of netdata can be easily installed on Arch Linux, Gentoo Linux, Solus Linux and Alpine Linux using your package manager as shown.

$ sudo pacman -S netdata         [Install Netdata on Arch Linux]
$ sudo emerge --ask netdata      [Install Netdata on Gentoo Linux]
$ sudo eopkg install netdata     [Install Netdata on Solus Linux]
$ sudo apk add netdata           [Install Netdata on Alpine Linux]

On Debian/Ubuntu and RHEL/CentOS/Fedora, there is one line installation script that will install latest netdata and also keep it up to date automatically.

$ bash <(curl -Ss https://my-netdata.io/kickstart.sh            [On 32-bit]
$ bash <(curl -Ss https://my-netdata.io/kickstart-static64.sh)  [On 64-bit]

The above script will:

  • discover the distribution and installs the needed software packages for building netdata (will ask for confirmation).
  • downloads the latest netdata source tree to /usr/src/netdata.git.
  • installs netdata by executing ./netdata-installer.sh from the source tree.
  • installs netdata-updater.sh to cron.daily, so your netdata will be updated daily (you will receive a alert from cron only if the update fails).

Note: The kickstart.sh script progress all its parameters to netdata-installer.sh, so you can define more parameters to modify the installation source, enable/disable plugins, etc.

Alternatively, you can also install latest netdata manually by cloning its repository, but before you start installing netdata, make sure you have these basic build environment packages installed on the system, if not install it using your respective distribution package manager as shown:

On Debian / Ubuntu

# apt-get install zlib1g-dev gcc make git autoconf autogen automake pkg-config

On Centos / Redhat / Fedora

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

Next, clone the netdata repository from git and run netdata installer script to build it.

# git clone https://github.com/firehol/netdata.git --depth=1
# cd netdata
# ./netdata-installer.sh

Note: The netdata-installer.sh script will build netdata and install it on your Linux system.

Once the netdata installer finishes, the file /etc/netdata/netdata.conf will be created in your system.

Now it’s time to start netdata by executing the following command from the terminal.

# /usr/sbin/netdata

You can also stop netdata by terminating it’s process with killall command as shown.

# killall netdata

Note: Netdata saves on exit its round robbin database information under /var/cache/netdata file, so that when you start again netdata, it will continue from where it was stopped last time.

Starting and Testing netdata

Now open your browser and navigate to the following address to access the web site for all graphs:

# http://127.0.0.1:19999/

Check out the video that shows how Real-time Linux performance monitoring done here: https://www.youtube.com/watch?v=QIZXS8A4BvI

netdata - Linux Real Time Performance Monitoring

netdata – Linux Real Time Performance Monitoring

You can also view the running configuration of netdata at any time, by going to:

http://127.0.0.1:19999/netdata.conf
netdata Configuration

netdata Configuration

Updating netdata

You can update netdata daemon to the most recent version by going into netdata.git directory you downloaded before and running:

# cd /path/to/netdata.git
# git pull
# ./netdata-installer.sh

The above netdata installer script will build new version and restart netdata.

Reference: https://github.com/firehol/netdata/

Best Affordable Linux and WordPress Services For Your Business
Outsource Your Linux and WordPress Project and Get it Promptly Completed Remotely and Delivered Online.

If You Appreciate What We Do Here On TecMint, You Should Consider:

  1. Stay Connected to: Twitter | Facebook | Google Plus
  2. Subscribe to our email updates: Sign Up Now
  3. Get your own self-hosted blog with a Free Domain at ($3.45/month).
  4. Become a Supporter - Make a contribution via PayPal
  5. Support us by purchasing our premium books in PDF format.
  6. Support us by taking our online Linux courses

We are thankful for your never ending support.

Ravi Saive

I am Ravi Saive, creator of TecMint. A Computer Geek and Linux Guru who loves to share tricks and tips on Internet. Most Of My Servers runs on Open Source Platform called Linux. Follow Me: Twitter, Facebook and Google+

Your name can also be listed here. Got a tip? Submit it here to become an TecMint author.

RedHat RHCE and RHCSA Certification Book
Linux Foundation LFCS and LFCE Certification Preparation Guide

You may also like...

41 Responses

  1. Petru says:

    Hi,
    I`ve got problem to install on Debian 8

    log:
    checking for UUID… no
    configure: error: Package requirements (uuid) were not met:

    No package ‘uuid’ found

    Consider adjusting the PKG_CONFIG_PATH environment variable if you
    installed software in a non-standard prefix.

    Alternatively, you may set the environment variables UUID_CFLAGS
    and UUID_LIBS to avoid the need to call pkg-config.
    See the pkg-config man page for more details.

    If you have any idea please help!
    thanks in advance

  2. Sourav Saha says:

    Is it okay to install Netdata on a running LAMP server? I mean is it something like webmin, where you have to install before everything?

    • Ravi Saive says:

      @Sourav,

      Yes, its okay to install Netdata monitoring tool on LAMP setup or any application setup, as its runs on different port so no issues at all.

    • Rafael Rojas says:

      You can install netdata in /opt/ . It runs on 19999 port, so if you are not running another app in that port, then will be ok.

  3. Mohsen says:

    Thanks a lot it is a great tool.
    There is a problem in here you should install uuid-dev for the install script to work correctly.

  4. rwilcher says:

    This thing is insanely cool. Can’t believe how easy install was. I can even monitor the app remotely on a winblows machine ! I must have screwed something up. Works too well. I am blown away by the app. KUDOS!

  5. Khoi says:

    # /usr/sbin/netdata
    I got some errors as executing the before-mentioned command.
    [[email protected] ~]# /usr/sbin/netdata
    16-04-04 07:58:19: ERROR: netdata: IPv6 bind() failed. (errno 98, Address already in use)
    16-04-04 07:58:19: ERROR: netdata: IPv4 bind() failed. (errno 98, Address already in use)
    16-04-04 07:58:19: FATAL: netdata: Cannot listen socket. # : Success

    • Ravi Saive says:

      @Khoi,

      It seems that the port 19999, which is used by netdata monitoring tool was already using by some other application, try to use different port for netdata while executing like:

      # /usr/sbin/netdata -p portnumber
      
      • MiguelCM says:

        Hi…

        Not found available port… how can find one?
        I try with others but always send same error.

        Tanks.

        • Ravi Saive says:

          @Miguel,

          Use netstat command to find all listening ports and then assign unused port the netdata daemon..

          • Bill says:

            Could I ask you to please break this down into steps for a noob? Thanks.

          • Ravi Saive says:

            @Bill,

            It’s already covered in step-by-step mode, by keeping the newbies in mind, let me know where you facing problems?

  6. Shavkat Isakov says:

    Thanks for the great article. Just FYI, the package for Debian/Ubuntu is zlib1g-dev (it is 1 (one) there.)

  7. Rafael Rojas says:

    There are agents if I want to monitor another hosts?

  8. Gilang says:

    Wondering about how many load will com up when running this script it self.
    However, nice post!

  9. vasim says:

    Hey, it’s a really superb monitoring tool very easy to monitor all via GUI but one thing mysql is not showing here where as in this article it showed it will monitor mysql also..Kindly confirm this..

  10. Phentora says:

    This is so cool. Thanks a lot for informing people about this wonderful tool. I was looking for something that monitors everything happening on my Linux server.

Got something to say? Join the discussion.

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.