Emergency server help: get in touch

Netdata on a cPanel or DirectAdmin Server: EPEL vs Official Install, Security and Licence (Tested)

We installed Netdata on a cPanel 138 server twice, from EPEL and with Netdata's official kickstart script, and compared what you get: versions, collectors, memory, the dashboard licence, and the fact that the official install opened port 19999 to the internet. Includes the MySQL and Apache collector setup for cPanel and a clean uninstall.

Published Updated 7 min read

Short answer: for Netdata on cPanel (AlmaLinux) you can install Netdata from EPEL (dnf install netdata) or with Netdata’s official script (kickstart.sh). The official install is newer (2.12.1 vs 2.2.6 in our test) and includes the collectors for MySQL, Apache and web logs. However, it listened on 0.0.0.0:19999 with no login, so we could open the dashboard from another server. After any install, set bind to = 127.0.0.1 ::1 in the [web] section of /etc/netdata/netdata.conf, restart, and reach it through an SSH tunnel. The Netdata agent is GPLv3. The dashboard of the official build is under Netdata’s own NCUL1 licence, and Netdata Cloud’s free plan covers 5 nodes.

Applies to Netdata 2.2.6 (EPEL 9) and 2.12.1 (official repo via kickstart.sh) on AlmaLinux 9.8 with cPanel 138, MariaDB 10.11, Apache 2.4.69; lab test 11 Oct 2026

We tested both installs on our cPanel lab (AlmaLinux 9.8, cPanel 138, 4 cores, 3.8 GB RAM) on 11 October 2026, then removed Netdata and restored the server. We did not test on DirectAdmin; the steps are the same apart from the Apache status URL.

EPEL or the official installer?

EPEL packageOfficial kickstart.sh
Version in our test2.2.62.12.1
Install time12 s, 12 packages40 s, 21 packages plus Netdata’s repo
Listens on127.0.0.1 and ::1 only0.0.0.0:19999 and [::]:19999 (all addresses)
DashboardOld open-source v1 dashboard (GPL)Current dashboard (v3 files), licensed NCUL1
go.d collectors (MySQL, Apache, Nginx, web logs, Exim, PHP-FPM …)Not included; no package for them in EPELIncluded
eBPF, OpenTelemetry, systemd-units pluginsNoYes
Charts found on our cPanel lab1,703 (system, apps, users, systemd services)2,086, plus 41 MySQL and 8 Apache charts after the setup below
Memory (all Netdata processes)About 80 MBAbout 275 MB (go.d.plugin alone about 120 MB)
Other changes to the serverNoneAdded netdata.repo, two RPM signing keys, and enabled the CRB repository
UpdatesWith dnf updateWith dnf update from Netdata’s repo (plus netdata-updater)

Our advice: on a production hosting server, use EPEL if CPU, memory, disk and per-account charts are enough. Use the official packages if you need the MySQL, Apache and web log collectors, and lock the port down straight after installing.

Install from EPEL

dnf install epel-release
dnf install netdata
systemctl enable --now netdata
ss -ltnp | grep 19999          # 127.0.0.1:19999 and [::1]:19999

The service was installed disabled. Once started, it listened on localhost only, because the EPEL build’s config sets bind to = localhost.

Install with the official script

curl -fsSL -o /root/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh
less /root/netdata-kickstart.sh       # read it before running it as root
sh /root/netdata-kickstart.sh --stable-channel --disable-telemetry --non-interactive --native-only
  • --native-only uses Netdata’s RPM/DEB repository instead of a static build in /opt/netdata.
  • --disable-telemetry created /etc/netdata/.opt-out-from-anonymous-statistics; without it, anonymous statistics are sent.
  • The script ran dnf config-manager --set-enabled crb to get dependencies. If you keep repositories minimal on a cPanel server, note it and disable CRB again after the install if nothing else needs it.
  • On our lab the service was enabled but not running after the script finished; systemctl start netdata started it.

Lock down port 19999 straight away

With the official install, our second lab server could fetch the dashboard over the internet (HTTP 200), because that lab’s firewall was off. On a server where CSF or firewalld only opens the usual panel ports, 19999 stays closed. Do not rely on that alone:

cat >> /etc/netdata/netdata.conf <<'EOF'

[web]
    bind to = 127.0.0.1 ::1
EOF
systemctl restart netdata
ss -ltnp | grep 19999        # now 127.0.0.1:19999 only

After this change the outside request failed and the local dashboard still answered. To view it from your PC, open an SSH tunnel and browse to http://localhost:19999:

ssh -L 19999:127.0.0.1:19999 root@your-server

If you need it on a URL, put it behind a reverse proxy with HTTPS and a login. Never expose the agent port itself.

Netdata on cPanel: MySQL, Apache and log collectors

With the official packages, Netdata found the Apache access logs (web_log) and Exim by itself. Two collectors needed help:

MySQL / MariaDB

mysql -e "CREATE USER IF NOT EXISTS netdata@localhost;
GRANT USAGE, REPLICATION CLIENT, PROCESS ON *.* TO netdata@localhost;"
systemctl restart netdata

