设置 InfluxDB
当您开始学习本教程时,请执行以下操作以确保您需要的一切都已就绪。
运行初始设置流程。
在您安装并启动 InfluxDB后,运行初始设置流程以创建以下内容
- 一个组织,名称为您提供的名称。
- 一个存储桶,名称为您提供的名称。
- 一个管理员授权,具有以下属性
- 您提供的用户名和密码。
- 一个 API Operator 令牌。
- 对 InfluxDB 实例中所有资源的读写权限。
您可以使用 InfluxDB UI、
influx
CLI 或 HTTP API 来运行设置流程。要运行交互式设置,提示您输入所需信息,请使用 InfluxDB 用户界面 (UI) 或
influx
命令行界面 (CLI)。要自动化设置(例如,使用您编写的脚本),请使用
influx
命令行界面 (CLI) 或/api/v2/setup
InfluxDB API 端点。
使用 Docker 自动化设置
如果您使用带有初始设置选项的 Docker安装了 InfluxDB,那么您已经完成了设置流程。
- 在 InfluxDB 运行的情况下,访问 http://localhost:8086。
- 点击 开始使用
设置您的初始用户
- 为您的初始用户输入用户名。
- 为您的用户输入密码和确认密码。
- 输入您的初始组织名称。
- 输入您的初始存储桶名称。
- 点击 继续。
- 复制提供的 operator API 令牌 并妥善保管。
我们建议使用密码管理器或密钥存储安全地存储敏感令牌。
您的 InfluxDB 实例现已初始化。
下载并安装
influx
CLI,它提供了一种从命令行与 InfluxDB 交互的简单方法。有关详细的安装和设置说明,请参阅使用 influx CLI。使用
influx setup
CLI 命令来初始化您的 InfluxDB 实例——选择以下选项之一使用提示设置。要交互式设置,请输入以下命令
influx setup
该命令将引导您完成初始设置流程,提示您输入用户名、密码、组织、存储桶和保留期。
非交互式设置。要非交互式地运行设置(例如,在您的自动化脚本中),请传递命令行标志以获取初始化值,并传递
-f, --force
标志以绕过最终确认提示——例如,输入以下命令influx setup \ --username USERNAME \ --password PASSWORD \ --token TOKEN \ --org ORG_NAME \ --bucket BUCKET_NAME \ --force
替换以下内容
USERNAME
:您的初始管理员用户的名称PASSWORD
:您的初始管理员用户的密码TOKEN
:为operator 令牌设置的字符串值。如果您不包含此标志,InfluxDB 会为您生成令牌并将其存储在influx
CLI 连接配置中。ORG_NAME
:您的初始组织的名称BUCKET_NAME
:您的初始存储桶的名称
InfluxDB 使用 Operator 令牌、用户、组织和存储桶初始化。输出类似于以下内容
User Organization Bucket USERNAME ORGANIZATION_NAME BUCKET_NAME
InfluxDB 将这些值存储在
default
连接配置中,该配置为influx
CLI 命令提供您的 InfluxDB URL、组织和 API 令牌。有关连接配置的信息,请参阅influx config
。
向以下 HTTP API 端点发送请求
POST http://localhost:8086/api/v2/setup
POST /api/v2/setup
API 端点不需要身份验证在请求正文中,指定初始用户名、密码、组织、存储桶和可选的 Operator 令牌的值——例如
curl http://localhost:8090/api/v2/setup \ --data '{ "username": "
USERNAME", "password": "PASSWORD", "token": "TOKEN", "bucket": "BUCKET_NAME", "org": "ORG_NAME" }'替换以下内容
USERNAME
:您的初始管理员用户的名称PASSWORD
:您的初始管理员用户的密码ORG_NAME
:您的初始组织的名称BUCKET_NAME
:您的初始存储桶的名称TOKEN
:为operator 令牌设置的字符串值。如果您不包含此标志,InfluxDB 会为您生成令牌。
响应正文包含已创建的资源,包括 Operator 令牌 及其权限列表。
我们建议使用密码管理器或密钥存储安全地存储敏感令牌。
有关更多选项和详细信息,请参阅
POST /api/v2/setup
API 端点文档。推荐: 创建完全访问 API 令牌。
在InfluxDB 初始设置流程期间,您创建了一个管理员用户和一个Operator 令牌,它们具有管理 InfluxDB 实例中所有内容的权限。
虽然您可以使用 Operator 令牌与 InfluxDB 交互,但我们建议创建一个作用域限定为组织的完全访问令牌,然后使用此令牌来管理 InfluxDB。使用 InfluxDB UI、
influx
CLI 或 InfluxDB API 来创建完全访问令牌。在浏览器中访问 localhost:8086
以登录并访问 InfluxDB UI。
使用左侧导航栏导航到 加载数据 > API 令牌。
点击 + 生成 API 令牌 并选择 完全访问 API 令牌。
输入 API 令牌的描述,然后点击 保存。
复制生成的令牌并妥善保管。
如果您尚未这样做,请下载、安装和配置
influx
CLI。使用
influx auth create
命令来创建完全访问令牌。提供以下内容
--all-access
标志- 带有您的 InfluxDB 主机 URL 的
--host
标志 - 带有您的 InfluxDB 组织名称或 ID 的
-o, --org
或--org-id
标志 - 带有您的 Operator 令牌的
-t, --token
标志
influx auth create \ --all-access \ --host http://localhost:8086 \ --org <YOUR_INFLUXDB_ORG_NAME> \ --token <YOUR_INFLUXDB_OPERATOR_TOKEN>
复制生成的令牌并妥善保管。
使用
POST
请求方法向 InfluxDB API/api/v2/authorizations
端点发送请求。POST http://localhost:8086/api/v2/authorizations
在您的请求中包含以下内容
- 标头:
- Authorization: Token <INFLUX_OPERATOR_TOKEN>
- Content-Type: application/json
- 请求正文:具有以下属性的 JSON 正文
- status:
"active"
- description: API 令牌描述
- orgID: InfluxDB 组织 ID
- permissions:对象数组,其中每个对象代表 InfluxDB 资源类型或特定资源的权限。每个权限都包含以下属性
- action: “read” 或 “write”
- resource:JSON 对象,表示要授予权限的 InfluxDB 资源。每个资源至少包含以下属性
- orgID: InfluxDB 组织 ID
- type:资源类型。有关 InfluxDB 资源类型的信息,请使用
/api/v2/resources
端点。
- status:
以下示例使用 cURL 和 InfluxDB API 来生成完全访问令牌
export INFLUX_HOST=http://localhost:8086 export INFLUX_ORG_ID=<YOUR_INFLUXDB_ORG_ID> export INFLUX_TOKEN=<YOUR_INFLUXDB_OPERATOR_TOKEN> curl --request POST \ "$INFLUX_HOST/api/v2/authorizations" \ --header "Authorization: Token $INFLUX_TOKEN" \ --header "Content-Type: text/plain; charset=utf-8" \ --data '{ "status": "active", "description": "All access token for get started tutorial", "orgID": "'"$INFLUX_ORG_ID"'", "permissions": [ {"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "authorizations"}}, {"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "authorizations"}}, {"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "buckets"}}, {"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "buckets"}}, {"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "dashboards"}}, {"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "dashboards"}}, {"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "orgs"}}, {"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "orgs"}}, {"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "sources"}}, {"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "sources"}}, {"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "tasks"}}, {"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "tasks"}}, {"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "telegrafs"}}, {"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "telegrafs"}}, {"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "users"}}, {"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "users"}}, {"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "variables"}}, {"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "variables"}}, {"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "scrapers"}}, {"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "scrapers"}}, {"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "secrets"}}, {"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "secrets"}}, {"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "labels"}}, {"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "labels"}}, {"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "views"}}, {"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "views"}}, {"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "documents"}}, {"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "documents"}}, {"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "notificationRules"}}, {"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "notificationRules"}}, {"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "notificationEndpoints"}}, {"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "notificationEndpoints"}}, {"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "checks"}}, {"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "checks"}}, {"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "dbrp"}}, {"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "dbrp"}}, {"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "notebooks"}}, {"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "notebooks"}}, {"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "annotations"}}, {"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "annotations"}}, {"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "remotes"}}, {"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "remotes"}}, {"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "replications"}}, {"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "replications"}} ] } '
响应正文包含一个具有以下属性的 JSON 对象
- id: API 令牌 ID
- token: API 令牌 (重要)
- status: 令牌状态
- description: 令牌描述
- orgID: 令牌关联的 InfluxDB 组织 ID
- org: 令牌关联的 InfluxDB 组织名称
- userID: 令牌关联的用户 ID
- user: 令牌关联的用户名
- permissions:组织资源的权限列表
复制生成的
token
并妥善保管。我们建议使用密码管理器或密钥存储安全地存储敏感令牌。
配置身份验证凭据。
当您学习本教程时,与 InfluxDB 2.7 的交互需要您的 InfluxDB 主机、组织名称或 ID 和您的 API 令牌。您提供凭据的方式取决于您用于与 InfluxDB 交互的客户端。
在配置令牌时,如果您创建了完全访问令牌,请使用该令牌与 InfluxDB 交互。否则,请使用您在设置过程中创建的 Operator 令牌。
当通过 InfluxDB UI 管理 InfluxDB 时,身份验证凭据将使用与您登录的用户关联的凭据自动提供。
有三种方法可以为
influx
CLI 提供身份验证凭据本入门教程中的所有
influx
CLI 示例都假定您的 InfluxDB 主机、组织和 令牌 由活动的influx
CLI 配置或环境变量提供。当使用 InfluxDB API 时,请通过以下方式提供所需的连接凭据
InfluxDB 主机:要向其发送 HTTP(S) 请求的域名和端口。
InfluxDB API 令牌:包含一个
Authorization
标头,该标头使用Bearer
或Token
方案以及您的 InfluxDB API 令牌——例如Authorization: Bearer 0xxx0o0XxXxx00Xxxx000xXXxoo0==
InfluxDB 组织名称或 ID:根据使用的 API 端点,将其作为 URL 路径、查询字符串或请求正文的一部分传递。
本教程中的所有 API 示例都使用来自命令行的 cURL。要为示例 cURL 命令提供所有必要的凭据,请在您的命令行会话中设置以下环境变量。
export INFLUX_HOST=http://localhost:8086 export INFLUX_ORG=
<ORG_NAME>export INFLUX_ORG_ID=<ORG_ID>export INFLUX_TOKEN=<API_TOKEN>替换以下内容
可选: 创建存储桶。
在初始设置流程中,您创建了一个存储桶。您可以使用该存储桶或专门为本入门教程创建一个存储桶。本教程中的所有示例都假定存储桶名为 get-started。
使用 InfluxDB UI、
influx
CLI 或 InfluxDB API 来创建一个新的存储桶。在浏览器中访问 localhost:8086
以登录并访问 InfluxDB UI。
使用左侧导航栏导航到 加载数据 > 存储桶。
点击 + 创建存储桶。
提供存储桶名称 (get-started) 并选择 永不 以创建一个具有无限保留期的存储桶。
点击 创建。
如果您尚未这样做,请下载、安装和配置
influx
CLI。使用
influx bucket create
命令 创建一个存储桶。提供以下内容:
- 带有存储桶名称的
-n, --name
标志。 - 连接和身份验证凭据
influx bucket create --name get-started
- 带有存储桶名称的
要使用 InfluxDB HTTP API 创建存储桶,请使用
POST
请求方法向 InfluxDB API/api/v2/buckets
端点发送请求。POST http://localhost:8086/api/v2/buckets
在您的请求中包含以下内容
- 标头:
- 授权: Token
INFLUX_TOKEN
- Content-Type:
application/json
- 授权: Token
- 请求体: 具有以下属性的 JSON 对象
- org: InfluxDB 组织名称
- name: 存储桶名称
- retentionRules: 定义存储桶保留期的保留规则对象列表。每个保留规则对象都具有以下属性
- type:
"expire"
- everySeconds: 保留期持续时间(秒)。
0
表示保留期是无限的。
- type:
以下示例展示了如何使用 cURL 和 InfluxDB API 创建存储桶
export INFLUX_HOST=http://localhost:8086 export INFLUX_ORG_ID=<YOUR_INFLUXDB_ORG_ID> export INFLUX_TOKEN=<YOUR_INFLUXDB_API_TOKEN> curl --request POST \ "$INFLUX_HOST/api/v2/buckets" \ --header "Authorization: Token $INFLUX_TOKEN" \ --header "Content-Type: application/json" \ --data '{ "orgID": "'"$INFLUX_ORG_ID"'", "name": "get-started", "retentionRules": [ { "type": "expire", "everySeconds": 0 } ] }'
此页面是否对您有帮助?
感谢您的反馈!