Skip to content

Commit e6d1cca

Browse files
authored
Revert "Revert "Deployment Guides: add and update documentation for deployment strate"" (netdata#20729)
1 parent 96c1962 commit e6d1cca

8 files changed

Lines changed: 839 additions & 625 deletions

File tree

docs/deployment-guides/README.md

Lines changed: 56 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,72 @@
11
# Deployment Guides
22

3-
Netdata provides real-time monitoring for various infrastructure types, from small IoT devices to complex hybrid environments that combine on-premise and cloud infrastructure. It supports bare-metal servers, virtual machines, and containers.
3+
Get Netdata up and running in your infrastructure. Choose a deployment method that fits your needs.
44

5-
## Core Components of a Netdata Deployment
5+
## Quick Start
66

7-
A Netdata deployment consists of three main components:
7+
:::tip Getting Started
88

9-
### 1. Netdata Agents
9+
- **Testing Netdata?**[Docker deployment](/packaging/docker/README.md) (2 minutes, easy cleanup)
10+
- **Monitoring one server?**[Standalone installation](/docs/deployment-guides/standalone-deployment.md) (1 minute, upgradeable)
11+
- **Production ready?**[Parent-Child setup](/docs/deployment-guides/deployment-with-centralization-points.md) (recommended)
1012

11-
Netdata Agents collect real-time metrics from your infrastructure's physical or virtual nodes, including applications and containers running on them. They are open-source and licensed under GPL v3+.
13+
:::
1214

13-
### 2. Netdata Parents
15+
## Deployment Methods
1416

15-
Netdata Parents serve as central aggregation points for monitoring data. They help reduce the resource load on individual Netdata Agents, provide high availability for collected metrics, extend data retention, and enable better isolation of monitored nodes.
17+
### Standalone
1618

17-
- Netdata Parents are built using the same Netdata Agent software.
18-
- Any Netdata Agent can function as both an Agent for a node and a Parent for other Agents.
19-
- Deploying multiple Netdata Parents ensures redundancy and seamless integration with Netdata Cloud.
19+
Single Netdata Agent monitoring one system. Perfect for getting started or monitoring individual servers.
2020

21-
### 3. Netdata Cloud
21+
**Best for:** Testing or simple single-server monitoring
2222

23-
Netdata Cloud is a SaaS platform that unifies all Netdata Agents and Parents into a distributed, scalable monitoring solution. It provides:
23+
**Setup time:** < 1 minute
2424

25-
- Centralized infrastructure monitoring
26-
- Advanced data analysis and visualization tools
27-
- Customizable dashboards
28-
- User management features
29-
- Alerting and anomaly detection capabilities
25+
[→ Deploy Standalone Agent](/docs/deployment-guides/standalone-deployment.md)
3026

31-
## Key Features of Netdata Agents
27+
### Parent-Child Streaming (Recommended)
3228

33-
Netdata Agents offer a modular monitoring solution with capabilities that include:
29+
The recommended production setup. Stream metrics from Child Agents to centralized Parent nodes for better data persistence and resource optimization.
3430

35-
- Extensive data collection through built-in plugins
36-
- A high-performance time-series database optimized for real-time analytics
37-
- A query engine for flexible data retrieval
38-
- Integrated health monitoring and alerting
39-
- Machine learning-based anomaly detection
40-
- Exporting of metrics to third-party systems
31+
**Best for:** Production environments of any size, high availability requirements
4132

42-
This structured deployment allows for scalable, efficient monitoring of any infrastructure, ensuring optimal performance and proactive issue resolution.
33+
**Setup time:** 10-15 minutes
34+
35+
[→ Deploy Parent-Child Setup](/docs/deployment-guides/deployment-with-centralization-points.md)
36+
37+
### Kubernetes
38+
39+
Deploy Netdata across your Kubernetes clusters with our Helm chart. Required for proper Kubernetes monitoring.
40+
41+
**Best for:** Kubernetes environments (required for full K8s observability)
42+
43+
**Setup time:** 5-10 minutes
44+
45+
[→ Deploy on Kubernetes](https://github.com/netdata/helmchart#netdata-helm-chart-for-kubernetes-deployments)
46+
47+
### Docker
48+
49+
Run Netdata in containers for quick testing. Note: Some features are limited compared to host installation.
50+
51+
**Best for:** Quick testing, ephemeral environments
52+
53+
**Setup time:** 2-5 minutes
54+
55+
[→ Deploy with Docker](/packaging/docker/README.md)
56+
57+
## Which Deployment Should I Choose?
58+
59+
| Environment | Recommended Method | Why |
60+
|-------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------|
61+
| **Production servers** | [Parent-Child](/docs/deployment-guides/deployment-with-centralization-points.md) | Best data persistence, resource optimization, and high availability |
62+
| **Kubernetes** | [Helm Chart](https://github.com/netdata/helmchart#netdata-helm-chart-for-kubernetes-deployments) | Required for K8s API access and pod metadata collection |
63+
| **Testing/Development** | [Standalone](/docs/deployment-guides/standalone-deployment.md) or [Docker](/packaging/docker/README.md) | Quick setup, easy to remove |
64+
| **Single server** | [Standalone](/docs/deployment-guides/standalone-deployment.md) (upgrade to [Parent-Child](/docs/deployment-guides/deployment-with-centralization-points.md) later) | Start simple, upgrade when ready for production |
65+
66+
:::warning Important Notes
67+
68+
- **Kubernetes**: Always use our Helm chart. Direct host installation won't have access to K8s API for pod metadata and service discovery.
69+
- **Docker**: Limited feature set compared to host installation. Best for testing, not recommended for production.
70+
- **Production**: Parent-Child is recommended regardless of cluster size for better reliability and data persistence.
71+
72+
:::

docs/deployment-guides/deployment-strategies.md

Lines changed: 78 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,40 @@
1-
# Deployment Examples
1+
# Configuration Examples
22

3-
## Deployment Options Overview
3+
These practical examples will help you optimize Netdata for various real-world deployment scenarios.
44

5-
This section provides a quick overview of a few common deployment options for Netdata.
5+
## Single Agent Configuration
66

7-
You can read about [Standalone Deployment](/docs/deployment-guides/standalone-deployment.md) and [Deployment with Centralization Points](/docs/deployment-guides/deployment-with-centralization-points.md) in the documentation inside this section.
7+
Single Agents work great out of the box with sensible defaults.
88

9-
The sections below go into configuration examples about these deployment concepts.
9+
:::tip
1010

11-
## Deployment Configuration Details
11+
Check out our [configuration documentation](/docs/netdata-agent/configuration/README.md) for all available options.
1212

13-
### Stand-alone
13+
:::
1414

15-
The stand-alone setup is configured out of the box with reasonable defaults, but please consult our [configuration documentation](/docs/netdata-agent/configuration/README.md) for more details.
15+
## Parent-Child Configuration Examples
1616

17-
### Parent – Child
17+
### Lightweight Child Configuration
1818

19-
For setups involving Parent and Child Agents, they need to be configured for [streaming](/docs/observability-centralization-points/metrics-centralization-points/configuration.md), through the configuration file `stream.conf`.
19+
This example helps you make Children super lightweight by offloading work to Parents, minimizing resource usage on production systems.
2020

21-
This will instruct the Child to stream data to the Parent and the Parent to accept streaming connections for one or more Child Agents. To secure this connection, both need a shared API key (to replace the string `API_KEY` in the examples below). Additionally, the Child can be configured with one or more addresses of Parent Agents (`PARENT_IP_ADDRESS`).
21+
<details>
22+
<summary><strong>Click to see lightweight Child configuration</strong></summary><br/>
2223

23-
An API key is a key created with `uuidgen` and is used for authentication and/or customization on the Parent side. For example, a Child can stream using the API key, and a Parent can be configured to accept connections from the Child, but it can also apply different options for Children by using multiple different API keys. The easiest setup uses just one API key for all Child Agents.
24+
**Why minimize Child footprint?**
25+
We don't recommend connecting Children to Cloud directly. This reduces the Netdata Agent footprint on your production systems, as some capabilities can be switched OFF for the Child and kept ON for the Parent.
2426

25-
#### Child config
27+
**What this does:**
2628

27-
As mentioned above, we do not recommend connecting the Child to Cloud directly during your setup.
29+
- Stores metrics in RAM only (zero disk I/O)
30+
- Disables machine learning (Parent handles it)
31+
- Disables alerts (Parent handles them)
32+
- Keeps only 20 minutes of data locally
33+
- Restricts dashboard to localhost only
2834

29-
This is done to reduce the footprint of the Netdata Agent on your production system, as some capabilities can be switched OFF for the Child and kept ON for the Parent.
35+
Edit `netdata.conf` on the Child using the [edit-config](/docs/netdata-agent/configuration/README.md#locate-your-config-directory) script:
3036

31-
In this example, Machine Learning and Alerting are disabled for the Child, so that the Parent can take the load. We also use RAM instead of disk to store metrics with limited retention, covering temporary network issues.
32-
33-
##### netdata.conf
34-
35-
On the child node, edit `netdata.conf` by using the [edit-config](/docs/netdata-agent/configuration/README.md#edit-a-configuration-file-using-edit-config) script and set the following parameters:
36-
37-
```text
37+
```ini
3838
[db]
3939
# https://github.com/netdata/netdata/blob/master/src/database/README.md
4040
# none = no retention, ram = some retention in ram
@@ -60,11 +60,9 @@ On the child node, edit `netdata.conf` by using the [edit-config](/docs/netdata-
6060
# enable running new plugins = no
6161
```
6262

63-
##### stream.conf
63+
Edit `stream.conf` on the Child using the [edit-config](/docs/netdata-agent/configuration/README.md#locate-your-config-directory) script:
6464

65-
To edit `stream.conf`, use again the [edit-config](/docs/netdata-agent/configuration/README.md#edit-a-configuration-file-using-edit-config) script and set the following parameters:
66-
67-
```text
65+
```ini
6866
[stream]
6967
# Stream metrics to another Netdata
7068
enabled = yes
@@ -74,38 +72,50 @@ To edit `stream.conf`, use again the [edit-config](/docs/netdata-agent/configura
7472
api key = API_KEY
7573
```
7674

77-
#### Parent config
75+
**Perfect for:** IoT devices, containers, or any resource-constrained system.
76+
77+
</details><br/>
78+
79+
### Parent with Tiered Storage
7880

79-
For the Parent, besides setting up streaming, this example also provides configuration for multiple [tiers of metrics storage](/src/database/README.md#tiers), for 10 Children, with about 2k metrics each. This allows for:
81+
This example helps you configure a Parent with intelligent storage tiers to store different time ranges at different resolutions.
8082

81-
- 1s granularity at tier 0 for 1 week
82-
- 1m granularity at tier 1 for 1 month
83-
- 1h granularity at tier 2 for 1 year
83+
<details>
84+
<summary><strong>Click to see Parent with tiered storage configuration</strong></summary><br/>
8485

85-
Requiring:
86+
This example provides configuration for multiple [tiers of metrics storage](/src/database/README.md#tiers), for 10 Children with about 2k metrics each.
8687

87-
- 25GB of disk
88-
- 3.5GB of RAM (2.5GB under pressure)
88+
**What this gives you:**
8989

90-
##### netdata.conf
90+
- 1-second resolution for 1 week (recent data at full detail)
91+
- 1-minute resolution for 1 month (medium-term trends)
92+
- 1-hour resolution for 1 year (long-term patterns)
9193

92-
On the Parent, edit `netdata.conf` by using the [edit-config](/docs/netdata-agent/configuration/README.md#edit-a-configuration-file-using-edit-config) script and set the following parameters:
94+
**Resource requirements:**
9395

94-
```text
96+
- Disk space: 25GB total
97+
- RAM usage: 3.5GB typical (2.5GB under memory pressure)
98+
99+
Edit `netdata.conf` on the Parent using the [edit-config](/docs/netdata-agent/configuration/README.md#locate-your-config-directory) script:
100+
101+
```ini
95102
[db]
96103
mode = dbengine
97104
dbengine tier backfill = new
98105
storage tiers = 3
99106
dbengine page cache size = 1.4GiB
107+
100108
# storage tier 0
101109
update every = 1
102-
dbengine tier 0 retention space = 12GiB
110+
dbengine tier 0 retention size = 12GiB
111+
103112
# storage tier 1
104113
dbengine tier 1 update every iterations = 60
105-
dbengine tier 1 retention space = 4GiB
114+
dbengine tier 1 retention size = 4GiB
115+
106116
# storage tier 2
107117
dbengine tier 2 update every iterations = 60
108-
dbengine tier 2 retention space = 2GiB
118+
dbengine tier 2 retention size = 2GiB
109119
[ml]
110120
# Enabled by default
111121
# enabled = yes
@@ -117,25 +127,36 @@ On the Parent, edit `netdata.conf` by using the [edit-config](/docs/netdata-agen
117127
# bind to = *
118128
```
119129

120-
##### stream.conf
130+
Edit `stream.conf` on the Parent using the [edit-config](/docs/netdata-agent/configuration/README.md#locate-your-config-directory) script:
121131

122-
On the Parent node, edit `stream.conf` by using the [edit-config](/docs/netdata-agent/configuration/README.md#edit-a-configuration-file-using-edit-config) script and set the following parameters:
123-
124-
```yaml
132+
```ini
125133
[API_KEY]
126-
# Accept metrics streaming from other Agents with the specified API key
127-
enabled = yes
134+
# Accept metrics streaming from other Agents with the specified API key
135+
enabled = yes
128136
```
129137

130-
### Active–Active Parents
138+
**Perfect for:** Central monitoring servers with enough storage for historical data.
139+
140+
</details><br/>
141+
142+
### Active-Active Parents
143+
144+
This example guides you through setting up active-active Parents that sync with each other for high availability.
131145

132-
To set up active–active streaming between Parent 1 and Parent 2, Parent 1 needs to be instructed to stream data to Parent 2 and Parent 2 to stream data to Parent 1. The Child Agents need to be configured with the addresses of both Parent Agents. An Agent will only connect to one Parent at a time, falling back to the next upon failure. These examples use the same API key between Parent Agents and for connections for Child Agents.
146+
<details>
147+
<summary><strong>Click to see high availability configuration</strong></summary><br/>
133148

134-
On both Netdata Parent and all Child Agents, edit `stream.conf` by using the [edit-config](/docs/netdata-agent/configuration/README.md#edit-a-configuration-file-using-edit-config) script:
149+
:::info
135150

136-
#### stream.conf on Parent 1
151+
- To set up active-active streaming between Parent 1 and Parent 2, Parent 1 needs to be instructed to stream data to Parent 2 and Parent 2 to stream data to Parent 1.
137152

138-
```text
153+
- The Child Agents need to be configured with the addresses of both Parent Agents. An Agent will only connect to one Parent at a time, falling back to the next upon failure.
154+
155+
:::
156+
157+
**Parent 1 stream.conf:**
158+
159+
```ini
139160
[stream]
140161
# Stream metrics to another Netdata
141162
enabled = yes
@@ -146,12 +167,11 @@ On both Netdata Parent and all Child Agents, edit `stream.conf` by using the [ed
146167
[API_KEY]
147168
# Accept metrics streams from Parent 2 and Child Agents
148169
enabled = yes
149-
150170
```
151171

152-
#### stream.conf on Parent 2
172+
**Parent 2 stream.conf:**
153173

154-
```text
174+
```ini
155175
[stream]
156176
# Stream metrics to another Netdata
157177
enabled = yes
@@ -163,9 +183,9 @@ On both Netdata Parent and all Child Agents, edit `stream.conf` by using the [ed
163183
enabled = yes
164184
```
165185

166-
#### stream.conf on Child Agents
186+
**Children stream.conf:**
167187

168-
```text
188+
```ini
169189
[stream]
170190
# Stream metrics to another Netdata
171191
enabled = yes
@@ -175,6 +195,8 @@ On both Netdata Parent and all Child Agents, edit `stream.conf` by using the [ed
175195
api key = API_KEY
176196
```
177197

198+
</details><br/>
199+
178200
## Further Reading
179201

180202
We strongly recommend the following configuration changes for production deployments:

0 commit comments

Comments
 (0)