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 / logstash / logstash-monitoring-api-exposed ▌

Operations Guides

Logstash monitoring API exposed: port 9600 on a routable interface without auth

Every Logstash node runs an HTTP monitoring API, by default on port 9600. It answers questions like “what pipelines are running”, “what plugins and versions are installed”, and “show me the hottest threads with stack traces”. By default it binds to 127.0.0.1, which is safe. Exposure happens when someone sets api.http.host to 0.0.0.0 or a routable IP to make remote monitoring easier, and leaves it there.

On Logstash versions before 8.x, the API has no built-in authentication at all: anyone who can reach the port can read everything it serves. On 8.x, basic auth and SSL exist but are off by default, so an exposed bind is still unauthenticated unless you explicitly configured it.

This guide covers auditing the bind address, what an exposed API discloses, and how to lock it down without breaking your monitoring stack.

What the monitoring API exposes

The API is read-only, but “read-only” covers a lot of operational detail:

  • Node info. A GET to / returns the Logstash version, JVM version, node name, and pipeline summary. Version disclosure alone hands an attacker a CVE shopping list.
  • Pipeline stats. /_node/stats/pipelines enumerates pipeline IDs, per-plugin throughput, queue sizes, and event counters. This reveals your log sources, destinations, and internal naming conventions.
  • Pipeline configuration detail. /_node/pipelines can expose pipeline configuration structure in some versions. Pipeline configs routinely contain hostnames, index names, and sometimes connection details for Elasticsearch, Kafka, and databases.
  • Hot threads. /_node/hot_threads returns JVM stack traces. Beyond reconnaissance value, requesting hot threads is expensive for the JVM, so an unauthenticated API is also a lightweight denial-of-service vector.
  • JVM and process stats. Heap usage, GC counters, open file descriptors, uptime. Useful for timing attacks against known failure modes like a GC death spiral.

None of this requires a password if the API is bound to a routable interface and auth is not configured. This is information disclosure and reconnaissance surface, plus a potential DoS path, not remote code execution. Treat it as a fix-before-the-audit-finds-it ticket, not a page.

Audit procedure

Work through these steps on every Logstash host. All commands are read-only.

1. Check what address the API is listening on.

# Find the listener for the monitoring API
ss -tlnp | grep 9600

Interpretation:

  • 127.0.0.1:9600 or [::1]:9600: loopback only. Safe from the network, though any local process can still query it.
  • 0.0.0.0:9600 or [::]:9600: listening on all interfaces. Exposed.
  • A specific routable IP (for example 10.0.4.17:9600): exposed on that interface. Whether that is acceptable depends on whether the interface is a management network and whether auth is enabled.

The default port is 9600, but it is configurable via api.http.port, and a second Logstash instance on the same host will take a subsequent port. If ss shows a Java process on 9601 or similar, check that too.

2. Check the configured bind and auth settings.

# Inspect API-related settings
grep -E 'api\.(http\.host|http\.port|enabled|auth|ssl)' /etc/logstash/logstash.yml

An empty result means defaults: api.enabled: true, bound to loopback, no auth, no SSL. If api.http.host is set to 0.0.0.0 or a routable IP and there are no api.auth or api.ssl lines, the API is exposed without authentication.

3. Test reachability from a different host.

Config files can lie: an old http.host setting, an override file, or a container port mapping can change what actually listens. The authoritative test is from off the host:

# Run from another machine that can route to the Logstash host
curl -sS --connect-timeout 5 http://<logstash-host-ip>:9600/

A JSON response with version and pipeline info confirms unauthenticated remote access. A timeout or refusal means the network path is blocked by the bind address or a firewall. A 401 means auth is enabled.

4. Check the Logstash version.

# Version from the API itself (from the host)
curl -sS http://127.0.0.1:9600/ | grep -o '"version":"[^"]*"'

This determines your remediation options. Logstash 8.x supports api.auth.type: basic and API SSL. On 7.x and earlier there is no built-in API auth, so your only controls are the bind address and network-level filtering.

5. Audit pipeline configs for plaintext credentials and loose permissions.

The exposed-API problem and the plaintext-credentials problem usually travel together. While you are on the host:

# Look for secrets in pipeline configs
grep -rn 'password\|api_key\|secret\|token' /etc/logstash/conf.d/

# Check who can read the configs
ls -la /etc/logstash/conf.d/

Pipeline configs frequently contain Elasticsearch passwords, database credentials, and API keys. If they are world-readable, any local user has your downstream credentials. Secrets should live in the Logstash keystore and be referenced as ${SECRET_NAME} in configs, not written inline.

Locking it down

Option 1: bind to loopback (simplest, works on every version)

# /etc/logstash/logstash.yml
api.http.host: 127.0.0.1

This is the right answer when your monitoring agent runs on the same host as Logstash, which is the common case. Restart Logstash to apply. Local collectors, health checks, and curl diagnostics from the host keep working.

Option 2: bind to a management interface with auth and SSL (8.x)

If the API must be reachable remotely, put it on a dedicated management network and turn on authentication:

