(Last Updated On: March 9, 2019)

Welcome to our guide on how to install Netdata on RHEL 8 / CentOS 8. Netdata is a powerful real-time and distributed health and performance monitoring tool for Applications and infrastructure systems.

Netdata can be used on physical servers, Virtual Machines, containers, and IoT devices. It gives you modern interactive web dashboards for viewing your server metrics with support for various data stores for persistent storage.

Features of netdata

Here are the key features of Netdata monitoring tool.

  • Auto-scaling of chart units
  • IP access lists for filtering access to netdata
  • Enhanced VMs and containers monitoring
  • Highlighted time-frames across all charts of the dashboard
  • Dashboard snapshots, for loading/saving of selected time-frames
  • Timezone conversion at the dashboard to allow comparing charts with server logs
  • Zero maintenance, configuration, and dependencies
  • It is easily customizable, extensible, and embeddable
  • Scales to infinity
  • Time-series back-ends supported – it can archive its metrics on graphite, opentsdb, Prometheus, JSON document DBs, in the same or lower detail.

Install Netdata on RHEL 8 / CentOS 8

We’re going to build and install Netdata on RHEL 8 / CentOS 8 from source. Let’s kickoff by ensuring all dependencies are installed.

Login to your server run below commands.

sudo dnf install git zlib-devel libuuid-devel libmnl gcc make git autoconf automake pkgconfig curl findutils

Next is to clone Netdata code from Github.

git clone https://github.com/netdata/netdata.git --depth=100 

Start the build and installation of Netdata on RHEL 8 / CentOS 8

$ sudo ./netdata-installer.sh

  ^
  |.-.   .-.   .-.   .-.   .  netdata                                        
  |   '-'   '-'   '-'   '-'   real-time performance monitoring, done right!  
  +----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+--->


  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   in /etc/netdata
   - web files      in /usr/share/netdata
   - plugins        in /usr/libexec/netdata
   - cache files    in /var/cache/netdata
   - db files       in /var/lib/netdata
   - log files      in /var/log/netdata
   - pid file       at /var/run/netdata.pid
   - logrotate file at /etc/logrotate.d/netdata

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 when propmted. The installation is automated and no further input is required from you.

You should get output like below if installation was successful.

 --- Check KSM (kernel memory deduper) --- 

Memory de-duplication instructions

You have kernel memory de-duper (called Kernel Same-page Merging,
or KSM) available, but it is not currently enabled.

To enable it run:

    echo 1 >/sys/kernel/mm/ksm/run
    echo 1000 >/sys/kernel/mm/ksm/sleep_millisecs

If you enable it, you will save 40-60% of netdata memory.

 --- Check version.txt --- 
 --- Check apps.plugin --- 
 --- Basic netdata instructions --- 

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

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

To stop netdata run:

  systemctl stop netdata

To start netdata run:

  systemctl start netdata



 --- We are done! --- 

  ^
  |.-.   .-.   .-.   .-.   .-.   .  netdata                          .-.   .-
  |   '-'   '-'   '-'   '-'   '-'   is installed and running now!  -'   '-'  
  +----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+--->

 enjoy real-time performance and health monitoring...

Netdata service should be started automatically after installation.

$ systemctl status netdata
● netdata.service - Real time performance monitoring
Loaded: loaded (/usr/lib/systemd/system/netdata.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2019-03-09 09:15:37 EAT; 5min ago
Process: 13839 ExecStartPre=/bin/chown -R netdata:netdata /var/run/netdata (code=exited, status=0/SUCCESS)
Process: 13837 ExecStartPre=/bin/mkdir -p /var/run/netdata (code=exited, status=0/SUCCESS)
Process: 13835 ExecStartPre=/bin/chown -R netdata:netdata /var/cache/netdata (code=exited, status=0/SUCCESS)
Process: 13833 ExecStartPre=/bin/mkdir -p /var/cache/netdata (code=exited, status=0/SUCCESS)
Main PID: 13841 (netdata)
Tasks: 23 (limit: 11510)
Memory: 37.3M
CGroup: /system.slice/netdata.service
├─13841 /usr/sbin/netdata -P /var/run/netdata/netdata.pid -D -W set global process scheduling policy keep -W set global OOM score keep
├─13913 /usr/libexec/netdata/plugins.d/go.d.plugin 1
└─13922 /usr/libexec/netdata/plugins.d/apps.plugin 1
Mar 09 09:15:37 rhe8.local systemd[1]: Starting Real time performance monitoring…
Mar 09 09:15:37 rhe8.local systemd[1]: Started Real time performance monitoring.

Accessing Netdata UI

Netdata by default listens on all IPs on port 19999, if you have firewalld service, allow access to this port within LAN.

sudo firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" \
source address="192.168.122.0/24" port protocol="tcp" port="19999" accept'

If the Server is not exposed to the internet, you can allow access from any IP.

sudo firewall-cmd --add-port=19999/tcp --permanent

Reload firewalld to apply changes.

sudo firewall-cmd --reload

Access Netdata Web dashboard on server IP address and port 19999.

If you’re a fan of Grafana, check our tutorial on How to Monitor Linux Server with Netdata and Grafana.

Other interesting articles:

Linux Process Monitoring with gotop – Linux top alternative

Install and Configure Telegraf on RHEL 8 / CentOS 8

How to Install Grafana on RHEL 8

How to Install InfluxDB on RHEL 8 / CentOS 8