• Get In Touch
August 7, 2016

Monitor Your Linux Machine Using Netdata

Need Hosting? Try ours, it's fast, reliable and feature loaded with support you can depend on.
View Plans

Netdata is an open source tool to monitor your Linux machine which provides real-time statistics about your server uses in graphs and charts. Netdata can be installed on any system without disrupting any other application.

Netdata is extremely lightweight application and uses very less CPU cycles and memory used by Netdata is also extremely less which is nearly 40MB or less. While running Netdata does not uses disk I/O, but all the data is saved on RAM, while exiting the data is written in database and reloads the data when it starts. The Netdata web interface is very responsive and requires no flash plugin to display the data. The UI of Netdata is does not clutter things up. Although it has hundreds of charts and graphs, the most necessary ones are shown first.

The main features of Netdata are:

  • Responsive Bootstrap based dashboard
  • Very fast and light weight, uses very less resources
  • No configurations and dependencies
  • Monitor almost everything

In this guide we will learn to install Netdata on various platforms:

Requirements

Netdata does not need special hardware requirements and it can be installed on any system without the need for much RAM. In this guide we will use a non root account with sudo privileges to run the commands. If you are logged in as root user, omit sudo command from all the commands.

Install Netdata

Before installing any package it is important to update your system. For Ubuntu/Debian based system run:

    sudo apt-get update

For CentOS/RHEL systems:

    yum -y update

Now install the required packages using the following command, you can either install packages for having a basic netdata installation, which includes system monitoring and many applications, without mysql / mariadb, named, hardware sensors and SNMP. Run the following command.

    curl -Ss 'https://raw.githubusercontent.com/firehol/netdata-demo-site/master/install-required-packages.sh' >/tmp/kickstart.sh && bash /tmp/kickstart.sh netdata

Or you can install all the required packages for monitoring everything through Netdata.

    curl -Ss 'https://raw.githubusercontent.com/firehol/netdata-demo-site/master/install-required-packages.sh' >/tmp/kickstart.sh && bash /tmp/kickstart.sh netdata-all

The above commands will detect your operating system and will build dependencies according to your platform. You will see following output:

    Loading /etc/os-release ...

    /etc/os-release information:
    NAME            : Ubuntu
    VERSION         : 14.04.4 LTS, Trusty Tahr
    ID              : ubuntu
    ID_LIKE         : debian
    VERSION_ID      : 14.04

    We detected these:
    Distribution    : ubuntu
    Version         : 14.04
    Codename        : 14.04.4 LTS, Trusty Tahr
    Package Manager : install_apt_get
    Packages Tree   : debian
    Detection Method: /etc/os-release
    Default Python v: 2

    The following command will be run:


     >> IMPORTANT <

Press enter to run it and it will install all the dependencies, according to your selection.

Now install Netdata using the following commands, applicable for both Ubuntu and RHEL based system.

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

The above command will download the Netdata, you can now build the software and install it using the following command.

    sudo ./netdata-installer.sh

You will see following output.

    Welcome to netdata!
    Nice to see you are giving it a try!

    You are about to build and install netdata to your system.

    It will be installed at these locations:

      - the daemon    at /usr/sbin/netdata
      - config files  at /etc/netdata
      - web files     at /usr/share/netdata
      - plugins       at /usr/libexec/netdata
      - cache files   at /var/cache/netdata
      - db files      at /var/lib/netdata
      - log files     at /var/log/netdata
      - pid file      at /var/run

    This installer allows you to change the installation path.
    Press Control-C and run the same command with --help for help.

    Press ENTER to build and install netdata to your system >

Press enter button to proceed further. The installer will compile the source and install it, if successful then you will see following output.

    OK. NetData is installed and it is running.

    -------------------------------------------------------------------------------

    By default netdata listens on all IPs on port 19999,
    so you can access it with:

    http://this.machine.ip:19999/

    To stop netdata, just kill it, with:

      killall netdata

    To start it, just run it:

      /usr/sbin/netdata


    Enjoy!

The configuration file /etc/netdata/netdata.conf will be created for you, which holds the configurations of your Netdata demon. You can always start netdata with the following command.

    sudo /usr/sbin/netdata

To stop Netdata, you can always run the following command.

    sudo killall netdata

You can access Netdata graphs and charts by going to following link using your favorite browser.

    http://your-server-IP:19999

You will see something like shown below.

HP_NO_IMG/data/uploads/users/d0888044-e701-4d69-a760-fddd1b09f3f2/595917936.png” alt=”” />

To start Netdata automatically on boot time, run the following commands in Ubuntu/Debian based machines.

    sudo cp /usr/sbin/netdata /etc/init.d/netdata
    sudo update-rc.d netdata defaults

