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.
Enable EPEL repository:
### CentOS 8 ###
sudo dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo dnf config-manager --set-enabled powertools
### RHEL 8 ###
sudo subscription-manager repos --enable codeready-builder-for-rhel-8-x86_64-rpms
Login to your server run below commands.
sudo dnf -y install git zlib-devel libuuid-devel libmnl gcc make git autoconf automake pkgconfig curl findutils libuv-devel sudo dnf groupinstall "development tools" -y
Method 1: Install Netdata using automated script (Recommended)
Download installation script
curl -fsSL -O https://my-netdata.io/kickstart.sh
mv kickstart.sh netdata-installer.sh
Make the script executable:
chmod +x netdata-installer.sh
Run the script to install Netdata on CentOS 8 / RHEL 8:
sudo ./netdata-installer.sh --non-interactive
Expected output if the installation is successful
Complete!
OK
Tue Oct 18 23:28:39 EAT 2022 : INFO: netdata-updater.sh: Auto-updating has been ENABLED through cron, updater script linked to /etc/cron.daily/netdata-updater\n
Tue Oct 18 23:28:39 EAT 2022 : INFO: netdata-updater.sh: If the update process fails and you have email notifications set up correctly for cron on this system, you should receive an email notification of the failure.
Tue Oct 18 23:28:39 EAT 2022 : INFO: netdata-updater.sh: Successful updates will not send an email.
Successfully installed the Netdata Agent.
Official documentation can be found online at https://learn.netdata.cloud/docs/.
Looking to monitor all of your infrastructure with Netdata? Check out Netdata Cloud at https://app.netdata.cloud.
Join our community and connect with us on:
- GitHub: https://github.com/netdata/netdata/discussions
- Discord: https://discord.gg/5ygS846fR6
- Our community forums: https://community.netdata.cloud/
Check service status:
$ systemctl status netdata.service
● netdata.service - Real time performance monitoring
Loaded: loaded (/usr/lib/systemd/system/netdata.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2022-10-18 23:28:38 EAT; 1min 44s ago
Main PID: 56246 (netdata)
Tasks: 56 (limit: 49442)
Memory: 74.6M
CGroup: /system.slice/netdata.service
├─56246 /usr/sbin/netdata -P /run/netdata/netdata.pid -D
├─56251 /usr/sbin/netdata --special-spawn-server
├─56779 /usr/libexec/netdata/plugins.d/apps.plugin 1
└─56788 /usr/libexec/netdata/plugins.d/go.d.plugin 1
...
Method 2: Manually build netdata (longer route)
Start by cloning the project source from Github.
git clone https://github.com/netdata/netdata.git --depth=100
Start the build and installation of Netdata on RHEL 8 / CentOS 8
$ cd netdata/
$ 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 / CentOS 8