The only agent that thinks for itself

Autonomous Monitoring with self-learning AI built-in, operating independently across your entire stack.

Unlimited Metrics & Logs
Machine learning & MCP
5% CPU, 150MB RAM
3GB disk, >1 year retention
800+ integrations, zero config
Dashboards, alerts out of the box
> Discover Netdata Agents

Centralized metrics streaming and storage

Aggregate metrics from multiple agents into centralized Parent nodes for unified monitoring across your infrastructure.

Stream from unlimited agents
Long-term data retention
High availability clustering
Data replication & backup
Scalable architecture
Enterprise-grade security
> Learn about Parents

Fully managed cloud platform

Access your monitoring data from anywhere with our SaaS platform. No infrastructure to manage, automatic updates, and global availability.

Zero infrastructure management
99.9% uptime SLA
Global data centers
Automatic updates & patches
Enterprise SSO & RBAC
SOC2 & ISO certified
> Explore Netdata Cloud

Deploy Netdata Cloud in your infrastructure

Run the full Netdata Cloud platform on-premises for complete data sovereignty and compliance with your security policies.

Complete data sovereignty
Air-gapped deployment
Custom compliance controls
Private network integration
Dedicated support team
Kubernetes & Docker support
> Learn about Cloud On-Premises

Powerful, intuitive monitoring interface

Modern, responsive UI built for real-time troubleshooting with customizable dashboards and advanced visualization capabilities.

Real-time chart updates
Customizable dashboards
Dark & light themes
Advanced filtering & search
Responsive on all devices
Collaboration features
> Explore Netdata UI

Monitor on the go

Native iOS and Android apps bring full monitoring capabilities to your mobile device with real-time alerts and notifications.

iOS & Android apps
Push notifications
Touch-optimized interface
Offline data access
Biometric authentication
Widget support
> Download apps

The future of infrastructure observability

See our strategic direction across AI-native observability, full-stack signals, operational intelligence, and enterprise platform maturity.

AI-native observability
Full-stack signal coverage
Operational intelligence
Enterprise platform maturity
Agent releases every 6 weeks
Cloud continuous delivery
> Explore Product Roadmap

Best energy efficiency

True real-time per-second

100% automated zero config

Centralized observability

Multi-year retention

High availability built-in

Zero maintenance

Always up-to-date

Enterprise security

Complete data control

Air-gap ready

Compliance certified

Millisecond responsiveness

Infinite zoom & pan

Works on any device

Native performance

Instant alerts

Monitor anywhere

AI-native observability

Continuous delivery

Open source foundation

80% Faster Incident Resolution

AI-powered troubleshooting from detection, to root cause and blast radius identification, to reporting.

True Real-Time and Simple, even at Scale

Linearly and infinitely scalable full-stack observability, that can be deployed even mid-crisis.

90% Cost Reduction, Full Fidelity

Instead of centralizing the data, Netdata distributes the code, eliminating pipelines and complexity.

See and Map Your Entire Network

Live topology, flow analytics, and SNMP device and trap monitoring — unified with your full-stack observability.

Control Without Surrender

SOC 2 Type 2 certified with every metric kept on your infrastructure.

Integrations

800+ collectors and notification channels, auto-discovered and ready out of the box.

800+ data collectors
Auto-discovery & zero config
Cloud, infra, app protocols
Notifications out of the box
> Explore integrations
Real Results
46% Cost Reduction

Reduced monitoring costs by 46% while cutting staff overhead by 67%.

— Leonardo Antunez, Codyas

Zero Pipeline

No data shipping. No central storage costs. Query at the edge.

From Our Users
"Out-of-the-Box"

So many out-of-the-box features! I mostly don't have to develop anything.

— Simon Beginn, LANCOM Systems

No Query Language

Point-and-click troubleshooting. No PromQL, no LogQL, no learning curve.

Enterprise Ready
67% Less Staff, 46% Cost Cut

