设置 InfluxDB
在您开始本教程时,请做以下几点,以确保您所需的一切都已就位。
运行初始设置过程。
在你 安装并启动 InfluxDB 之后,运行初始设置过程以创建以下内容:
- 一个 organization,使用您提供的名称。
- 一个 bucket,其名称为您提供的名称。
- 一个管理员 authorization 具有以下属性:
- 您提供的用户名和密码。
- 一个 API Operator token。
- 对 InfluxDB 实例中所有资源的读写权限。
您可以使用InfluxDB UI、
influxCLI或HTTP API来运行设置过程。要运行一个交互式设置,以提示您提供所需的信息,使用 InfluxDB 用户界面 (UI) 或
influx命令行界面 (CLI)。要自动化设置——例如,使用你编写的脚本——请使用
influx命令行接口 (CLI) 或/api/v2/setupInfluxDB API 端点。
使用Docker自动设置
如果您使用 Docker 进行初始设置选项 安装了 InfluxDB,则您已经完成了设置过程。
- With InfluxDB running, visit http://localhost:8086.
- Click Get Started
设置您的初始用户
- Enter a Username for your initial user.
- Enter a Password and Confirm Password for your user.
- Enter your initial Organization Name.
- Enter your initial Bucket Name.
- Click Continue.
- Copy the provided operator API token and store it for safe keeping.
我们建议使用密码管理器或秘密存储库来安全地存储敏感令牌。
您的InfluxDB实例现在已初始化。
下载并安装
influxCLI,它提供了一种通过命令行与 InfluxDB 交互的简单方法。有关详细的安装和设置说明,请参见 使用 influx CLI。使用
influx setupCLI 命令来初始化您的 InfluxDB 实例–选择以下之一:通过提示进行设置。 要进行交互式设置,请输入以下命令:
influx setup该命令通过提示输入用户名、密码、组织、存储桶和保留期限来引导您完成初始设置过程。
非交互式设置。要非交互式运行设置(例如,在您的自动化脚本中),请传递命令行标志作为初始化值,并传递
-f, --force标志以跳过最终确认提示—例如,输入以下命令:influx setup \ --username USERNAME \ --password PASSWORD \ --token TOKEN \ --org ORG_NAME \ --bucket BUCKET_NAME \ --force替换以下内容:
USERNAME: A name for your initial admin userPASSWORD: A password for your initial admin userTOKEN: A string value to set for the operator token. If you don’t include this flag, InfluxDB generates a token for you and stores it in aninfluxCLI connection configuration.ORG_NAME: A name for your initial organizationBUCKET_NAME: A name for your initial bucket
InfluxDB 使用以下内容初始化: Operator token, user, organization, 和 bucket。 输出类似于以下内容:
User Organization Bucket USERNAME ORGANIZATION_NAME BUCKET_NAMEInfluxDB将这些值存储在一个
default连接配置中,该配置提供您的 InfluxDB URL、组织和API令牌给influxCLI命令。 有关连接配置的信息,请参见influx config。
向以下HTTP API端点发送请求:
POST http://localhost:8086/api/v2/setup
该
POST /api/v2/setupAPI 端点不需要身份验证在请求体中,指定初始用户名、密码、组织、桶和可选的操作员令牌,例如:
curl http://localhost:8090/api/v2/setup \ --data '{ "username": "USERNAME", "password": "PASSWORD", "token": "TOKEN", "bucket": "BUCKET_NAME", "org": "ORG_NAME" }'替换以下内容:
USERNAME: 您初始管理员的名称 userPASSWORD: 您初始管理员的密码 userORG_NAME: 您初始组织的名称BUCKET_NAME: 您初始桶的名称TOKEN: 设置给 operator token 的字符串值。如果你不包含这个标志,InfluxDB 会为你生成一个令牌。
响应体包含创建的资源,包括Operator token及其权限列表。
我们建议使用密码管理器或秘密存储库来安全地存储敏感令牌。
有关更多选项和详细信息,请参见
POST /api/v2/setupAPI端点文档。推荐: 创建一个全访问API令牌。
在InfluxDB 初始设置过程中,您创建了一个管理员用户和操作员令牌,他们拥有管理您 InfluxDB 实例中所有内容的权限。
虽然您可以使用您的操作员令牌与InfluxDB交互,但我们建议创建一个全访问令牌,该令牌的作用域为一个组织,然后使用此令牌来管理InfluxDB。使用InfluxDB UI、
influxCLI或InfluxDB API来创建全访问令牌。访问 localhost:8086 在浏览器中登录并访问 InfluxDB 用户界面。
使用左侧导航栏导航到 加载数据 > API 令牌。
点击 + 生成API令牌 并选择 全访问API令牌。
输入API令牌的描述,然后点击 保存。
复制生成的令牌并将其安全保存。
如果您还没有,请下载、安装并配置
influxCLI。使用
influx auth create命令创建一个所有访问权限的令牌。提供以下内容:
--all-access标志--host标志与您的 InfluxDB 主机 URL-o, --org或--org-id标志与您的 InfluxDB 组织名称或 ID-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
请在您的请求中包含以下内容:
- 头部:
- 授权: 令牌
- 内容类型: application/json
- 授权: 令牌
- 请求体: 具有以下属性的 JSON 体:
- 状态:
"active" - 描述: API 令牌描述
- orgID: InfluxDB 组织 ID
- 权限: 对象数组,其中每个对象表示对 InfluxDB 资源类型或特定资源的权限。每个权限包含以下属性:
- 动作: “read” 或 “write”
- 资源: JSON 对象,表示授予权限的 InfluxDB 资源。每个资源至少包含以下属性:
- orgID: InfluxDB 组织 ID
- 类型: 资源类型。
有关 InfluxDB 资源类型的信息,请使用
/api/v2/resources端点.
- 状态:
以下示例使用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: 令牌状态
- 描述: 令牌描述
- orgID: 与该令牌相关联的InfluxDB组织ID
- org:与该令牌相关联的InfluxDB组织名称
- userID: 与令牌关联的用户ID
- 用户: 令牌关联的用户名
- permissions: 组织资源的权限列表
复制生成的
token并安全存储。我们建议使用密码管理器或秘密存储库来安全地存储敏感令牌。
配置认证凭据.
在您阅读本教程时,与 InfluxDB 2.7 的交互需要您的 InfluxDB 主机、组织名称或ID,以及您的 API令牌。提供凭据的方式取决于您使用哪个客户端与 InfluxDB 进行交互。
在配置你的令牌时,如果你 创建了一个全访问令牌,请使用该令牌与InfluxDB进行交互。否则,请使用你在设置过程中创建的操作员令牌。
在通过InfluxDB UI 管理 InfluxDB 时,身份验证凭据会自动提供,这些凭据与您登录的用户相关联。
有三种方式可以向
influxCLI 提供身份验证凭据:本快速入门教程中的所有
influxCLI 示例假设您的 InfluxDB 主机、组织 和 令牌 是通过 活动influxCLI 配置 或环境变量提供的。使用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>替换以下内容:
: 您的组织名称: 您的 organization ID: 您的 全访问令牌 或操作员令牌
可选: 创建一个存储桶。
在初始设置过程中,你创建了一个桶。你可以使用那个桶,也可以专门为这个入门教程创建一个桶。本教程中的所有示例都假定有一个名为get-started的桶。
使用InfluxDB UI、
influxCLI或InfluxDB API创建一个新桶。访问 localhost:8086 在浏览器中登录并访问 InfluxDB 用户界面。
使用左侧导航栏导航到 加载数据 > 桶。
点击 + 创建存储桶.
提供一个桶名称(get-started)并选择 从不 来创建一个具有无限 保留期限 的桶。
点击 创建.
如果您还没有,请下载、安装并配置
influxCLI。使用
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
请在您的请求中包含以下内容:
- 头部:
- 授权: 令牌
INFLUX_TOKEN - 内容类型:
application/json
- 授权: 令牌
- 请求体: 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 } ] }'