Thursday, March 31, 2016

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.
It has been developed to be installed on each Linux system, without interrupting the current running application 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

1. Before you start installing netdata utility, 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
2. 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.
3. 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

4. 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
5. 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

6. 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.