Enterprise efficiency without enterprise complexity—real ROI from day one.

— Leonardo Antunez, Codyas

SOC 2 Type 2 Certified

Zero data egress. Only metadata reaches the cloud. Your metrics stay on your infrastructure.

Full Coverage
800+ Collectors

Auto-discovered and configured. No manual setup required.

Any Notification Channel

Slack, PagerDuty, Teams, email, webhooks—all built-in.

Built for the People Who Get Paged

Because 3am alerts deserve instant answers, not hour-long hunts.

Every Industry Has Rules. We Master Them.

See how healthcare, finance, and government teams cut monitoring costs 90% while staying audit-ready.

Monitor Any Technology. Configure Nothing.

Install the agent. It already knows your stack.
From Our Users
"A Rare Unicorn"

Netdata gives more than you invest in it. A rare unicorn that obeys the Pareto rule.

— Eduard Porquet Mateu, TMB Barcelona

99% Downtime Reduction

Reduced website downtime by 99% and cloud bill by 30% using Netdata alerts.

— Falkland Islands Government

Real Savings
30% Cloud Cost Reduction

Optimized resource allocation based on Netdata alerts cut cloud spending by 30%.

— Falkland Islands Government

46% Cost Cut

Reduced monitoring staff by 67% while cutting operational costs by 46%.

— Codyas

Real Coverage
"Plugin for Everything"

Netdata has agent capacity or a plugin for everything, including Windows and Kubernetes.

— Eduard Porquet Mateu, TMB Barcelona

"Out-of-the-Box"

So many out-of-the-box features! I mostly don't have to develop anything.

— Simon Beginn, LANCOM Systems

Real Speed
Troubleshooting in 30 Seconds

From 2-3 minutes to 30 seconds—instant visibility into any node issue.

— Matthew Artist, Nodecraft

20% Downtime Reduction

20% less downtime and 40% budget optimization from out-of-the-box monitoring.

— Simon Beginn, LANCOM Systems

Pay per Node. Unlimited Everything Else.

One price per node. Unlimited metrics, logs, users, and retention. No per-GB surprises.

Free tier—forever
No metric limits or caps
Retention you control
Cancel anytime
> See pricing plans

What's Your Monitoring Really Costing You?

Most teams overpay by 40-60%. Let's find out why.

Expose hidden metric charges
Calculate tool consolidation
Customers report 30-67% savings
Results in under 60 seconds
> See what you're really paying

Your Infrastructure Is Unique. Let's Talk.

Because monitoring 10 nodes is different from monitoring 10,000.

On-prem & air-gapped deployment
Volume pricing & agreements
Architecture review for your scale
Compliance & security support
> Start a conversation

Monitoring That Sells Itself

Deploy in minutes. Impress clients in hours. Earn recurring revenue for years.

30-second live demos close deals
Zero config = zero support burden
Competitive margins & deal protection
Response in 48 hours
> Apply to partner

Per-Second Metrics at Homelab Prices

Same engine, same dashboards, same ML. Just priced for tinkerers.

Community: Free forever · 5 nodes · non-commercial
Homelab: $90/yr · unlimited nodes · fair usage
> Get the Homelab Plan

$1,000 Per Referral. Unlimited Referrals.

Your colleagues get 10% off. You get 10% commission. Everyone wins.

10% of subscriptions, up to $1,000 each
Track earnings inside Netdata Cloud
PayPal/Venmo payouts in 3-4 weeks
No caps, no complexity
> Get your referral link
Cost Proof
40% Budget Optimization

"Netdata's significant positive impact" — LANCOM Systems

Calculate Your Savings

Compare vs Datadog, Grafana, Dynatrace

Savings Proof
46% Cost Reduction

"Cut costs by 46%, staff by 67%" — Codyas

30% Cloud Bill Savings

"Reduced cloud bill by 30%" — Falkland Islands Gov

