I just recently learned about a new performance monitoring software called Netdata, so I figured I’d quickly throw it in a test box to check it out. This tiny software is awesome. This is real-time performance monitoring done insanely well. The dashboard UI is beautiful and they even have a demo site you should check out here.
This is when I’d normally write a paragraph on what Netdata can do and how awesome it is, but I figured I’d quote their Github page instead since they already do a great job of summing everything up.
“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
- 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”
My favorite thing about it is just how well it automatically monitors almost everything it can possibly monitor with zero configuration (it also just recently added health monitoring alarms). What it monitors right out of the box will be more than enough for the vast majority of you.
NOTE BEFORE INSTALLING: I installed this on an Ubuntu Server 16.04 VM but this should work on almost every major Linux system. It will differ from these instructions, though, when you’re configuring Netdata to start at boot and are NOT using systemd. If you’re not using systemd, then please refer to these instructions here on the official netdata wiki page. Also, these instructions assume you’re not logged in as root (in which you can remove sudo).
Installing Netdata to monitor your Linux environment
1. Since we’ll be using curl to install Netdata and the required dependencies, let’s make sure we install it if you don’t already have curl.
sudo apt-get install curl
yum install curl
2. Option 1 – If you want to install absolutely everything Netdata can monitor, run the following. You’ll have to hit Enter then Y once executed.
curl -Ss 'https://raw.githubusercontent.com/firehol/netdata-demo-site/master/install-required-packages.sh' >/tmp/kickstart.sh && bash /tmp/kickstart.sh netdata-all
Option 2 – If you’d rather install the very basic requirements of what Netdata can monitor and want to keep it extremely light, run the following.
curl -Ss 'https://raw.githubusercontent.com/firehol/netdata-demo-site/master/install-required-packages.sh' >/tmp/kickstart.sh && bash /tmp/kickstart.sh netdata
sudo apt-get install jq nodejs
For CentOS/Fedora/Red Hat:
yum install jq nodejs
3. Let’s install Netdata! (Remember, if you’re logged in as root then you obviously don’t have to use sudo). Your terminal should look similar to mine below when finished.
git clone https://github.com/firehol/netdata.git --depth=1 cd netdata sudo ./netdata-installer.sh
4. Now, let’s make sure Netdata always starts at boot.
sudo killall netdata sudo cp system/netdata.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable netdata sudo service netdata start
5. That’s it! If you want to update it any time after it’s installed, you’ll have to get into the netdata.git you downloaded and run the installer again. If you just downloaded it into your home directory, then you can just do the following.
cd netdata git pull sudo ./netdata-installer.sh
6. Let’s go check out the beautiful outcome of your work by going to http://IP_of_VM:19999/. Your screen should look similar to mine below.
From here, I’d highly suggest playing around with it and getting to know all of the awesome monitoring features available with Netdata and also try installing it on anything using Linux. You can also check out the wiki here to see what else you can do with it. Now go have fun monitoring everything in that sweet, sweet UI.