You will see following output.

    update-rc.d: warning: /etc/init.d/netdata missing LSB information
    update-rc.d: see 
     Adding system startup for /etc/init.d/netdata ...
       /etc/rc0.d/K20netdata -> ../init.d/netdata
       /etc/rc1.d/K20netdata -> ../init.d/netdata
       /etc/rc6.d/K20netdata -> ../init.d/netdata
       /etc/rc2.d/S20netdata -> ../init.d/netdata
       /etc/rc3.d/S20netdata -> ../init.d/netdata
       /etc/rc4.d/S20netdata -> ../init.d/netdata
       /etc/rc5.d/S20netdata -> ../init.d/netdata

Now Netdata will automatically start at boot time. To start Netdata automatically on CentOS/RHEL based machine, run the following commands.

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

Configuring Netdata

You can find the configuration file for data on /etc/netdata/netdata.conf also, you can view this file on your browser by going to the following link in your favorite browser.

    http://Your-Server-IP:19999/netdata.conf

You will see something like shown below.

HP_NO_IMG/data/uploads/users/d0888044-e701-4d69-a760-fddd1b09f3f2/2084820516.png” alt=”” />

To edit your configuration file, open your configuration file using your favorite editor.

    nano /etc/netdata/netdata.conf

You will see that all the configuration in the file is commented, so that Netdata can work on default values. You can override the values by uncommenting any value and then changing the default value from it.

In Global configuration section of the configuration file, you will see many important configurations, few of them are.

By default Netdata stores the data of past 1 hour. By storing the data of 1 hour it utilises around 10-15MB of RAM. If you want to increase limit of data it stores as history, you can override # history = 3600 by uncommenting and updating to make it history = 86400. Value of this option in given in seconds, 3600 denotes 1 hour and 86400 denotes 24 hours which is one day. You can provide any value for this according your choice.

Another important configuration is, # update every = 1. By default Netdata refreshes its graphs in every 1 second, you can change this configuration by uncommenting and updating # update every = 1 to update every = 10. If you change it 10, then graphs will be updated in 10 seconds, you can set this value according to your choice.

By default Netdata runs on port 19999, you can change it by uncommenting and updating # default port = 19999 setting to any free port you want.

Updating or Uninstalling Netdata

In future you can update your Netdata installation to the newest version by running the following commands.

    cd /path/to/netdata/files
    git pull
    sudo ./netdata-installer.sh

This will automatically download the latest version of Netdata and update it. After the update, installer will automatically start new version of Netdata.

To uninstall netdata in future, you can run the following commands.

    cd /path/to/netdata/files
    ./netdata-uninstaller.sh --force

The uninstaller will ask you to confirm all the deletions. Once done, Netdata will be successfully removed from your server.

Conclusion

In this tutorial we have installed Netdata, which is a feature rich application to monitor the server performance. You can now successfully install Netdata on both Ubuntu/Debian and CentOS/RHEL based system.

Need Hosting? Try ours, it's fast, reliable and feature loaded with support you can depend on.
View Plans

Share this Article!

Related Posts

Node.js Authentication – A Complete Guide with Passport and JWT

Node.js Authentication – A Complete Guide with Passport and JWT

Truth be told, it’s difficult for a web application that doesn’t have some kind of identification, even if you don’t see it as a security measure in and of itself. The Internet is a kind of lawless land, and even on free services like Google’s, authentication ensures that abuses will be avoided or at least […]

Node.js and MongoDB: How to Connect MongoDB With Node

Node.js and MongoDB: How to Connect MongoDB With Node

MongoDB is a document-oriented NoSQL database, which was born in 2007 in California as a service to be used within a larger project, but which soon became an independent and open-source product. It stores documents in JSON, a format based on JavaScript and simpler than XML, but still with good expressiveness. It is the dominant […]

Using MySQL with Node.js: A Complete Tutorial

Using MySQL with Node.js: A Complete Tutorial

Although data persistence is almost always a fundamental element of applications, Node.js has no native integration with databases. Everything is delegated to third-party libraries to be included manually, in addition to the standard APIs. Although MongoDB and other non-relational databases are the most common choice with Node because if you need to scale an application, […]

Node.Js Vs Django: Which Is the Best for Your Project

Node.Js Vs Django: Which Is the Best for Your Project

Django and NodeJs are two powerful technologies for web development, both have great functionality, versatile applications, and a great user interface. Both are open source and can be used for free. But which one fits your project best? NodeJs is based on JavaScript, while Django is written in Python. These are two equally popular technologies […]

Nodejs Vs PHP:  Which Works Best?

Nodejs Vs PHP: Which Works Best?

Before getting into the “battle” between Node.js and PHP we need to understand why the issue is still ongoing. It all started with the increased demand for smartphone applications, their success forcing developers to adapt to new back-end technologies that could handle a multitude of simultaneous requests. JavaScript has always been identified as a client-side […]