Enterprise Proof
"Better Than Combined Alternatives"

"Better observability with Netdata than combining other tools." — TMB Barcelona

Real Engineers, <24h Response

DPA, SLAs, on-prem, volume pricing

Why Partners Win
Demo Live Infrastructure

One command, 30 seconds, real data—no sandbox needed

Zero Tickets, High Margins

Auto-config + per-node pricing = predictable profit

Homelab Ready
Free Video Course

8-episode Netdata tutorial by LearnLinux.tv

76k+ GitHub Stars

3rd most starred monitoring project

Worth Recommending
Product That Delivers

Customers report 40-67% cost cuts, 99% downtime reduction

Zero Risk to Your Rep

Free tier lets them try before they buy

AI Support Assistant, Available 24/7

Nedi has access to all official documentation, source code, and resources. Ask any question about Netdata—responds in your language.

Deployment & configuration
Troubleshooting & sizing
Alerts & notifications
Evidence-based answers
> Ask Nedi now

Never Fight Fires Alone

Docs, community, and expert help—pick your path to resolution.

Learn.netdata.cloud docs
Discord, Forums, GitHub
Premium support available
> Get answers now

60 Seconds to First Dashboard

One command to install. Zero config. 850+ integrations documented.

Linux, Windows, K8s, Docker
Auto-discovers your stack
> Read our documentation

76,000+ Engineers Strong

615+ contributors. 1.5M daily downloads. One mission: simplify observability.

Per-Second. 90% Cheaper. Data Stays Home.

Side-by-side comparisons: costs, real-time granularity, and data sovereignty for every major tool.

See why teams switch from Datadog, Prometheus, Grafana, and more.

> Browse all comparisons
Edge-Native Observability, Born Open Source
Per-second visibility, ML on every metric, and data that never leaves your infrastructure.
Founded in 2016
615+ contributors worldwide
Remote-first, engineering-driven
Open source first
> Read our story
Promises We Publish—and Prove
12 principles backed by open code, independent validation, and measurable outcomes.
Open source, peer-reviewed
Zero config, instant value
Data sovereignty by design
Aligned pricing, no surprises
> See all 12 principles
Edge-Native, AI-Ready, 100% Open
76k+ stars. Full ML, AI, and automation—GPLv3+, not premium add-ons.
76,000+ GitHub stars
GPLv3+ licensed forever
ML on every metric, included
Zero vendor lock-in
> Explore our open source
Build Real-Time Observability for the World
Remote-first team shipping per-second monitoring with ML on every metric.
Remote-first, fully distributed
Open source (76k+ stars)
Challenging technical problems
Your code on millions of systems
> See open roles
Meet the Team Behind Netdata
Conferences, meetups, and tradeshows where you can see Netdata in action and talk to the engineers who build it.
Live demos and deep dives
Book 1-on-1 meetings
Talks and panel sessions
Event recaps and photos
> See all events
Talk to a Netdata Human in <24 Hours
Sales, partnerships, press, or professional services—real engineers, fast answers.
Discuss your observability needs
Pricing and volume discounts
Partnership opportunities
Media and press inquiries
> Book a conversation
Your Data. Your Rules.
On-prem data, cloud control plane, transparent terms.
Trust & Scale
76,000+ GitHub Stars

One of the most popular open-source monitoring projects

SOC 2 Type 2 Certified

Enterprise-grade security and compliance

Data Sovereignty

Your metrics stay on your infrastructure

Validated
University of Amsterdam

"Most energy-efficient monitoring solution" — ICSOC 2023, peer-reviewed

ADASTEC (Autonomous Driving)

"Doesn't miss alerts—mission-critical trust for safety software"

Community Stats
615+ Contributors

Global community improving monitoring for everyone

1.5M+ Downloads/Day

Trusted by teams worldwide

GPLv3+ Licensed

Free forever, fully open source agent

Why Join?
Remote-First

