docs-v2/content/enterprise_influxdb/v1/administration/manage/node-labels.md

235 lines
7.1 KiB
Markdown

---
title: Manage node labels
description: >
Assign user-defined labels to nodes in your InfluxDB Enterprise cluster.
menu:
enterprise_influxdb_v1:
name: Manage node labels
parent: Manage
weight: 101
related:
- /enterprise_influxdb/v1/tools/influxd-ctl/show/
- /enterprise_influxdb/v1/tools/influxd-ctl/node-labels/
---
Assign user-defined labels to nodes in your InfluxDB Enterprise cluster.
**Node labels** are user-defined key-value pairs assigned to nodes in your
cluster that act as metadata for each node.
The tools used for viewing and managing node labels in your InfluxDB Enterprise cluster
are the [`influxd-ctl show` command ](/enterprise_influxdb/v1/tools/influxd-ctl/show/)
and the [`influxd-ctl node-label` command and subcommands](/enterprise_influxdb/v1/tools/influxd-ctl/node-labels/).
<!-- TOC -->
- [View node labels](#view-node-labels)
- [Add labels to a node](#add-labels-to-a-node)
- [Update node labels](#update-node-labels)
- [Delete node labels](#delete-node-labels)
- [Programmatically access node labels](#programmatically-access-node-labels)
<!-- TOC -->
## View node labels
Use the [`influxd-ctl show` command](/enterprise_influxdb/v1/tools/influxd-ctl/show/)
to view information about nodes in your InfluxDB Enterprise cluster, including
node labels.
```sh
influxd-ctl show
```
{{< expand-wrapper >}}
{{% expand "View example `influxd-ctl show` output" %}}
```sh
Data Nodes
==========
ID TCP Address Version Labels
4 data-node-01:8188 {{< latest-patch >}}-c{{< latest-patch >}} {"az":"us-west"}
5 data-node-02:8288 {{< latest-patch >}}-c{{< latest-patch >}} {"az":"us-east"}
Meta Nodes
==========
ID TCP Address Version Labels
1 meta-node-01:8191 {{< latest-patch >}}-c{{< latest-patch >}} {"az":"us-west"}
2 meta-node-02:8291 {{< latest-patch >}}-c{{< latest-patch >}} {"az":"us-east"}
3 meta-node-03:8391 {{< latest-patch >}}-c{{< latest-patch >}} {"az":"us-west"}
```
{{% /expand %}}
{{< /expand-wrapper >}}
## Add labels to a node
To add a label to a node in your InfluxDB Enterprise cluster, use the
[`influxd-ctl node-labels set` command](/enterprise_influxdb/v1/tools/influxd-ctl/node-labels/set/)
and include the following flags:
- **-nodeid**: Node ID to add the labels to
- **-labels**: JSON object of label key-value pairs
```sh
influxd-ctl node-labels set -nodeid 4 -labels '{"az":"us-east","team":"amer"}'
```
{{< expand-wrapper >}}
{{% expand "View `influxd-ctl show` output with added labels" %}}
```sh
Data Nodes
==========
ID TCP Address Version Labels
4 data-node-01:8188 {{< latest-patch >}}-c{{< latest-patch >}} {"az":"us-east","team":"amer"}
5 data-node-02:8288 {{< latest-patch >}}-c{{< latest-patch >}} {}
Meta Nodes
==========
ID TCP Address Version Labels
1 meta-node-01:8191 {{< latest-patch >}}-c{{< latest-patch >}} {}
2 meta-node-02:8291 {{< latest-patch >}}-c{{< latest-patch >}} {}
3 meta-node-03:8391 {{< latest-patch >}}-c{{< latest-patch >}} {}
```
{{% /expand %}}
{{< /expand-wrapper >}}
## Update node labels
To update node labels, use the
[`influxd-ctl node-labels set` command](/enterprise_influxdb/v1/tools/influxd-ctl/node-labels/set/)
and include the following flags:
- **-nodeid**: Node ID to update the labels on
- **-labels**: JSON object of label key-value pairs to update
```sh
influxd-ctl node-labels set -nodeid 4 -labels '{"team":"emea"}'
```
_Only label keys included in the `-labels` JSON object are updated.
All other node labels are not modified._
{{< expand-wrapper >}}
{{% expand "View `influxd-ctl show` output with updated labels" %}}
```sh
Data Nodes
==========
ID TCP Address Version Labels
4 data-node-01:8188 {{< latest-patch >}}-c{{< latest-patch >}} {"az":"us-east","team":"emea"}
5 data-node-02:8288 {{< latest-patch >}}-c{{< latest-patch >}} {}
Meta Nodes
==========
ID TCP Address Version Labels
1 meta-node-01:8191 {{< latest-patch >}}-c{{< latest-patch >}} {}
2 meta-node-02:8291 {{< latest-patch >}}-c{{< latest-patch >}} {}
3 meta-node-03:8391 {{< latest-patch >}}-c{{< latest-patch >}} {}
```
{{% /expand %}}
{{< /expand-wrapper >}}
## Delete node labels
To update node labels, use the
[`influxd-ctl node-labels set` command](/enterprise_influxdb/v1/tools/influxd-ctl/node-labels/set/)
and include the following flags:
- **-nodeid**: Node ID to update the labels on
- **-labels**: JSON object of label key-value pairs to update
```sh
influxd-ctl node-labels delete -nodeid 4 -labels '["team"]'
```
{{< expand-wrapper >}}
{{% expand "View `influxd-ctl show` output with deleted label" %}}
```sh
Data Nodes
==========
ID TCP Address Version Labels
4 data-node-01:8188 {{< latest-patch >}}-c{{< latest-patch >}} {"az":"us-east"}
5 data-node-02:8288 {{< latest-patch >}}-c{{< latest-patch >}} {}
Meta Nodes
==========
ID TCP Address Version Labels
1 meta-node-01:8191 {{< latest-patch >}}-c{{< latest-patch >}} {}
2 meta-node-02:8291 {{< latest-patch >}}-c{{< latest-patch >}} {}
3 meta-node-03:8391 {{< latest-patch >}}-c{{< latest-patch >}} {}
```
{{% /expand %}}
{{< /expand-wrapper >}}
## Programmatically access node labels
Use the `/show-cluster` endpoint of meta node API to return a JSON object containing
information about your InfluxDB Enterprise cluster, including node labels.
{{< api-endpoint method="get" endpoint="meta-node-host:8191/show-cluster" >}}
{{< expand-wrapper >}}
{{% expand "View example JSON output" %}}
```json
{
"data": [
{
"id": 4,
"addr": "data-node-01:8086",
"httpScheme": "http",
"tcpAddr": "data-node-01:8088",
"version": "v1.10.0",
"labels": {
"az": "us-east",
"team": "emea"
}
},
{
"id": 5,
"addr": "data-node-02:8086",
"httpScheme": "http",
"tcpAddr": "data-node-02:8088",
"version": "v1.10.0",
"labels": {
"az": "us-west",
"team": "apac"
}
}
],
"meta": [
{
"id": 1,
"addr": "meta-node-01:8091",
"httpScheme": "http",
"tcpAddr": "meta-node-01:8089",
"version": "v1.10.0",
"labels": {
"az": "us-east",
"team": "emea"
}
},
{
"id": 2,
"addr": "meta-node-02:8091",
"httpScheme": "http",
"tcpAddr": "meta-node-02:8089",
"version": "v1.10.0",
"labels": {
"az": "us-west",
"team": "apac"
}
},
{
"id": 3,
"addr": "meta-node-03:8091",
"httpScheme": "http",
"tcpAddr": "meta-node-03:8089",
"version": "v1.10.0",
"labels": {
"az": "us-east",
"team": "amer"
}
}
]
}
```
{{% /expand %}}
{{< /expand-wrapper >}}