diff options
Diffstat (limited to 'docs/metrics-storage-management')
3 files changed, 63 insertions, 45 deletions
diff --git a/docs/metrics-storage-management/enable-streaming.mdx b/docs/metrics-storage-management/enable-streaming.mdx index a737b07b6..3bcf19b40 100644 --- a/docs/metrics-storage-management/enable-streaming.mdx +++ b/docs/metrics-storage-management/enable-streaming.mdx @@ -1,8 +1,15 @@ --- title: "Enable streaming between nodes" -description: "With metrics streaming enabled, you can not only replicate metrics data into a second database, but also view dashboards and trigger alarm notifications for multiple nodes in parallel." -type: how-to -custom_edit_url: https://github.com/netdata/netdata/edit/master/docs/metrics-storage-management/enable-streaming.mdx +description: >- + "With metrics streaming enabled, you can not only replicate metrics data + into a second database, but also view dashboards and trigger alarm notifications + for multiple nodes in parallel." +type: "how-to" +custom_edit_url: "https://github.com/netdata/netdata/blob/master/docs/metrics-storage-management/enable-streaming.mdx" +sidebar_label: "Enable streaming between nodes" +learn_status: "Published" +learn_topic_type: "Tasks" +learn_rel_path: "Setup" --- # Enable streaming between nodes @@ -13,7 +20,7 @@ parent node, and both nodes retain metrics in their own databases. To configure replication, you need two nodes, each running Netdata. First you'll first enable streaming on your parent node, then enable streaming on your child node. When you're finished, you'll be able to see the child node's metrics in the parent node's dashboard, quickly switch between the two dashboards, and be able to serve [alarm -notifications](/docs/monitor/enable-notifications.md) from either or both nodes. +notifications](https://github.com/netdata/netdata/blob/master/docs/monitor/enable-notifications.md) from either or both nodes. ## Enable streaming on the parent node @@ -24,8 +31,8 @@ itself while initiating a streaming connection. Copy that into a separate text f > Find out how to [install `uuidgen`](https://command-not-found.com/uuidgen) on your node if you don't already have it. -Next, open `stream.conf` using [`edit-config`](/docs/configure/nodes.md#use-edit-config-to-edit-configuration-files) -from within the [Netdata config directory](/docs/configure/nodes.md#the-netdata-config-directory). +Next, open `stream.conf` using [`edit-config`](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#use-edit-config-to-edit-configuration-files) +from within the [Netdata config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory). ```bash cd /etc/netdata @@ -49,7 +56,7 @@ simplified version of the configuration, minus the commented lines, looks like t ``` Save the file and close it, then restart Netdata with `sudo systemctl restart netdata`, or the [appropriate -method](/docs/configure/start-stop-restart.md) for your system. +method](https://github.com/netdata/netdata/blob/master/docs/configure/start-stop-restart.md) for your system. ## Enable streaming on the child node @@ -70,7 +77,7 @@ looks like the following: ``` Save the file and close it, then restart Netdata with `sudo systemctl restart netdata`, or the [appropriate -method](/docs/configure/start-stop-restart.md) for your system. +method](https://github.com/netdata/netdata/blob/master/docs/configure/start-stop-restart.md) for your system. ## Enable TLS/SSL on streaming (optional) @@ -90,7 +97,7 @@ sudo chown netdata:netdata /etc/netdata/ssl/cert.pem /etc/netdata/ssl/key.pem Next, enforce TLS/SSL on the web server. Open `netdata.conf`, scroll down to the `[web]` section, and look for the `bind to` setting. Add `^SSL=force` to turn on TLS/SSL. See the [web server -reference](/web/server/README.md#enabling-tls-support) for other TLS/SSL options. +reference](https://github.com/netdata/netdata/blob/master/web/server/README.md#enabling-tls-support) for other TLS/SSL options. ```conf [web] @@ -110,7 +117,7 @@ self-signed certificates. ``` Restart both the parent and child nodes with `sudo systemctl restart netdata`, or the [appropriate -method](/docs/configure/start-stop-restart.md) for your system, to stream encrypted metrics using TLS/SSL. +method](https://github.com/netdata/netdata/blob/master/docs/configure/start-stop-restart.md) for your system, to stream encrypted metrics using TLS/SSL. ## View streamed metrics in Netdata's dashboard @@ -135,17 +142,17 @@ Now that you have a basic streaming setup with replication, you may want to twea child database, disable the child dashboard, or enable SSL on the streaming connection between the parent and child. See the [streaming reference -doc](/docs/metrics-storage-management/reference-streaming.mdx#examples) for details about +doc](https://github.com/netdata/netdata/blob/master/docs/metrics-storage-management/reference-streaming.mdx#examples) for details about other possible configurations. When using Netdata's default TSDB (`dbengine`), the parent node maintains separate, parallel databases for itself and every child node streaming to it. Each instance is sized identically based on the `dbengine multihost disk space` -setting in `netdata.conf`. See our doc on [changing metrics retention](/docs/store/change-metrics-storage.md) for +setting in `netdata.conf`. See our doc on [changing metrics retention](https://github.com/netdata/netdata/blob/master/docs/store/change-metrics-storage.md) for details. ### Related information & further reading - Streaming - - [How Netdata streams metrics](/docs/metrics-storage-management/how-streaming-works.mdx) - - **[Enable streaming between nodes](/docs/metrics-storage-management/enable-streaming.mdx)** - - [Streaming reference](/docs/metrics-storage-management/reference-streaming.mdx) + - [How Netdata streams metrics](https://github.com/netdata/netdata/blob/master/docs/metrics-storage-management/how-streaming-works.mdx) + - **[Enable streaming between nodes](https://github.com/netdata/netdata/blob/master/docs/metrics-storage-management/enable-streaming.mdx)** + - [Streaming reference](https://github.com/netdata/netdata/blob/master/docs/metrics-storage-management/reference-streaming.mdx) diff --git a/docs/metrics-storage-management/how-streaming-works.mdx b/docs/metrics-storage-management/how-streaming-works.mdx index ecbce39bc..f181d3769 100644 --- a/docs/metrics-storage-management/how-streaming-works.mdx +++ b/docs/metrics-storage-management/how-streaming-works.mdx @@ -1,8 +1,15 @@ --- title: "How metrics streaming works" -description: "Netdata's real-time streaming allows you to replicate metrics data across multiple nodes, or centralize all your metrics data into a single time-series database (TSDB)." -type: explanation -custom_edit_url: https://github.com/netdata/netdata/edit/master/docs/metrics-storage-management/how-streaming-works.mdx +description: >- + "Netdata's real-time streaming allows you to replicate metrics data + across multiple nodes, or centralize all your metrics data into a single + time-series database (TSDB)." +type: "explanation" +custom_edit_url: "https://github.com/netdata/netdata/blob/master/docs/metrics-storage-management/how-streaming-works.mdx" +sidebar_label: "How metrics streaming works" +learn_status: "Published" +learn_topic_type: "Concepts" +learn_rel_path: "Concepts" --- # How metrics streaming works @@ -12,13 +19,13 @@ replicate metrics data across multiple nodes, or centralize all your metrics dat (TSDB). When one node streams metrics to another, the node receiving metrics can visualize them on the -[dashboard](/docs/visualize/interact-dashboards-charts.md), run health checks to [trigger -alarms](/docs/monitor/view-active-alarms.md) and [send notifications](/docs/monitor/enable-notifications.md), and -[export](/docs/export/external-databases.md) all metrics to an external TSDB. When Netdata streams metrics to another +[dashboard](https://github.com/netdata/netdata/blob/master/docs/visualize/interact-dashboards-charts.md), run health checks to [trigger +alarms](https://github.com/netdata/netdata/blob/master/docs/monitor/view-active-alarms.md) and [send notifications](https://github.com/netdata/netdata/blob/master/docs/monitor/enable-notifications.md), and +[export](https://github.com/netdata/netdata/blob/master/docs/export/external-databases.md) all metrics to an external TSDB. When Netdata streams metrics to another Netdata, the receiving one is able to perform everything a Netdata instance is capable of. Streaming lets you decide exactly how you want to store and maintain metrics data. While we believe Netdata's -[distributed architecture](/docs/store/distributed-data-architecture.md) is ideal for speed and scale, streaming +[distributed architecture](https://github.com/netdata/netdata/blob/master/docs/store/distributed-data-architecture.md) is ideal for speed and scale, streaming provides centralization options for those who want to maintain only a single TSDB instance. ## Streaming basics @@ -68,7 +75,7 @@ Here are a few example streaming configurations: Parent nodes feature a **Replicated Nodes** section in the left-hand panel, which opens with the hamburger icon ![Hamburger icon](https://raw.githubusercontent.com/netdata/netdata-ui/master/src/components/icon/assets/hamburger.svg) in the top navigation. The parent node, plus any child nodes, appear here. Click on any of the hostnames to switch -between parent and child dashboards, all served by the parent's [web server](/web/server/README.md). +between parent and child dashboards, all served by the parent's [web server](https://github.com/netdata/netdata/blob/master/web/server/README.md). ![Switching between ](https://user-images.githubusercontent.com/1153921/110043346-761ec000-7d04-11eb-8e58-77670ba39161.gif) @@ -79,14 +86,14 @@ Each child dashboard is also available directly at the following URL pattern: ## What's next? Now that you understand the fundamentals of streaming metrics between nodes, go ahead and [enable -streaming](/docs/metrics-storage-management/enable-streaming.mdx) using a simple `parent-child` relationship. For all -the details, see the [streaming reference](/docs/metrics-storage-management/reference-streaming.mdx) doc. +streaming](https://github.com/netdata/netdata/blob/master/docs/metrics-storage-management/enable-streaming.mdx) using a simple `parent-child` relationship. For all +the details, see the [streaming reference](https://github.com/netdata/netdata/blob/master/docs/metrics-storage-management/reference-streaming.mdx) doc. -Take your streaming setup even further by [exporting metrics](/docs/export/external-databases.md) to an external TSDB. +Take your streaming setup even further by [exporting metrics](https://github.com/netdata/netdata/blob/master/docs/export/external-databases.md) to an external TSDB. ### Related information & further reading - Streaming - - **[How Netdata streams metrics](/docs/metrics-storage-management/how-streaming-works.mdx)** - - [Enable streaming between nodes](/docs/metrics-storage-management/enable-streaming.mdx) - - [Streaming reference](/docs/metrics-storage-management/reference-streaming.mdx)
\ No newline at end of file + - **[How Netdata streams metrics](https://github.com/netdata/netdata/blob/master/docs/metrics-storage-management/how-streaming-works.mdx)** + - [Enable streaming between nodes](https://github.com/netdata/netdata/blob/master/docs/metrics-storage-management/enable-streaming.mdx) + - [Streaming reference](https://github.com/netdata/netdata/blob/master/docs/metrics-storage-management/reference-streaming.mdx)
\ No newline at end of file diff --git a/docs/metrics-storage-management/reference-streaming.mdx b/docs/metrics-storage-management/reference-streaming.mdx index c77ceb37c..58c898639 100644 --- a/docs/metrics-storage-management/reference-streaming.mdx +++ b/docs/metrics-storage-management/reference-streaming.mdx @@ -1,24 +1,28 @@ --- title: "Streaming reference" description: "Each node running Netdata can stream the metrics it collects, in real time, to another node. See all of the available settings in this reference document." -type: reference -custom_edit_url: https://github.com/netdata/netdata/edit/master/docs/metrics-storage-management/reference-streaming.mdx +type: "reference" +custom_edit_url: "https://github.com/netdata/netdata/edit/master/docs/metrics-storage-management/reference-streaming.mdx" +sidebar_label: "Streaming reference" +learn_status: "Published" +learn_topic_type: "References" +learn_rel_path: "References/Configuration" --- # Streaming reference Each node running Netdata can stream the metrics it collects, in real time, to another node. To learn more, read about -[how streaming works](/docs/metrics-storage-management/how-streaming-works.mdx). +[how streaming works](https://github.com/netdata/netdata/blob/master/docs/metrics-storage-management/how-streaming-works.mdx). For a quickstart guide for enabling a simple `parent-child` streaming relationship, see our [stream metrics between -nodes](/docs/metrics-storage-management/enable-streaming.mdx) doc. All other configuration options and scenarios are +nodes](https://github.com/netdata/netdata/blob/master/docs/metrics-storage-management/enable-streaming.mdx) doc. All other configuration options and scenarios are covered in the sections below. ## Configuration There are two files responsible for configuring Netdata's streaming capabilities: `stream.conf` and `netdata.conf`. -From within your Netdata config directory (typically `/etc/netdata`), [use `edit-config`](/docs/configure/nodes.md) to +From within your Netdata config directory (typically `/etc/netdata`), [use `edit-config`](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md) to open either `stream.conf` or `netdata.conf`. ``` @@ -53,7 +57,7 @@ node**. This file is automatically generated by Netdata the first time it is sta | `api key` | ` ` | The `API_KEY` to use as the child node. | | `timeout seconds` | `60` | The timeout to connect and send metrics to a parent. | | `default port` | `19999` | The port to use if `destination` does not specify one. | -| [`send charts matching`](#send-charts-matching) | `*` | A space-separated list of [Netdata simple patterns](/libnetdata/simple_pattern/README.md) to filter which charts are streamed. [Read more →](#send-charts-matching) | +| [`send charts matching`](#send-charts-matching) | `*` | A space-separated list of [Netdata simple patterns](https://github.com/netdata/netdata/blob/master/libnetdata/simple_pattern/README.md) to filter which charts are streamed. [Read more →](#send-charts-matching) | | `buffer size bytes` | `10485760` | The size of the buffer to use when sending metrics. The default `10485760` equals a buffer of 10MB, which is good for 60 seconds of data. Increase this if you expect latencies higher than that. The buffer is flushed on reconnect. | | `reconnect delay seconds` | `5` | How long to wait until retrying to connect to the parent node. | | `initial clock resync iterations` | `60` | Sync the clock of charts for how many seconds when starting. | @@ -63,9 +67,9 @@ node**. This file is automatically generated by Netdata the first time it is sta | Setting | Default | Description | | :---------------------------------------------- | :------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `enabled` | `no` | Whether this API KEY enabled or disabled. | -| [`allow from`](#allow-from) | `*` | A space-separated list of [Netdata simple patterns](/libnetdata/simple_pattern/README.md) matching the IPs of nodes that will stream metrics using this API key. [Read more →](#allow-from) | +| [`allow from`](#allow-from) | `*` | A space-separated list of [Netdata simple patterns](https://github.com/netdata/netdata/blob/master/libnetdata/simple_pattern/README.md) matching the IPs of nodes that will stream metrics using this API key. [Read more →](#allow-from) | | `default history` | `3600` | The default amount of child metrics history to retain when using the `save`, `map`, or `ram` memory modes. | -| [`default memory mode`](#default-memory-mode) | `ram` | The [database](/database/README.md) to use for all nodes using this `API_KEY`. Valid settings are `dbengine`, `map`, `save`, `ram`, or `none`. [Read more →](#default-memory-mode) | +| [`default memory mode`](#default-memory-mode) | `ram` | The [database](https://github.com/netdata/netdata/blob/master/database/README.md) to use for all nodes using this `API_KEY`. Valid settings are `dbengine`, `map`, `save`, `ram`, or `none`. [Read more →](#default-memory-mode) | | `health enabled by default` | `auto` | Whether alarms and notifications should be enabled for nodes using this `API_KEY`. `auto` enables alarms when the child is connected. `yes` enables alarms always, and `no` disables alarms. | | `default postpone alarms on connect seconds` | `60` | Postpone alarms and notifications for a period of time after the child connects. | | `default proxy enabled` | ` ` | Route metrics through a proxy. | @@ -94,7 +98,7 @@ To enable TCP streaming to a parent node at `203.0.113.0` on port `20000` and wi #### `send charts matching` -A space-separated list of [Netdata simple patterns](/libnetdata/simple_pattern/README.md) to filter which charts are streamed. +A space-separated list of [Netdata simple patterns](https://github.com/netdata/netdata/blob/master/libnetdata/simple_pattern/README.md) to filter which charts are streamed. The default is a single wildcard `*`, which streams all charts. @@ -115,7 +119,7 @@ To send all but a few charts, use `!` to create a negative match. To send _all_ #### `allow from` -A space-separated list of [Netdata simple patterns](/libnetdata/simple_pattern/README.md) matching the IPs of nodes that +A space-separated list of [Netdata simple patterns](https://github.com/netdata/netdata/blob/master/libnetdata/simple_pattern/README.md) matching the IPs of nodes that will stream metrics using this API key. The order is important, left to right, as the first positive or negative match is used. The default is `*`, which accepts all requests including the `API_KEY`. @@ -139,7 +143,7 @@ To allow all IPs starting with `10.*`, except `10.1.2.3`: #### `default memory mode` -The [database](/database/README.md) to use for all nodes using this `API_KEY`. Valid settings are `dbengine`, `ram`, +The [database](https://github.com/netdata/netdata/blob/master/database/README.md) to use for all nodes using this `API_KEY`. Valid settings are `dbengine`, `ram`, `save`, `map`, or `none`. - `dbengine`: The default, recommended time-series database (TSDB) for Netdata. Stores recent metrics in memory, then @@ -152,7 +156,7 @@ The [database](/database/README.md) to use for all nodes using this `API_KEY`. V - `none`: No database. When using `default memory mode = dbengine`, the parent node creates a separate instance of the TSDB to store metrics -from child nodes. The [size of _each_ instance is configurable](/docs/store/change-metrics-storage.md) with the `page +from child nodes. The [size of _each_ instance is configurable](https://github.com/netdata/netdata/blob/master/docs/store/change-metrics-storage.md) with the `page cache size` and `dbengine multihost disk space` settings in the `[global]` section in `netdata.conf`. ### `netdata.conf` @@ -160,9 +164,9 @@ cache size` and `dbengine multihost disk space` settings in the `[global]` secti | Setting | Default | Description | | :----------------------------------------- | :---------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **`[global]` section** | | | -| `memory mode` | `dbengine` | Determines the [database type](/database/README.md) to be used on that node. Other options settings include `none`, `ram`, `save`, and `map`. `none` disables the database at this host. This also disables alarms and notifications, as those can't run without a database. | +| `memory mode` | `dbengine` | Determines the [database type](https://github.com/netdata/netdata/blob/master/database/README.md) to be used on that node. Other options settings include `none`, `ram`, `save`, and `map`. `none` disables the database at this host. This also disables alarms and notifications, as those can't run without a database. | | **`[web]` section** | | | -| `mode` | `static-threaded` | Determines the [web server](/web/server/README.md) type. The other option is `none`, which disables the dashboard, API, and registry. | +| `mode` | `static-threaded` | Determines the [web server](https://github.com/netdata/netdata/blob/master/web/server/README.md) type. The other option is `none`, which disables the dashboard, API, and registry. | | `accept a streaming request every seconds` | `0` | Set a limit on how often a parent node accepts streaming requests from child nodes. `0` equals no limit. If this is set, you may see `... too busy to accept new streaming request. Will be allowed in X secs` in Netdata's `error.log`. | ## Examples @@ -191,7 +195,7 @@ default `dbengine` as specified by the `API_KEY`, and alarms are disabled. ### Securing streaming with TLS/SSL Netdata does not activate TLS encryption by default. To encrypt streaming connections, you first need to [enable TLS -support](/web/server/README.md#enabling-tls-support) on the parent. With encryption enabled on the receiving side, you +support](https://github.com/netdata/netdata/blob/master/web/server/README.md#enabling-tls-support) on the parent. With encryption enabled on the receiving side, you need to instruct the child to use TLS/SSL as well. On the child's `stream.conf`, configure the destination as follows: ``` @@ -450,7 +454,7 @@ ERROR : STREAM_SENDER[CHILD HOSTNAME] : STREAM child HOSTNAME [send to PARENT HO Chart data needs to be consistent between child and parent nodes. If there are differences between chart data on a parent and a child, such as gaps in metrics collection, it most often means your child's `memory mode` does not match the parent's. To learn more about the different ways Netdata can store metrics, and thus keep chart -data consistent, read our [memory mode documentation](/database/README.md). +data consistent, read our [memory mode documentation](https://github.com/netdata/netdata/blob/master/database/README.md). ### Forbidding access |