Work from anywhere, async-friendly culture

Impact at Scale

Your work helps millions of systems

$ guides / varnish / varnish-management-cli-exposure ▌

Operations Guides

Varnish management CLI exposure: a -T bound to the world is full control

The Varnish management CLI (varnishadm, the -T flag, default port 6082) is not a monitoring endpoint. It is a full administrative control plane. Through it, an authenticated user can load arbitrary VCL, inject bans, change every runtime parameter, and stop the cache child process. If VCL inline-C is enabled, loading a VCL is code execution on the Varnish host, running as the cache child user.

When -T is bound to 0.0.0.0 or a public IP, any network actor who can reach the port and authenticate gets total control of the service. The authentication mechanism is a shared-secret (pre-shared key) handshake over a plaintext TCP connection. It provides authentication but not encryption. If the secret file is missing, readable by unauthorized users, or authentication is disabled, the CLI is either unauthenticated or trivially compromisable.

What this means

The management process (varnishd root process) listens on two classes of sockets: the data-plane HTTP listener (default :6081) and the management CLI listener (default :6082, or a random localhost port). The CLI listener is the -T argument to varnishd. It speaks a line-oriented ASCII protocol authenticated by a challenge-response using a shared secret file specified by -S.

flowchart TD
    A["varnishd startup"] --> B{"-T flag value?"}
    B -->|"localhost:PORT or omitted"| C["Loopback CLI"]
    B -->|"0.0.0.0:6082 or public IP"| D["CLI exposed to network"]
    B -->|"none"| E["CLI disabled entirely"]
    C --> F{"-S setting?"}
    D --> F
    E --> H["No network CLI"]
    F -->|"valid or auto-generated secret"| G["Authenticated but plaintext"]
    F -->|"-S none"| H["No authentication at all"]
    G --> I["Attacker needs secret file access"]
    H --> J["Any network actor has full control"]
    I --> K["Full VCL load, ban, param.set, stop"]
    J --> K
    K --> L["If inline-C enabled: arbitrary code execution"]

The commands available through the CLI include vcl.load, vcl.use, ban, param.set, backend.set_health, start, and stop. The stop command terminates the cache child process. A vcl.load with a crafted VCL can rewrite the entire request pipeline, exfiltrate request data to an attacker-controlled backend, or, if vcc_feature allow_inline_c is set, execute arbitrary C code within the child process.

The exposure is a configuration problem, not a software vulnerability. The Varnish process is doing exactly what it was told to do: listen on the specified address and accept authenticated CLI commands. The risk is that the specified address is reachable by parties who should not have administrative control.

Common causes

CauseWhat it looks likeFirst thing to check
-T 0.0.0.0:6082 in startup argsss -tlnp shows varnishd listening on all interfaces for the management portps aux | grep varnishd | grep -oP '\-T\s+\S+'
Authentication disabledCLI connects without any secret challengeCheck startup args for -S none; -S omitted means Varnish generated an auto secret
Secret file world-readable-S /path/to/secret exists with broad read permissionsls -la on the secret file path
Container or pod with host networkingManagement port reachable from outside the container networkInspect pod spec or docker run flags for --network host
Reverse CLI mode (-M)varnishd connects outbound to a management facilityCheck startup args for -M
Load balancer or NAT forwarding port 6082External traffic reaches the CLI port through infrastructureAudit firewall, security group, and LB rules for port 6082

Quick checks

Run these read-only checks to assess exposure. None of them modify Varnish state.

# Check the management interface bind address from the running process
ps aux | grep varnishd | grep -oP '\-T\s+\S+'

# Check what varnishd is listening on (look for port 6082 or the -T port)
ss -tlnp | grep varnishd

# Check active connections to the management port (replace 6082 with your -T port)
ss -tnp | grep 6082

# Check the -S shared-secret file path and permissions
ps aux | grep varnishd | grep -oP '\-S\s+\S+'

