Merge branch 'master' into clustered/install-reorg

staging/commandbar-clustered-install
Scott Anderson 2024-10-03 13:30:11 -06:00
commit 3b314c7429
10 changed files with 135 additions and 54 deletions

View File

@ -457,7 +457,8 @@ For {{% product-name %}} v1 API `/query` requests, set parameters as listed in t
Parameter | Allowed in | Ignored | Value Parameter | Allowed in | Ignored | Value
----------|------------|---------|------------------------------------------------------------------------- ----------|------------|---------|-------------------------------------------------------------------------
`chunked` | | Ignored | N/A _(Note that an unbounded query might return a large amount of data)_ `chunked` | Query string | Honored | Returns points in streamed batches instead of in a single response. If set to `true`, InfluxDB chunks responses by series or by every 10,000 points, whichever occurs first.
`chunked_size` | Query string | Honored | **Requires `chunked` to be set to `true`**. If set to a specific value, InfluxDB chunks responses by series or by this number of points.
`db` | Query string | Honored | Database name | `db` | Query string | Honored | Database name |
`epoch` | Query string | Honored | [Timestamp precision](#timestamp-precision) | `epoch` | Query string | Honored | [Timestamp precision](#timestamp-precision) |
`p` | Query string | Honored | Database token `p` | Query string | Honored | Database token

View File

@ -33,11 +33,13 @@ prepend:
3. In your terminal, create a directory for your Node.js project and change to it. 3. In your terminal, create a directory for your Node.js project and change to it.
```sh ```sh
mkdir influx-node-app && cd $_ mkdir influx-node-app && cd influx-node-app
``` ```
4. Enter the following command to generate an npm package for your project. 4. Enter the following command to generate an npm package for your project.
The `npm` package manager is included with Node.js.
- `npm`: the package manager included with Node.js
- `-y`: uses defaults for the package and bypasses prompts
```sh ```sh
npm init -y npm init -y
@ -53,15 +55,21 @@ Follow these steps to initialize the TypeScript project:
```sh ```sh
npm i -g typescript && npm i --save-dev @types/node npm i -g typescript && npm i --save-dev @types/node
``` ```
2. Create a TypeScript configuration with default values.
2. Enter the following command to create a TypeScript configuration
(`tsconfig.json`) with default values:
```sh ```sh
tsc --init tsc --init
``` ```
3. Run the TypeScript compiler. To recompile your code automatically as you make changes, pass the `watch` flag to the compiler.
3. Run the TypeScript compiler.
To recompile your code automatically as you make changes, pass the `--watch, -w` flag to the compiler.
<!--pytest.mark.skip-->
```sh ```sh
tsc -w -p tsc --watch
``` ```
## Install dependencies ## Install dependencies

View File

@ -62,7 +62,8 @@ For {{% product-name %}} v1 API `/query` requests, set parameters as listed in t
Parameter | Allowed in | Ignored | Value Parameter | Allowed in | Ignored | Value
------------|--------------|---------|------------------------------------------------------------------------- ------------|--------------|---------|-------------------------------------------------------------------------
`chunked` | | Ignored | N/A _(Note that an unbounded query might return a large amount of data)_ `chunked` | Query string | Honored | Returns points in streamed batches instead of in a single response. If set to `true`, InfluxDB chunks responses by series or by every 10,000 points, whichever occurs first.
`chunked_size` | Query string | Honored | **Requires `chunked` to be set to `true`**. If set to a specific value, InfluxDB chunks responses by series or by this number of points.
`db` | Query string | Honored | Database name [mapped to a bucket](/influxdb/cloud-serverless/guides/api-compatibility/v1/#map-v1-databases-and-retention-policies-to-buckets) `db` | Query string | Honored | Database name [mapped to a bucket](/influxdb/cloud-serverless/guides/api-compatibility/v1/#map-v1-databases-and-retention-policies-to-buckets)
`epoch` | Query string | Honored | [Timestamp precision](#timestamp-precision) `epoch` | Query string | Honored | [Timestamp precision](#timestamp-precision)
`pretty` | Query string | Ignored | N/A `pretty` | Query string | Ignored | N/A

View File

@ -35,11 +35,13 @@ Install the Node.js JavaScript client library to write data to InfluxDB {{% prod
3. In your terminal, create a directory for your Node.js project and change to it. 3. In your terminal, create a directory for your Node.js project and change to it.
```sh ```sh
mkdir influx-node-app && cd $_ mkdir influx-node-app && cd influx-node-app
``` ```
4. Enter the following command to generate an npm package for your project. 4. Enter the following command to generate an npm package for your project.
The `npm` package manager is included with Node.js.
- `npm`: the package manager included with Node.js
- `-y`: uses defaults for the package and bypasses prompts
```sh ```sh
npm init -y npm init -y
@ -55,15 +57,21 @@ Follow these steps to initialize the TypeScript project:
```sh ```sh
npm i -g typescript && npm i --save-dev @types/node npm i -g typescript && npm i --save-dev @types/node
``` ```
2. Create a TypeScript configuration with default values.
2. Enter the following command to create a TypeScript configuration
(`tsconfig.json`) with default values:
```sh ```sh
tsc --init tsc --init
``` ```
3. Run the TypeScript compiler. To recompile your code automatically as you make changes, pass the `watch` flag to the compiler.
3. Run the TypeScript compiler.
To recompile your code automatically as you make changes, pass the `--watch, -w` flag to the compiler.
<!--pytest.mark.skip-->
```sh ```sh
tsc -w -p tsc --watch
``` ```
## Install dependencies ## Install dependencies
@ -84,7 +92,7 @@ It only works with InfluxDB v2 management APIs.
The client examples include an [`env`](https://github.com/influxdata/influxdb-client-js/blob/master/examples/env.js) module for accessing your InfluxDB properties from environment variables or from `env.js`. The client examples include an [`env`](https://github.com/influxdata/influxdb-client-js/blob/master/examples/env.js) module for accessing your InfluxDB properties from environment variables or from `env.js`.
The examples use these properties to interact with the InfluxDB API. The examples use these properties to interact with the InfluxDB API.
Set environment variables or update `env.js` with your InfluxDB [bucket](/influxdb/cloud-serverless/organizations/buckets/), [organization](/influxdb/cloud-serverless/organizations/), [token](/influxdb/cloud-serverless/security/tokens/), and [url](/influxdb/cloud-serverless/reference/urls/). Set environment variables or update `env.js` with your InfluxDB [bucket](/influxdb/cloud-serverless/organizations/buckets/), [organization](/influxdb/cloud-serverless/organizations/), [token](/influxdb/cloud-serverless/security/tokens/), and [URL](/influxdb/cloud-serverless/reference/urls/).
```sh ```sh
export INFLUX_URL=https://{{< influxdb/host >}} export INFLUX_URL=https://{{< influxdb/host >}}

View File

@ -456,7 +456,8 @@ For {{% product-name %}} v1 API `/query` requests, set parameters as listed in t
Parameter | Allowed in | Ignored | Value Parameter | Allowed in | Ignored | Value
----------|------------|---------|------------------------------------------------------------------------- ----------|------------|---------|-------------------------------------------------------------------------
`chunked` | | Ignored | N/A _(Note that an unbounded query might return a large amount of data)_ `chunked` | Query string | Honored | Returns points in streamed batches instead of in a single response. If set to `true`, InfluxDB chunks responses by series or by every 10,000 points, whichever occurs first.
`chunked_size` | Query string | Honored | **Requires `chunked` to be set to `true`**. If set to a specific value, InfluxDB chunks responses by series or by this number of points.
`db` | Query string | Honored | Database name | `db` | Query string | Honored | Database name |
`epoch` | Query string | Honored | [Timestamp precision](#timestamp-precision) | `epoch` | Query string | Honored | [Timestamp precision](#timestamp-precision) |
`p` | Query string | Honored | Database token `p` | Query string | Honored | Database token

View File

@ -33,11 +33,13 @@ prepend:
3. In your terminal, create a directory for your Node.js project and change to it. 3. In your terminal, create a directory for your Node.js project and change to it.
```sh ```sh
mkdir influx-node-app && cd $_ mkdir influx-node-app && cd influx-node-app
``` ```
4. Enter the following command to generate an npm package for your project. 4. Enter the following command to generate an npm package for your project.
The `npm` package manager is included with Node.js.
- `npm`: the package manager included with Node.js
- `-y`: uses defaults for the package and bypasses prompts
```sh ```sh
npm init -y npm init -y
@ -53,15 +55,21 @@ Follow these steps to initialize the TypeScript project:
```sh ```sh
npm i -g typescript && npm i --save-dev @types/node npm i -g typescript && npm i --save-dev @types/node
``` ```
2. Create a TypeScript configuration with default values.
2. Enter the following command to create a TypeScript configuration
(`tsconfig.json`) with default values:
```sh ```sh
tsc --init tsc --init
``` ```
3. Run the TypeScript compiler. To recompile your code automatically as you make changes, pass the `watch` flag to the compiler.
3. Run the TypeScript compiler.
To recompile your code automatically as you make changes, pass the `--watch, -w` flag to the compiler.
<!--pytest.mark.skip-->
```sh ```sh
tsc -w -p tsc --watch
``` ```
## Install dependencies ## Install dependencies

View File

@ -15,15 +15,11 @@ aliases:
Enabling TLS encrypts the communication between clients and the InfluxDB server. Enabling TLS encrypts the communication between clients and the InfluxDB server.
When configured with a signed certificate, TLS also allows clients to verify the authenticity of the InfluxDB server. When configured with a signed certificate, TLS also allows clients to verify the authenticity of the InfluxDB server.
To set up TLS over HTTPS, do the following: Follow steps to set up TLS over HTTPS, connect to your server, and troubleshoot problems:
- [Obtain requirements](#obtain-requirements) - [Obtain requirements](#obtain-requirements)
- [Single domain certificates signed by a Certificate Authority (CA)](#single-domain-certificates-signed-by-a-certificate-authority-ca)
- [Wildcard certificates signed by a Certificate Authority](#wildcard-certificates-signed-by-a-certificate-authority)
- [Self-signed certificates](#self-signed-certificates)
- [Configure InfluxDB to use TLS](#configure-influxdb-to-use-tls) - [Configure InfluxDB to use TLS](#configure-influxdb-to-use-tls)
- [Connect Telegraf to a secured InfluxDB instance](#connect-telegraf-to-a-secured-influxdb-instance) - [Connect Telegraf to a secured InfluxDB instance](#connect-telegraf-to-a-secured-influxdb-instance)
- [Example Telegraf configuration](#example-telegraf-configuration)
- [Troubleshoot TLS](#troubleshoot-tls) - [Troubleshoot TLS](#troubleshoot-tls)
{{% warn %}} {{% warn %}}
@ -59,12 +55,19 @@ You can generate a self-signed certificate on your own machine.
## Configure InfluxDB to use TLS ## Configure InfluxDB to use TLS
1. [Download or generate certificate files](#1-download-or-generate-certificate-files) 1. [Download or generate certificate files](download-or-generate-certificate-files)
2. [Set certificate file permissions](#2-set-certificate-file-permissions) 2. [Set certificate file permissions](#set-certificate-file-permissions)
3. [Run `influxd` with TLS flags](#3-run-influxd-with-tls-flags) 3. [Run `influxd` with TLS flags](#run-influxd-with-tls-flags)
4. [Verify TLS connection](#4-verify-tls-connection) 4. [Verify TLS connection](#verify-tls-connection)
### 1. Download or generate certificate files ### Download or generate certificate files
Choose one of the following:
- [Download and install CA certificate files](#download-and-install-ca-certificate-files)
- [Generate self-signed certificates](#generate-and-self-signed-certificates)
#### Download and install CA certificate files
If using a [certificate signed by a CA](#single-domain-certificates-signed-by-a-certificate-authority-ca), follow their instructions to download and install the certificate files. If using a [certificate signed by a CA](#single-domain-certificates-signed-by-a-certificate-authority-ca), follow their instructions to download and install the certificate files.
Note the location where certificate files are installed, and then continue to [set certificate file permissions](#set-certificate-file-permissions). Note the location where certificate files are installed, and then continue to [set certificate file permissions](#set-certificate-file-permissions).
@ -78,10 +81,16 @@ For example, if [Let's Encrypt](https://letsencrypt.org/) is your CA and you use
`/etc/letsencrypt/live/$domain`. For more information about Let's Encrypt certificate paths, see [Where are my certificates?](https://eff-certbot.readthedocs.io/en/latest/using.html#where-are-my-certificates) `/etc/letsencrypt/live/$domain`. For more information about Let's Encrypt certificate paths, see [Where are my certificates?](https://eff-certbot.readthedocs.io/en/latest/using.html#where-are-my-certificates)
{{% /note %}} {{% /note %}}
#### Generate self-signed certificates
To generate [self-signed certificates](#self-signed-certificates), use the `openssl` command on your system. To generate [self-signed certificates](#self-signed-certificates), use the `openssl` command on your system.
The following example shows how to generate certificates located in `/etc/ssl` The following example:
on Unix-like systems and Windows.
1. Configures [Subject Alternative Name](https://docs.openssl.org/master/man5/x509v3_config/#subject-alternative-name) (`subjectAltName`, SAN)
for your TLS certificate.
2. Generates certificates located in `/etc/ssl` for Unix-like and Windows systems.
_For example purposes only, the code creates an unencrypted private key._ _For example purposes only, the code creates an unencrypted private key._
{{% warn %}} {{% warn %}}
@ -116,6 +125,7 @@ cat > san.cnf <<EOF
[alt_names] [alt_names]
DNS.1 = example.com DNS.1 = example.com
DNS.2 = www.example.com DNS.2 = www.example.com
IP.1 = 10.1.2.3
EOF EOF
# Generate a private key and certificate signing request (CSR) # Generate a private key and certificate signing request (CSR)
@ -138,11 +148,22 @@ rm san.cnf
Replace the following with your own values: Replace the following with your own values:
- {{% code-placeholder-key %}}`NUMBER_OF_DAYS`{{% /code-placeholder-key %}}: the number of days for files to remain valid - {{% code-placeholder-key %}}`NUMBER_OF_DAYS`{{% /code-placeholder-key %}}:
- {{% code-placeholder-key %}}`/etc/ssl`{{% /code-placeholder-key %}}: the SSL configurations directory for your system the number of days for files to remain valid
- Configuration field values in `req_distinguished_name` and `alt_names` - {{% code-placeholder-key %}}`/etc/ssl`{{% /code-placeholder-key %}}: the SSL
configurations directory for your system
- Configuration field values in `req_distinguished_name` and `alt_names`--for
example, in the `[alt_names]` section, set the domain names and IP addresses
you use to access your InfluxDB server.
### 2. Set certificate file permissions The output is a private key and a CSR that includes the
specified domain names and IP address in the
[Subject Alternative Name](https://docs.openssl.org/master/man5/x509v3_config/#subject-alternative-name)
SAN extension.
The resulting certificate is valid for `example.com`, `www.example.com`, and
the IP address `10.1.2.3`.
### Set certificate file permissions
The user running InfluxDB must have read permissions on the TLS certificate files. The user running InfluxDB must have read permissions on the TLS certificate files.
@ -150,16 +171,18 @@ The user running InfluxDB must have read permissions on the TLS certificate file
Ultimately, make sure all users running InfluxDB have read permissions for the TLS certificate. Ultimately, make sure all users running InfluxDB have read permissions for the TLS certificate.
{{% /note %}} {{% /note %}}
In your terminal, run `chmod` to set permissions on your installed certificate files--for example: In your terminal, run `chown` to set the owner and `chmod` to set permissions on your installed certificate files.
The following example shows how to set read permissions on the self-signed
certificate and key files generated in [the preceding step](#1-download-or-generate-certificate-files): The following example shows how to transfer the ownership to the user and group `influxdb` and set read permissions on the self-signed
certificate and key files generated in [the preceding step](#download-or-generate-certificate-files):
```bash ```bash
sudo chown influxdb: /etc/ssl/influxdb-selfsigned.crt /etc/ssl/influxdb-selfsigned.key
sudo chmod 644 /etc/ssl/influxdb-selfsigned.crt sudo chmod 644 /etc/ssl/influxdb-selfsigned.crt
sudo chmod 600 /etc/ssl/influxdb-selfsigned.key sudo chmod 600 /etc/ssl/influxdb-selfsigned.key
``` ```
### 3. Verify certificate and key files ### Verify certificate and key files
To ensure that the certificate and key files are correct and match each other, To ensure that the certificate and key files are correct and match each other,
enter the following commands in your terminal: enter the following commands in your terminal:
@ -169,7 +192,7 @@ openssl x509 -noout -modulus -in /etc/ssl/influxdb-selfsigned.crt | openssl md5
openssl rsa -noout -modulus -in /etc/ssl/influxdb-selfsigned.key | openssl md5 openssl rsa -noout -modulus -in /etc/ssl/influxdb-selfsigned.key | openssl md5
``` ```
### 4. Run `influxd` with TLS flags ### Run `influxd` with TLS flags
To start InfluxDB with TLS command line flags, enter the following command with To start InfluxDB with TLS command line flags, enter the following command with
paths to your key and certificate files: paths to your key and certificate files:
@ -182,7 +205,7 @@ influxd \
If successful, InfluxDB runs in the background and logs to `influxdb.log`. If successful, InfluxDB runs in the background and logs to `influxdb.log`.
### 4. Verify TLS connection ### Verify TLS connection
To test your certificates, access InfluxDB using the `https://` protocol--for example, using cURL: To test your certificates, access InfluxDB using the `https://` protocol--for example, using cURL:
@ -313,6 +336,16 @@ Ensure that the TLS configuration in InfluxDB is correct.
Check the paths to the certificate and key files in the InfluxDB configuration Check the paths to the certificate and key files in the InfluxDB configuration
or command line flags. or command line flags.
#### Example error: cannot validate certificate for <IP_ADDRESS>
```log
Sep 25 14:00:02 host influxd-systemd-start.sh[11782]: ts=2024-09-25T12:00:02.055617Z lvl=error msg="Unable to gather" log_id=0rr6jG30000 service=scraper scraper-name="new target" error="Get \"https://10.1.2.3:8086/metrics\": tls: failed to verify certificate: x509: cannot validate certificate for 10.1.2.3 because it doesn't contain any IP SANs"
Sep 25 14:00:02 host influxd-systemd-start.sh[11782]: ts=2024-09-25T12:00:02.055397Z lvl=info msg="http: TLS handshake error from 10.1.2.3:46380: remote error: tls: bad certificate" log_id=0rr6jG30000 service=http
```
If you access your InfluxDB server via IP address, then include the address in
your subjectAltName configuration.
### Update OpenSSL and InfluxDB ### Update OpenSSL and InfluxDB
Ensure that you are using the latest versions of OpenSSL and InfluxDB, as Ensure that you are using the latest versions of OpenSSL and InfluxDB, as

View File

@ -21,31 +21,47 @@ aliases:
2. Ensure that InfluxDB is running and you can connect to it. 2. Ensure that InfluxDB is running and you can connect to it.
For information about what URL to use to connect to InfluxDB OSS or InfluxDB Cloud, see [InfluxDB URLs](/influxdb/v2/reference/urls/). For information about what URL to use to connect to InfluxDB OSS or InfluxDB Cloud, see [InfluxDB URLs](/influxdb/v2/reference/urls/).
3. Start a new Node.js project. 3. Create a directory for your new Node.js project, and then change to the
The `npm` package manager is included with Node.js. directory--for example, enter the following command into your terminal:
```sh ```sh
npm init -y influx-node-app mkdir influx-node-app && cd influx-node-app
```
4. Enter the following command to generate an npm package for your project.
- `npm`: the package manager included with Node.js
- `-y`: uses defaults for the package and bypasses prompts
```sh
npm init -y
``` ```
## Install TypeScript ## Install TypeScript
Many of the client library examples use [TypeScript](https://www.typescriptlang.org/). Follow these steps to initialize the TypeScript project. Many of the client library examples use [TypeScript](https://www.typescriptlang.org/).
Follow these steps to initialize the TypeScript project:
1. Install TypeScript and type definitions for Node.js. 1. Install TypeScript and type definitions for Node.js.
```sh ```sh
npm i -g typescript && npm i --save-dev @types/node npm i -g typescript && npm i --save-dev @types/node
``` ```
2. Create a TypeScript configuration with default values.
2. Enter the following command to create a TypeScript configuration
(`tsconfig.json`) with default values:
```sh ```sh
tsc --init tsc --init
``` ```
3. Run the TypeScript compiler. To recompile your code automatically as you make changes, pass the `watch` flag to the compiler.
3. Run the TypeScript compiler.
To recompile your code automatically as you make changes, pass the `--watch, -w` flag to the compiler.
<!--pytest.mark.skip-->
```sh ```sh
tsc -w -p tsc --watch
``` ```
## Install dependencies ## Install dependencies
@ -76,7 +92,7 @@ The client examples include an [`env`](https://github.com/influxdata/influxdb-cl
The examples use these properties to interact with the InfluxDB API. The examples use these properties to interact with the InfluxDB API.
{{% /note %}} {{% /note %}}
1. Set environment variables or update `env.mjs` with your InfluxDB [bucket](/influxdb/v2/admin/buckets/), [organization](/influxdb/v2/admin/organizations/), [token](/influxdb/v2/admin/tokens/), and [url](/influxdb/v2/reference/urls/). 1. Set environment variables or update `env.mjs` with your InfluxDB [bucket](/influxdb/v2/admin/buckets/), [organization](/influxdb/v2/admin/organizations/), [token](/influxdb/v2/admin/tokens/), and [URL](/influxdb/v2/reference/urls/).
```sh ```sh
export INFLUX_URL=http://localhost:8086 export INFLUX_URL=http://localhost:8086
@ -89,7 +105,9 @@ The examples use these properties to interact with the InfluxDB API.
- *`YOUR_ORG`*: InfluxDB organization ID - *`YOUR_ORG`*: InfluxDB organization ID
- *`YOUR_BUCKET`*: InfluxDB bucket name - *`YOUR_BUCKET`*: InfluxDB bucket name
2. Run an example script. 2. Run one of the [`influxdb-client-js` example scripts](https://github.com/influxdata/influxdb-client-js/tree/master/examples/).
<!--pytest.mark.skip-->
```sh ```sh
query.ts query.ts

View File

@ -12,7 +12,7 @@ influxdb/v2/tags: [influxql, query, write]
related: related:
- /influxdb/v2/query-data/influxql - /influxdb/v2/query-data/influxql
- /influxdb/v2/install/upgrade/v1-to-v2/ - /influxdb/v2/install/upgrade/v1-to-v2/
alias: aliases:
- /influxdb/v2/reference/api/influxdb-1x/ - /influxdb/v2/reference/api/influxdb-1x/
--- ---

View File

@ -12,6 +12,9 @@ weight: 3
influxdb/v2/tags: [api] influxdb/v2/tags: [api]
aliases: aliases:
- /influxdb/v2/concepts/api/ - /influxdb/v2/concepts/api/
related:
- /influxdb/v2/api-guide/api_intro/
- /influxdb/v2/api-guide/influxdb-1x/
--- ---
The InfluxDB HTTP API provides a programmatic interface for interactions such as writing and querying data, and managing resources in {{% product-name %}}. The InfluxDB HTTP API provides a programmatic interface for interactions such as writing and querying data, and managing resources in {{% product-name %}}.
@ -38,6 +41,6 @@ and visit the `/docs` endpoint in a browser ([localhost:8086/docs](http://localh
<a class="btn" href="/influxdb/v2/api/v1-compatibility/">InfluxDB v1 API for {{% product-name %}}</a> <a class="btn" href="/influxdb/v2/api/v1-compatibility/">InfluxDB v1 API for {{% product-name %}}</a>
The InfluxDB HTTP API includes [InfluxDB v1 compatibility endpoints](/influxdb/v2/reference/api/influxdb-1x/) The InfluxDB HTTP API includes InfluxDB v1 compatibility endpoints
that work with InfluxDB 1.x client libraries and third-party integrations like that work with InfluxDB 1.x client libraries and third-party integrations like
[Grafana](https://grafana.com) and others. [Grafana](https://grafana.com) and others.