Install and Configure Netdata Monitoring on RHEL 10 / Rocky Linux 10
Since today is March 23, 2026, staying updated with the latest monitoring tools like Netdata v2.9.0 is a smart move for your infrastructure. While Zabbix is great for long-term trends and alerts, Netdata is unbeatable for "per-second" real-time troubleshooting.
Netdata Real-Time Monitoring Guide
Core Capability: Netdata is a lightweight, high-performance tool that collects thousands of metrics per second with zero-configuration, providing an instant, interactive dashboard.
System Support: It runs efficiently on RHEL 10, Rocky Linux 10, AlmaLinux 10, FreeBSD, macOS, and Kubernetes.
Key Installation Steps:
Kickstart Installation: Uses a single-line script for rapid deployment.
Dashboard & Alarms: Out-of-the-box health checks and visual data representation.
Application Monitoring: Automatically detects and monitors web servers, databases, and containers.
Security & Access: Configuration includes firewall rules and securing the dashboard using an Nginx Reverse Proxy.
System Requirements & Preparation
OS & Hardware: A server running RHEL 10, Rocky Linux 10, or AlmaLinux 10 with at least 1 CPU core and 1 GB RAM.
Connectivity: A stable internet connection is required for the kickstart installation and package downloads.
Security & Networking: * Port 19999/TCP: Must be open to access the native Netdata dashboard.
Ports 80/443: Should be used if you follow the recommended path of setting up an Nginx reverse proxy for better security.
Access: Root or sudo privileges are mandatory for the installation and configuration of system alarms.
wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh --dont-wait
The --dont-wait flag skips the confirmation prompt. If you prefer curl over wget:
curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --dont-wait
Successfully installed netdata--- You can now access Netdata at http://localhost:19999
netdata -v
netdata v2.9.0
sudo systemctl enable --now netdata
sudo systemctl status netdata
● netdata.service - Real time performance monitoringLoaded: loaded (/usr/lib/systemd/system/netdata.service; enabled; preset: disabled)Active: active (running) since Sat 2026-03-22 10:15:32 UTC; 5s agoMain PID: 12345 (netdata)Tasks: 45 (limit: 23456)Memory: 120.4MCPU: 2.134sCGroup: /system.slice/netdata.service
http://your-server-ip:19999
Replace your-server-ip with your server’s actual IP address – for example, http://192.168.1.50:19999. The dashboard loads instantly and starts displaying real-time metrics with per-second granularity. You will see system overview charts for CPU, memory, disk I/O, and network traffic right on the landing page.
If the dashboard does not load, check that the firewall allows port 19999 (covered in Step 8) and that the Netdata service is running.
/etc/netdata/netdata.conf. This file controls the agent’s behavior including data retention, memory usage, listening address, and update frequency. The recommended way to edit it is through the built-in editor script:sudo /etc/netdata/edit-config netdata.conf
global) section:[global]# Change the default listening port (default: 19999)default port = 19999# Bind to a specific IP (default: all interfaces)bind to = 0.0.0.0# Data collection frequency in seconds (default: 1)update every = 1# History length in seconds - 3600 = 1 hour of data at 1-second granularityhistory = 3600
history value. Setting it to 86400 retains 24 hours of per-second data but uses more RAM. Alternatively, configure the database engine mode for disk-based storage in the [db] section:[db]# dbengine stores data on disk, allowing much longer retentionmode = dbengine# Disk space limit in MB for tier 0 (per-second data)dbengine multihost disk space MB = 1024
sudo systemctl restart netdata
Step 5. Monitor System Metrics
Netdata provides a zero-configuration, high-fidelity monitoring dashboard that updates every second. It categorizes system health into four critical sections:
CPU: Tracks per-core usage, system/user time, and Steal time (vital for identifying VM resource contention).
Memory: Offers a granular breakdown of RAM (Used, Cached, Free), Swap usage, and kernel memory health.
Disk I/O: Monitors throughput, IOPS, and latency, which is essential for database performance (like your GlobalTVBD SQL backend).
Network: Visualizes bandwidth, packets per second, and TCP connection states to identify network saturation or potential attacks.
Key Feature: Netdata includes an integrated time-picker for anomaly investigation and can export data to Prometheus/Grafana for long-term storage and advanced visualization.
/etc/netdata/health.d/. List the available alarm definitions:ls /etc/netdata/health.d/
sudo /etc/netdata/edit-config health.d/disk_space_custom.conf
alarm: disk_space_root_lowon: disk.spacelookup: average -1m percentage of usedevery: 1mwarn: $this > 80crit: $this > 90info: Root disk space usage is high
sudo netdatacli reload-health
curl -s http://localhost:19999/api/v1/alarms | python3 -m json.tool | head -50
sudo /etc/netdata/edit-config health_alarm_notify.conf
# Enable email notificationsSEND_EMAIL="YES"# Default recipient for all alarmsDEFAULT_RECIPIENT_EMAIL="admin@example.com"# Sender addressEMAIL_SENDER="netdata@example.com"
go.d/mysql collector. Create a MySQL user for Netdata:mysql -u root -p
CREATE USER 'netdata'@'localhost' IDENTIFIED BY 'StrongPassword123';GRANT USAGE, REPLICATION CLIENT, PROCESS ON *.* TO 'netdata'@'localhost';FLUSH PRIVILEGES;EXIT;
sudo /etc/netdata/edit-config go.d/mysql.conf
jobs:- name: local_mysqldsn: netdata:StrongPassword123@tcp(127.0.0.1:3306)/
sudo vi /etc/nginx/conf.d/stub_status.conf
server {listen 127.0.0.1:80;server_name 127.0.0.1;location /stub_status {stub_status;allow 127.0.0.1;deny all;}}
sudo usermod -aG docker netdatasudo systemctl restart netdata
sudo firewall-cmd --permanent --add-port=19999/tcpsudo firewall-cmd --reload
sudo firewall-cmd --list-ports
19999/tcp
sudo dnf install -y nginx httpd-tools
sudo htpasswd -c /etc/nginx/.htpasswd netdata_admin
sudo /etc/netdata/edit-config netdata.conf
[web]bind to = 127.0.0.1
sudo systemctl restart netdata
sudo vi /etc/nginx/conf.d/netdata.conf
upstream netdata_backend {server 127.0.0.1:19999;keepalive 64;}server {listen 80;server_name netdata.example.com;auth_basic "Netdata Monitoring";auth_basic_user_file /etc/nginx/.htpasswd;location / {proxy_set_header X-Forwarded-Host $host;proxy_set_header X-Forwarded-Server $host;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_pass http://netdata_backend;proxy_http_version 1.1;proxy_pass_request_headers on;proxy_set_header Connection "keep-alive";proxy_store off;}}
sudo nginx -tsudo systemctl enable --now nginx
sudo firewall-cmd --permanent --add-service=httpsudo firewall-cmd --permanent --add-service=httpssudo firewall-cmd --permanent --remove-port=19999/tcpsudo firewall-cmd --reload
Netdata Cloud is a free service that provides a centralized dashboard for monitoring multiple Netdata agents across different servers. It does not store your metrics – the data stays on your servers. Netdata Cloud provides a unified view, cross-server correlation, and role-based access control.
If you did not connect during installation, claim the agent to your Netdata Cloud account:
- Sign up or log in at app.netdata.cloud
- Create a Space and a Room (or use the defaults)
- Click “Connect Nodes” and copy the claiming command
The claiming command looks like this (use the exact token from your Netdata Cloud account):
sudo netdata-claim.sh -token=YOUR_CLOUD_TOKEN -rooms=YOUR_ROOM_ID -url=https://app.netdata.cloud
sudo netdatacli aclk-state
Netdata is successfully deployed on your RHEL 10 / Rocky Linux 10 server, providing real-time system and container monitoring. To ensure it is production-ready, follow these final hardening steps:
Security: Use an Nginx Reverse Proxy with Basic Auth to protect the dashboard. Add TLS certificates (SSL) for encrypted access.
Performance: Tune the dbengine settings to balance your data retention needs with your available disk space.
Scalability: Integrate with Prometheus for long-term historical data storage.
Proactive Care: Enable Alarm Notifications (Email/Telegram) to catch performance spikes before they impact your users.
No comments:
Post a Comment