# Check for recent CLI activity in the Varnish log
varnishlog -g session -q 'CLI'

# Check whether syslog CLI logging is enabled
varnishadm param.show syslog_cli_traffic

# Check whether inline-C is enabled in VCL (code execution risk)
varnishadm param.show vcc_feature

If the -T grep shows localhost:6082 or 127.0.0.1:6082, the interface is loopback-only. If it shows 0.0.0.0:6082, *:6082, or a routable IP, the interface is exposed.

Active connections to port 6082 from IPs outside your management infrastructure or jump hosts warrant immediate investigation.

How to diagnose it

  1. Identify the bind address. Extract the -T value from the running process. If it contains 0.0.0.0, ::, or a public IP, the interface is network-exposed.

  2. Identify the authentication state. Extract the -S value. -S none explicitly disables authentication. If -S is absent, Varnish generates an auto secret in _.secret under its working directory; confirm that the file exists with restrictive permissions. If -S points to a file, check its permissions with ls -la. The secret file should be readable only by root or the management user.

  3. Check who is listening and who is connected. Run ss -tlnp | grep varnishd to confirm the actual listen address, since the process args may differ from systemd unit defaults. Run ss -tnp | grep <port> to see active CLI sessions.

  4. Audit CLI activity. Run varnishlog -g session -q 'CLI' to see recent CLI commands. If syslog_cli_traffic is enabled (check with varnishadm param.show syslog_cli_traffic), review syslog for persistent command history. Look for VCL loads, ban operations, or parameter changes you did not initiate.

  5. Check for inline-C exposure. Run varnishadm param.show vcc_feature and inspect the allow_inline_c bit. If allow_inline_c is enabled, any VCL loaded via the CLI can contain arbitrary C code. This elevates a CLI compromise from service control to full code execution on the host.

  6. Review infrastructure forwarding. Check firewall rules, security groups, load balancer configs, and NAT rules for anything that forwards traffic to port 6082. A correctly bound -T localhost:6082 is still exposed if a load balancer or port-forwarding rule maps external traffic to that port.

  7. Check the systemd unit or init script. The running process args may differ from the configured startup. Inspect the unit file with systemctl cat varnish on systemd systems. Some distribution packages override the default bind address.

Metrics and signals to monitor

SignalWhy it mattersWarning sign
Management port listener addressConfirms whether the CLI is bound to a routable interfacess -tlnp shows varnishd on 0.0.0.0:6082 or a public IP
Active connections to port 6082Detects unauthorized CLI sessionsConnections from IPs outside management infrastructure
CLI log entries (varnishlog -q 'CLI')Records administrative commands issued to the daemonVCL loads, bans, or param changes at unexpected times
syslog_cli_traffic parameterEnables persistent CLI command logging to syslogDisabled when it should be enabled for audit trail
Ban/purge rate anomaliesUnauthorized CLI access often starts with cache invalidationMAIN.bans_added spiking beyond baseline
Secret file permissionsIf the shared secret is readable, authentication is bypassable-S file readable by non-root users
vcc_feature allow_inline_cIf enabled, CLI access enables code execution, not just config controlParameter set to on in production

Fixes

Rebind the management interface to localhost

The safest fix is to bind -T to localhost. Edit the systemd unit or startup configuration:

# Inspect the current systemd unit
systemctl cat varnish

Change the -T argument from 0.0.0.0:6082 (or the public IP) to localhost:6082. Use -T none to disable the TCP management interface entirely; omitting -T defaults to a random localhost port, which is useful for local varnishadm but is not the same as disabling the interface.

After changing the unit file, reload and restart:

systemctl daemon-reload
systemctl restart varnish

Warning: This restarts the management process and the cache child. The cache is lost on restart, so expect a cold-cache warmup period. Schedule this during a maintenance window or ensure sufficient backend capacity for the warmup spike.

Protect the shared-secret file

