📑 Daftar Isi
- Introduction
- What Is Netdata?
- Preparation Before Installing
- How to Install Netdata
- Netdata Install Command
- Command Part Breakdown
- What Does the Kickstart Script Do?
- Example Install Output
- Verification After Installation
- Command #1: Check Netdata Service
- Example Output
- Command #2: Check Netdata Port
- Example Output
- Command #3: Test Dashboard Access
- Command #4: Check Netdata Logs
- Accessing the Dashboard from Outside the Server
- ⚠️ SECURITY WARNING: Restrict Dashboard Access
- Method 1: Restrict Access via Firewall (Recommended)
- Method 2: Configure Netdata for Authentication
- Method 3: Reverse Proxy with Nginx (Most Secure)
- How to Uninstall Netdata
- Pro Tips: Getting the Most Out of Netdata
- FAQ
- Is Netdata safe for production servers?
- Does port 19999 need to be opened in the firewall?
- How do I update Netdata?
- Does Netdata affect server performance?
- Related Issues
- Conclusion
Introduction
A few years ago, a client asked me to monitor their server — but not with Zabbix or Nagios which have complicated setups. They wanted something where you “can just see the dashboard without all kinds of configuration.” I was stumped for a moment, because most monitoring tools require setting up agents, servers, and dashboards separately. But it turns out theres one tool that can be installed with a single command and immediately displays a real-time dashboard: Netdata.
I remember the first time I installed Netdata — it took less than 5 minutes from start to having the dashboard accessible. No database setup, no agent configuration, no alert rules to write. Just one command, and Netdata immediately starts collecting metric data from all services on the server and displaying it on an incredibly informative dashboard. What impressed me most was that Netdata also automatically detected Apache, MySQL, PHP-FPM, Nginx, and other services without any additional configuration.
In this article Ill show you how to install Netdata on a Linux server using the kickstart script, step by step. Ill also explain what Netdata does on your server and how to access its dashboard.
What Is Netdata?
Netdata is an open-source real-time monitoring tool for servers and applications. Unlike other monitoring tools that tend to be complex, Netdata is designed for quick setup and immediately informative dashboards.
Key Features of Netdata
- Real-time monitoring — data updates every second, not every minute or hour. You can see CPU, RAM, disk I/O, and network changes in real time.
- Web dashboard — all data is displayed on a web-based dashboard accessible from a browser. No additional client installation needed.
- Auto-detection — Netdata automatically detects running services on the server (Apache, Nginx, MySQL, PHP-FPM, Docker, etc.) and starts monitoring them without configuration.
- Zero-configuration — no database setup, no agent configuration, no alert rules to create. Everything works right from installation.
- Lightweight — Netdata uses very little resource (CPU < 1%, RAM < 50MB). It wont affect server performance.
- Clean uninstallation — if you no longer need it, Netdata can be completely removed without leaving traces.
What Does It Monitor?
By default, Netdata monitors:
- CPU — per-core usage, temperature, frequency
- RAM — used, cached, buffers, swap
- Disk — I/O per device, latency, throughput
- Network — bandwidth per interface, packets, errors
- Processes — top processes by CPU/RAM, thread count
- System services — Apache, Nginx, MySQL, PostgreSQL, PHP-FPM, Redis, Docker, and many more
- Application metrics — PHP, Python, Node.js, and other applications
Preparation Before Installing
⚠️ WARNING: Check Server Resources
Although Netdata is lightweight, make sure your server meets the minimum requirements:
# Check available RAM
free -h
# Check available disk space
df -h / | tail -1
# Check OS version
cat /etc/os-release | head -3
Netdata requires a minimum of:
- RAM: 256MB free (more is better)
- Disk: 1GB free for installation and metric data
- OS: Linux (Debian, Ubuntu, CentOS, RHEL, CloudLinux, AlmaLinux, Rocky Linux)
Check Internet Access
Installing Netdata requires internet access to download the kickstart script and packages:
# Check internet connectivity
ping -c 3 get.netdata.cloud
How to Install Netdata
Netdata Install Command
Heres the complete command to install Netdata on a Linux server:
wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh
This command uses wget to download the kickstart script from Netdata, then runs it. The kickstart script will detect your OS, install all required dependencies, and install Netdata automatically.
Command Part Breakdown
-
wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh— Download the kickstart script fromhttps://get.netdata.cloud/kickstart.shand save it as/tmp/netdata-kickstart.sh.wgetis a command-line downloader. The-Oflag specifies the output filename. -
sh /tmp/netdata-kickstart.sh— Run the kickstart script usingsh. This script will: detect your OS, install dependencies (build tools, libraries), download and install Netdata, configure Netdata automatically, and start the Netdata service.
What Does the Kickstart Script Do?
The Netdata kickstart script performs several automated steps:
- Detect OS — the script detects which Linux distro youre using (Debian, Ubuntu, CentOS, etc.)
- Install dependencies — install required packages (build-essential, zlib, json-c, yaml, etc.)
- Download Netdata — download Netdata source code or binary from the official repository
- Build & Install — compile (if from source) or install binary to
/opt/netdata - Configure — create default configuration files, set up systemd service, configure log rotation
- Start service — start Netdata service and enable it to automatically start on server reboot
Example Install Output
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 135k 100 135k 0 0 123k 0 0:00:01 0:00:01 --:--:-- 126k
--- Using git to update code ---
--- Running installer ---
/usr/bin/env: shr: No such file or directory
--- Installer failed ---
--- Attempting a different installation method ---
--- Checking for cgroups ---
--- Checking for systemd ---
--- Checking for docker ---
--- Installing required packages ---
--- Installing Netdata ---
--- Successfully installed Netdata! ---
Access the Netdata dashboard at: http://localhost:19999
View the logs: tail -f /var/log/netdata/error.log
Uninstall: /opt/netdata/bin/netdata-uninstaller.sh
Note that the installation succeeded and Netdata is running on port 19999. You can access the dashboard via http://localhost:19999 or http://SERVER_IP:19999.
Verification After Installation
Command #1: Check Netdata Service
# Check Netdata service status
systemctl status netdata
# Check if Netdata is running
ps aux | grep netdata | grep -v grep
Example Output
● netdata.service - Real time performance monitoring
Loaded: loaded (/etc/systemd/system/netdata.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2024-02-14 10:23:11 UTC; 2min ago
Main PID: 12345 (netdata)
Tasks: 145 (limit: 4915)
Memory: 42.3M
CPU: 1.242s
CGroup: /system.slice/netdata.service
├─12345 /opt/netdata/bin/netdata -D
├─12346 /opt/netdata/bin/netdata --pid-file /run/netdata/netdata.pid
...
Note that the Netdata service shows active (running) and is already enabled (auto-starts on reboot).
Command #2: Check Netdata Port
# Check if port 19999 is open
ss -tlnp | grep 19999
# or
netstat -tlnp | grep 19999
Example Output
LISTEN 0 4096 0.0.0.0:19999 0.0.0.0:* users:(("netdata",pid=12345,fd=7))
Port 19999 is open and Netdata is listening on all interfaces (0.0.0.0).
Command #3: Test Dashboard Access
# Test from the server itself
curl -s -o /dev/null -w "%{http_code}" http://localhost:19999
# If it returns 200, the dashboard is accessible
# Output: 200
Command #4: Check Netdata Logs
# Check error log
tail -50 /var/log/netdata/error.log
# Check logs if there are issues
journalctl -u netdata --no-pager | tail -30
Accessing the Dashboard from Outside the Server
⚠️ SECURITY WARNING: Restrict Dashboard Access
By default, the Netdata dashboard can be accessed from anywhere without authentication. This means anyone who knows the IP and port 19999 can see all your server metrics. Its critical to restrict access before allowing external access.
Method 1: Restrict Access via Firewall (Recommended)
# UFW (Ubuntu/Debian)
ufw allow from YOUR_IP to any port 19999
# firewalld (CentOS/RHEL)
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="YOUR_IP" port port="19999" protocol="tcp" accept'
firewall-cmd --reload
# iptables
iptables -A INPUT -p tcp --dport 19999 -s YOUR_IP -j ACCEPT
iptables -A INPUT -p tcp --dport 19999 -j DROP
Method 2: Configure Netdata for Authentication
Edit the Netdata configuration file to add authentication:
# Edit configuration file
nano /opt/netdata/etc/netdata/netdata.conf
# Add in the [web] section
[web]
bind to = =dashboard
allow connections from = localhost YOUR_IP
allow dashboard from = localhost YOUR_IP
After editing, restart Netdata:
systemctl restart netdata
Method 3: Reverse Proxy with Nginx (Most Secure)
Use Nginx as a reverse proxy with SSL and basic auth:
# Create Nginx configuration file
nano /etc/nginx/conf.d/netdata.conf
Fill in the configuration:
# server {
# listen 443 ssl;
# server_name netdata.domain.com;
#
# ssl_certificate /etc/letsencrypt/live/netdata.domain.com/fullchain.pem;
# ssl_certificate_key /etc/letsencrypt/live/netdata.domain.com/privkey.pem;
#
# location / {
# proxy_pass http://127.0.0.1:19999;
# proxy_set_header Host $host;
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# auth_basic "Netdata Dashboard";
# auth_basic_user_file /etc/nginx/.htpasswd;
# }
# }
Create a .htpasswd file for basic auth:
# Install htpasswd utility
apt install apache2-utils -y # Debian/Ubuntu
yum install httpd-tools -y # CentOS/RHEL
# Create .htpasswd file
htpasswd -c /etc/nginx/.htpasswd admin
Restart Nginx:
nginx -t && systemctl restart nginx
How to Uninstall Netdata
If you no longer need Netdata, you can uninstall it cleanly:
# Stop service
systemctl stop netdata
# Disable service
systemctl disable netdata
# Run the uninstaller
/opt/netdata/bin/netdata-uninstaller.sh --yes
# Clean up remaining files (optional)
rm -rf /opt/netdata
rm -rf /var/lib/netdata
rm -rf /var/log/netdata
rm -rf /tmp/netdata-*
Pro Tips: Getting the Most Out of Netdata
- Use Netdata Cloud for multi-server monitoring — Netdata provides a free cloud platform for monitoring multiple servers at once. You can view dashboards for all servers in one place. Sign up at
app.netdata.cloud. - Set up alerts to Telegram/Email — Netdata can send alerts when certain metrics reach a threshold. Configure in
/opt/netdata/etc/netdata/health_alarm_notify.conf. - Disable metrics you dont need — if you dont need all metrics, disable unnecessary ones to reduce resource usage. Edit
/opt/netdata/etc/netdata/netdata.conf. - Use the Python plugin for custom metrics — Netdata supports custom metrics via the Python plugin. You can monitor custom applications not supported by default.
- Archive data to external database — Netdata metric data is stored for only 1 day by default. You can connect to InfluxDB, Prometheus, or the Cloud for long-term storage.
- Monitor from mobile — the Netdata dashboard is responsive and accessible from smartphones. You can monitor your server from anywhere.
- Use
streamingfor server clusters — Netdata can be configured to stream data from multiple slaves to one master. Useful for monitoring server clusters.
FAQ
Is Netdata safe for production servers?
Yes, Netdata is very safe for production. Netdata only reads data from /proc, /sys, and service logs — it doesnt change anything on the system. Its resource usage is also very low (CPU < 1%, RAM < 50MB). Many large companies like Facebook, Cloudflare, and DigitalOcean use Netdata to monitor their production servers.
Does port 19999 need to be opened in the firewall?
Only if you want to access the dashboard from outside the server. If you only access it from the server itself (localhost:19999), no port opening is needed. But to monitor from another computer, you need to open port 19999 and restrict access to allowed IPs only.
How do I update Netdata?
Netdata will automatically update if using the kickstart script. To update manually, re-run the install command: wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh. The script will detect the existing Netdata installation and perform an update.
Does Netdata affect server performance?
Minimal. Netdata uses a low sampling rate and collects data efficiently. Average CPU usage is < 1%, RAM around 40-50MB. On servers with many cores and services, usage might be slightly higher but still stays under 2%. You can check Netdatas own resource usage on its dashboard.
Related Issues
- Fix Apache Slot Full 503 Service Unavailable — Netdata can help detect Apache slots filling up in real time before a 503 error occurs
- Troubleshoot High Database Load in MariaDB — Netdata automatically monitors MySQL/MariaDB and displays query rate, connections, and slow queries
- Fix Inode Exhaustion on cPanel — Netdata can help monitor disk usage in real time to prevent inode exhaustion
Conclusion
Installing Netdata on a Linux server doesnt have to be complicated. With one command — wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh — you can get a powerful real-time monitoring dashboard in under 5 minutes. No database configuration, no agent setup, no alert rules to write — everything works right from installation.
The key things to remember: restrict dashboard access to allowed IPs only, because Netdata has no built-in authentication. Use a firewall or reverse proxy with basic auth for security. And most importantly, actually use Netdata for active monitoring — dont just install it and never look at it. The Netdata dashboard is only useful if you regularly check the metrics. Better to install monitoring from the start than to have to explain to a client why their server went down and nobody was monitoring — trust me, Ive been there and I dont want to go through that again.