This user has no password and can only connect from the local socket. It cannot read any data, only status counters. After the restart, 41 mysql_local.* charts appeared: connections, queries, InnoDB buffer pool and more.

Apache status on cPanel

cPanel 138 does not serve Apache’s status page at /server-status or /whm-server-status; both returned 404 on our lab. WHM’s Apache Status uses a <Location> with a random path, allowed from 127.0.0.1 only. Find it and point Netdata’s apache job at it:

grep -B3 "SetHandler server-status" /etc/apache2/conf/httpd.conf    # shows <Location /RANDOMPATH>
cat > /etc/netdata/go.d/apache.conf <<'EOF'
jobs:
  - name: local
    url: http://127.0.0.1/RANDOMPATH?auto
EOF
systemctl restart netdata

This gave 8 apache_local.* charts (workers, scoreboard, requests per second, bandwidth). The path is part of cPanel’s generated Apache configuration, so check it again after big EasyApache changes. On DirectAdmin, look for a server-status location in the Apache config in the same way.

Per-account usage

Both builds include the apps.plugin charts per user and group. On a cPanel or DirectAdmin server each hosting account is a Linux user, so the user charts (252 on our lab) show CPU, memory and disk per account over time. That is the quickest way to see which customer caused a spike.

Licence, Netdata Cloud and costs

  • Agent: GPLv3+ (the RPMs say GPL-3.0-or-later/GPLv3+), free for any number of servers.
  • Dashboard in the official build: /usr/share/netdata/web/v3/LICENSE.md is the “Netdata Cloud UI License v1.0 (NCUL1)”. It allows using the UI only with Netdata’s own agents and Cloud. It is free to use, but it is not open source. The EPEL build ships only the older GPL dashboard.
  • Netdata Cloud: Netdata announced in 2024 that agent dashboards from v2.0 would require signing in through Netdata Cloud, with an unauthenticated fallback, and that the free Community plan covers up to 5 nodes. Paid plans are priced per node. Check Netdata’s plans page for current figures.
  • You do not need Cloud for one server: the local dashboard through an SSH tunnel and the built-in alerts work without it.

Uninstall cleanly

sh /root/netdata-kickstart.sh --uninstall --non-interactive     # official install
# or for EPEL: dnf remove netdata netdata-conf netdata-data

The official uninstaller removed the packages, /etc/netdata, /var/lib/netdata, /var/cache/netdata, /var/log/netdata and the repo file. It left behind:

rm -rf /usr/libexec/netdata /usr/share/netdata
userdel netdata
rpm -e gpg-pubkey-ecfa8f4f-67d6e009 gpg-pubkey-65f56346-62beb4e5   # Netdata's repo keys on our lab
dnf config-manager --set-disabled crb                             # if you did not use CRB before
rm -f /dev/shm/netdata_shm_cgroup_ebpf /dev/shm/sem.netdata_sem_cgroup_ebpf
mysql -e "DROP USER IF EXISTS netdata@localhost" 

With those removed, our lab’s package count was back to exactly the number before the test.

Netdata or something else?

Netdata gives per-second detail for one server with almost no setup. If you only need to know whether sites are up, an uptime monitor is simpler: see Uptime Kuma 2. For a quick look at one server without installing a monitoring agent, see htop vs btop vs Glances vs atop. To find out later what caused a load spike, see atop and sar history.

Vendor reference: the Netdata documentation.

At a glance

Netdata on cPanel and DirectAdmin: Install and Secure It – summary card
In short: for Netdata on cPanel (AlmaLinux) you can install Netdata from EPEL (dnf install netdata) or with Netdata's official script (kickstart.sh). The official install is newer (2.12.1 vs 2.2.6 in…

Frequently asked questions

Is Netdata safe to install on a cPanel server?

Yes, if you keep the dashboard private. The official install listened on all addresses on port 19999 without a login in our test. Set bind to = 127.0.0.1 ::1 in the [web] section of netdata.conf and use an SSH tunnel.

Why does Netdata from EPEL not show MySQL or Apache?

The EPEL build does not include the go.d plugin that contains those collectors, and EPEL has no separate package for it. Use Netdata’s official packages if you need them.

How do I monitor MySQL with Netdata on cPanel?

Create a local user with CREATE USER netdata@localhost and GRANT USAGE, REPLICATION CLIENT, PROCESS ON *.* TO netdata@localhost, then restart Netdata. The go.d mysql collector finds the socket by itself.

Is Netdata free?

The agent is GPLv3 and free for any number of servers. The current dashboard is under Netdata’s NCUL1 licence, which is free to use but not open source. Netdata Cloud has a free plan for up to 5 nodes and paid per-node plans.

How do I completely remove Netdata?

Run the kickstart script with --uninstall, then delete /usr/libexec/netdata and /usr/share/netdata, remove the netdata user and the repo GPG keys, and disable the CRB repository if the installer enabled it.

Reading a lot of our guides? Go ad-free with srvScripts Pro for $6 a month. It also pays for new guides. Cancel any time.

Share this guide

Free website test

Is your website set up right?

Check SSL, security headers, redirects, robots.txt, sitemap, llms.txt and security.txt in one test. It takes about 30 seconds.