If you must keep the CLI enabled for operational tooling, orchestration, or debugging, ensure the -S file is protected:

# Check current permissions on the secret file
ls -la /etc/varnish/secret
# Restrict to root only
chmod 600 /etc/varnish/secret
chown root:root /etc/varnish/secret

If the secret file has been exposed (committed to version control, shared broadly, or world-readable), rotate it. Generate a new secret, place it in the file with 600 permissions, and restart the management process. Any automation or operators using varnishadm will need the updated secret.

Never disable authentication

Explicitly disabled authentication (-S none) means any network actor who can reach the -T port gets full administrative control with no challenge. If you find authentication disabled in production, treat it as a security incident: rotate secrets, audit CLI logs for unauthorized access, and fix the configuration immediately.

Disable inline-C in production

If vcc_feature allow_inline_c is enabled, disable it unless you have a specific, audited reason for using inline-C in VCL. With inline-C disabled (the default since Varnish 4), a VCL load cannot execute arbitrary code, limiting a CLI compromise to service disruption and configuration manipulation rather than host-level code execution.

# Check current state
varnishadm param.show vcc_feature
# Disable inline-C (if currently enabled)
varnishadm param.set vcc_feature -allow_inline_c

Restrict network access at the firewall layer

Even with -T localhost:6082, add a defense-in-depth firewall rule that drops traffic to port 6082 from non-localhost sources. This catches cases where the bind address changes accidentally or a container networking mode exposes the port.

# Example iptables rule (IPv4 only): drop all non-loopback traffic to port 6082
# Use -I to insert at the top of the chain; -A may not match if an earlier rule accepts
iptables -I INPUT -p tcp --dport 6082 ! -s 127.0.0.1 -j DROP

Adjust for your firewall management tool (nftables, firewalld, cloud security groups).

Prevention

  • Audit -T on every deploy. Include a check in your deployment pipeline that verifies the management interface bind address. Fail the deploy if -T is set to a routable address.
  • Enable syslog_cli_traffic. This parameter logs all CLI commands to syslog, providing a persistent audit trail of administrative activity.
  • Monitor connections to port 6082. Alert on any connection to the management port from non-localhost, non-management-infrastructure IPs.
  • Rotate the secret file periodically. Treat the -S file like any other privileged credential. Rotate on staff turnover and after any suspected exposure.
  • Review reverse CLI mode (-M). If using -M for centralized management, verify the outbound connection target and ensure the management facility is secured. The -M connection carries the same CLI capabilities and uses the same -S authentication.
  • Document the CLI as a privileged interface. Ensure operators understand that varnishadm is not a read-only tool. It can stop the service, rewrite the entire request pipeline, and (if inline-C is enabled) execute code.

How Netdata helps

  • Process and network monitoring. Netdata collects per-process metrics and network connection data, which can surface unexpected connections to the management port. Correlating new connections on port 6082 with process-level changes helps detect unauthorized CLI sessions.
  • Ban and purge rate tracking. Netdata monitors MAIN.bans_added and related ban counters. A spike in ban activity that does not correlate with a known deployment or CMS publish event may indicate unauthorized CLI access.
  • Child process stability. Varnish exposes MGT.child_panic, MGT.child_died, and MGT.child_start. A CLI stop command or a malicious VCL load that crashes the child shows up immediately as a child restart event. Correlating child restarts with CLI log entries helps distinguish operational restarts from attack-driven ones.
  • VCL state changes. Netdata monitors MAIN.n_vcl, MAIN.n_vcl_avail, and MAIN.n_vcl_discard. An unexpected increase in loaded VCLs can indicate a vcl.load from an unauthorized CLI session.
  • Hit rate correlation. A sudden hit-rate collapse combined with elevated MAIN.bans_added is consistent with either a botched deployment or an attacker injecting bans via the CLI. Netdata’s per-second granularity and anomaly detection help distinguish between the two by showing the exact timing and pattern of the change.