docs/security-and-privacy-design/netdata-agent-security.md
:::tip
Executive Summary
:::
Netdata Agent uses a security-first design.
It protects data by exposing only chart metadata and metric values, never raw system or application data.
This design allows Netdata to operate in high-security environments, including PCI Level 1 compliance.
When plugins collect data from databases or logs, only processed metrics are:
Raw data remains local and is never transmitted.
Netdata Agent safeguards your data at every stage.
| Aspect | Protection Mechanism |
|---|---|
| Raw Data | Stays on your system |
| Plugins | Hard-coded for collection only, reject external commands |
| Functions Feature | Predefined plugin functions, UI only calls these |
| Privileges | Most plugins run without escalated privileges; the main process does not require them |
Plugins needing escalated privileges are isolated:
:::tip
Netdata's decentralized design keeps all data local.
You are responsible for backing up and managing your system data.
:::
Netdata secures all internal and external communications:
| Communication | Protection |
|---|---|
| Plugins to Daemon | Ephemeral in-memory pipes, isolated from other processes |
| Streaming Metrics | Requires API keys, optional TLS encryption |
| Web API | Supports TLS if configured |
| Cloud Connection | MQTT over WebSockets over TLS with public/private key authorization |
Public and private keys are exchanged securely during Cloud provisioning.
flowchart TD
A("Netdata Plugin") -->|"Collects raw data"| B("In-memory Processing")
B -->|"Processes into metrics"| C("Netdata Daemon")
C -->|"Stores metrics locally"| D("Netdata Database")
C -->|"Optionally streams metrics"| E("Another Netdata Agent")
C -->|"Optionally sends metadata"| F("Netdata Cloud")
F --> G("Dashboards
& Notifications")
%% Style definitions
classDef alert fill:#ffeb3b,stroke:#000000,stroke-width:3px,color:#000000,font-size:14px
classDef neutral fill:#f9f9f9,stroke:#000000,stroke-width:3px,color:#000000,font-size:14px
classDef complete fill:#4caf50,stroke:#000000,stroke-width:3px,color:#000000,font-size:14px
classDef database fill:#2196F3,stroke:#000000,stroke-width:3px,color:#000000,font-size:14px
%% Apply styles
class A alert
class B,C neutral
class D,E complete
class F,G database
Netdata supports multiple authentication methods depending on the connection type:
| Connection | Authentication Method |
|---|---|
| Direct Agent Access | Typically unauthenticated, relies on LAN isolation or firewall policies |
| Streaming Between Agents | Requires API key authentication, optional TLS |
| Agent-to-Cloud | Public/private key cryptography with mandatory TLS |
:::tip
For additional access control, place Netdata Agents behind an authenticating web proxy.
:::
Netdata follows a structured vulnerability response process:
:::tip
Learn more in Netdata's GitHub Security Policy.
:::
Netdata Agent is resilient against major security threats:
| Threat | Defense Mechanism |
|---|---|
| DDoS Attacks | Fixed thread counts, automatic memory management, resource prioritization |
| SQL Injections | No UI data passed back to database-accessing plugins |
| System Resource Starvation | Nice priority protects production apps, early termination in OS-OOM events |
Additional protections include:
You can tailor the Agent's security settings:
| Setting | Options Available |
|---|---|
| TLS Encryption | Configurable for web API and streaming |
| Access Control Lists (ACLs) | Limit endpoint access by IP address |
| CPU/Memory Priority | Adjust scheduling priority and memory thresholds |
:::tip
Use Netdata configuration files to apply custom security settings.
:::