# /etc/logstash/logstash.yml
api.http.host: 10.0.10.15        # management network interface only
api.ssl.enabled: true
api.auth.type: basic
api.auth.basic.username: logstash_monitor
api.auth.basic.password: ${LOGSTASH_API_PASSWORD}

Store the password in the Logstash keystore rather than inline:

# Add the API password to the keystore (prompts for the value)
logstash-keystore add LOGSTASH_API_PASSWORD

Two important details:

  • Basic auth without SSL sends credentials in cleartext. Anyone on the path can sniff them. Logstash 8.x warns about this combination. If you enable api.auth.type: basic, enable api.ssl.enabled: true as well.
  • Enabling SSL plus basic auth changes the default bind. In 8.x, once api.ssl.enabled: true and api.auth.type: basic are both set, Logstash treats the API as secured and defaults to binding on all interfaces (0.0.0.0) unless you set api.http.host explicitly. Operators routinely secure the API and accidentally widen its exposure in the same change. Always set api.http.host to the specific interface you intend.

Option 3: network-level controls (required for pre-8.x remote access)

On 7.x and earlier there is no auth option. If you genuinely need remote API access from a monitoring host, the only safe pattern is a host firewall or security group rule that allows port 9600 exclusively from the monitoring host’s IP. Prefer upgrading: 7.17 is end of life, and the 8.x auth model removes this entire class of workaround.

Verifying the lockdown

After restarting Logstash, re-run the audit:

# 1. Confirm the listener moved
ss -tlnp | grep 9600

# 2. Confirm remote access is refused or authenticated (from another host)
curl -sS --connect-timeout 5 http://<logstash-host-ip>:9600/

# 3. Confirm local collection still works (from the Logstash host)
curl -sS --connect-timeout 5 http://127.0.0.1:9600/_node/stats/pipelines?pretty

Expected results: the listener shows the intended address, the remote probe either times out (loopback bind) or returns 401 over HTTPS (auth enabled), and local stats queries still return pipeline data. Then confirm your monitoring system is still receiving Logstash metrics. This is the step people skip, and it is how a security fix turns into a silent monitoring outage.

Common pitfalls

  • The 0.0.0.0 trap after enabling auth. As covered above: SSL plus basic auth in 8.x flips the default bind to all interfaces. Verify with ss after every change, not just with the config file.
  • Deprecated setting names. The old http.host, http.port, and http.enabled settings are deprecated in favor of api.http.host, api.http.port, and api.enabled. Mixing old and new names is a configuration error. If a host has been upgraded across major versions, check for leftover http.* lines in logstash.yml.
  • Breaking the monitoring collector. If your metrics collector polls http://<host>:9600 remotely and you rebind to loopback, collection fails. Either run the collector on the Logstash host or point it at the management interface with credentials. A sudden gap in Logstash metrics after a config change is usually this, not a Logstash crash.
  • Container port publishing. In Docker or Kubernetes, a loopback bind inside the container does not help if the port is published or the pod shares a host network. Check the actual listener from outside the container’s network namespace, not just the container’s config.
  • Credentials in config management. If pipeline configs with inline passwords are deployed by Ansible, Puppet, or similar, the secrets also live in the config management repo and its state files. Rotating the Logstash-side storage to the keystore does not clean up the upstream copy.
  • Weak API passwords. Logstash 8.3.0 and later include a password policy for api.auth.basic.password (minimum length and character mix, with a WARN/ERROR enforcement mode). On earlier 8.x releases nothing stops you from setting a trivial password, so enforce strength yourself.

Signals to monitor

SignalWhy it mattersWarning sign
API listener address (ss -tlnp)The ground truth for exposure, independent of config filesListener on 0.0.0.0 or a routable IP without auth configured
api.* settings in logstash.ymlWhere bind, auth, and SSL are controlledapi.http.host set broadly with no api.auth lines; leftover deprecated http.* keys
Config file mtimes on /etc/logstashUnexpected edits outside a deploy window can re-expose the APImtime changes with no corresponding change record
Plaintext secrets in conf.dExposed API plus readable configs compounds into credential disclosurepassword/api_key matches in pipeline configs, or world-readable files
API reachability from the monitoring hostDetects both outages and accidental lockout of your collectorCollector failing while the process is healthy
Unexpected connections to port 9600Reconnaissance or scraping of the APIConnections from IPs other than localhost or the monitoring host

How Netdata helps

  • Netdata’s Logstash collector polls the monitoring API on port 9600, so the audit in this article doubles as a check on how your own metrics are collected. If you rebind or add auth, update the collector configuration at the same time and verify metric continuity.
  • A sudden stop in Logstash charts immediately after a config change is distinguishable from a crash: process and system metrics stay healthy while Logstash-specific charts go flat. Correlating collector reachability with process liveness and JVM uptime separates “API moved” from “Logstash down”.
  • Netdata surfaces the metrics the API serves (pipeline throughput, queue depth, JVM heap, GC, file descriptors) at per-second granularity, so you can watch output throughput continue uninterrupted while you make bind changes, confirming you have not disturbed the pipeline itself.
  • Alerting on API reachability alongside pipeline output rate catches both directions of the problem: an API that disappears (misconfiguration, GC pause, crash) and a pipeline that stops delivering while the API still answers (the “living dead” case).