How to Install Netdata on RHEL 7
Netdata is a real-time performance monitoring agent that delivers per-second metrics with zero configuration on most Linux systems. Unlike heavier monitoring solutions that scrape on 15-second or 1-minute intervals, Netdata collects and stores data every second, making it ideal for diagnosing transient performance problems that would be invisible at coarser resolutions. Its embedded web dashboard requires no external database, no separate front-end server, and no query language to learn — you simply install it and open a browser. This guide covers two installation methods for RHEL 7 (the official kickstart script and EPEL), configuration of the Netdata agent, dashboard access, optional Netdata Cloud connection, custom alerting, and firewall rules.
Prerequisites
- RHEL 7 server with root or sudo access
- At least 512 MB of free RAM (Netdata typically uses 50–150 MB at runtime)
- Internet access for the kickstart installer or EPEL repository (or a local mirror)
- Port 19999 accessible from your workstation, or an SSH tunnel if the server is not directly reachable
curlorwgetinstalled
Step 1: Install Netdata Using the Official Kickstart Script
The fastest and most comprehensive way to install Netdata is via the official kickstart.sh installer. It detects your distribution, installs required dependencies, compiles or installs the latest stable release, and configures a systemd service automatically:
curl https://get.netdata.cloud/kickstart.sh -o /tmp/netdata-kickstart.sh
# Review the script before running it — this is good practice for any downloaded installer
less /tmp/netdata-kickstart.sh
bash /tmp/netdata-kickstart.sh --stable-channel --disable-telemetry
The --stable-channel flag installs the latest stable release rather than a nightly build. The --disable-telemetry flag opts out of anonymous usage statistics.
The installer will:
- Install build dependencies via
yumif compiling from source - Download and verify the release tarball or RPM
- Install Netdata to
/usr/libexec/netdataand/etc/netdata - Create the
netdatasystem user - Create and enable the
netdatasystemd service
After the script completes, verify the service is running:
systemctl status netdata
Step 2: Alternative Installation via EPEL
If you prefer to use your system’s package manager and avoid running an internet-sourced shell script directly, you can install Netdata from the EPEL (Extra Packages for Enterprise Linux) repository. This method installs an older but stable version:
# Enable EPEL if not already enabled
yum install -y epel-release
# Install Netdata from EPEL
yum install -y netdata
# Enable and start the service
systemctl enable netdata
systemctl start netdata
systemctl status netdata
Note that the EPEL package may lag behind the upstream release. For the latest collectors and features, the kickstart script is preferred.
Step 3: Configure Netdata
Netdata’s primary configuration file is /etc/netdata/netdata.conf. On a fresh installation this file is minimal — most settings use their built-in defaults. To view all available options with their defaults, run:
/usr/libexec/netdata/netdata -W dump-config
The most commonly adjusted settings are in the [global] and [web] sections. Edit the configuration file to tune the web server port, memory mode, and history retention:
# /etc/netdata/netdata.conf
[global]
# Run as this user (default: netdata)
run as user = netdata
# Metric history in seconds (default: 3600 = 1 hour per dimension)
# Increase to retain more history in RAM, or use 'dbengine' for disk-backed storage
history = 7200
# Memory mode: ram, save, map, none, or dbengine
# 'dbengine' stores history on disk and supports much longer retention
memory mode = dbengine
# Disk space for dbengine tier 0 (hot data), in MiB
page cache size = 32
[web]
# Listening address — use 0.0.0.0 to bind all interfaces
bind to = 0.0.0.0:19999
# Disable TLS if you terminate SSL at a reverse proxy (nginx/haproxy)
ssl key = /etc/netdata/ssl/key.pem
ssl certificate = /etc/netdata/ssl/cert.pem
After editing, restart Netdata:
systemctl restart netdata
Step 4: Open the Firewall and Access the Dashboard
Allow port 19999 through firewalld. For internal networks this is usually acceptable; for internet-facing servers consider restricting access to specific source IPs:
# Allow all sources (suitable for internal/VPN networks)
firewall-cmd --permanent --add-port=19999/tcp
firewall-cmd --reload
# Alternatively, restrict to a specific management subnet
firewall-cmd --permanent --add-rich-rule='rule family="ipv4"
source address="192.168.10.0/24"
port port="19999" protocol="tcp" accept'
firewall-cmd --reload
Open your browser and navigate to http://<server-ip>:19999. You will immediately see the Netdata dashboard showing live CPU, memory, disk, network, and process metrics updating every second. No login is required by default — authentication can be added via a reverse proxy if needed.
Step 5: Connect to Netdata Cloud (Optional)
Netdata Cloud provides a free hosted service that aggregates dashboards from multiple agents, provides a unified view, and enables team-based access control without exposing individual agent ports to the internet. To connect your agent:
- Create a free account at
https://app.netdata.cloud. - After logging in, click Connect Nodes and copy the provided
netdata-claim.shcommand. It will look similar to:
sudo /usr/libexec/netdata/netdata-claim.sh
-token=YOUR_CLAIM_TOKEN
-rooms=YOUR_ROOM_ID
-url=https://app.netdata.cloud
- Run the command on your RHEL 7 server. The agent will register itself with Netdata Cloud without any inbound port changes — it uses an outbound websocket connection.
- Refresh the Netdata Cloud UI and your node will appear in the Nodes tab.
Step 6: Configure Alerts
Netdata ships with hundreds of pre-configured alert rules covering disk space, CPU, memory, and common application metrics. Alert configurations live in /etc/netdata/health.d/. To create a custom alert — for example, to warn when disk usage on /var exceeds 80%:
cat > /etc/netdata/health.d/disk_var.conf <<'EOF'
# Alert when /var filesystem usage exceeds 80%
alarm: disk_space_var
on: disk.space
os: linux
lookup: average -30s percentage of used
units: %
every: 1m
warn: $this > 80
crit: $this > 90
delay: down 15m multiplier 1.5 max 1h
info: disk utilization for /var
to: sysadmin
EOF
Review existing alert files for syntax examples:
ls /etc/netdata/health.d/
cat /etc/netdata/health.d/cpu.conf
Step 7: Configure Notifications to Slack and Email
Netdata sends alert notifications through /etc/netdata/health_alarm_notify.conf. This file contains configuration blocks for dozens of notification providers. Edit it to enable the ones you need:
# /etc/netdata/health_alarm_notify.conf (key sections)
# Email notifications (requires a working MTA such as Postfix)
SEND_EMAIL="YES"
DEFAULT_RECIPIENT_EMAIL="[email protected]"
# Slack notifications
SEND_SLACK="YES"
SLACK_WEBHOOK_URL="https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX"
DEFAULT_RECIPIENT_SLACK="#alerts"
Test the notification configuration:
su -s /bin/bash netdata
/usr/libexec/netdata/plugins.d/alarm-notify.sh test email
/usr/libexec/netdata/plugins.d/alarm-notify.sh test slack
Reload Netdata to apply all configuration changes:
systemctl restart netdata
# Or, to reload health configuration without a full restart:
kill -USR2 $(pidof netdata)
Conclusion
You have installed and configured Netdata on RHEL 7, giving you second-by-second visibility into your server’s CPU, memory, disk, network, and application metrics through an always-on embedded dashboard. The dbengine storage mode provides disk-backed history well beyond the default in-memory limit, while the built-in health engine and flexible notification system mean you will receive timely alerts before problems escalate. Whether you access the dashboard directly on port 19999, aggregate multiple nodes through Netdata Cloud, or embed the metrics into a broader observability platform, Netdata delivers an unusually fast path from bare OS to actionable monitoring insight.