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.