文档文档

设置 InfluxDB

当您开始学习本教程时,请执行以下操作以确保您需要的一切都已就绪。

  1. 运行初始设置流程

    在您安装并启动 InfluxDB后,运行初始设置流程以创建以下内容

    • 一个组织,名称为您提供的名称。
    • 一个存储桶,名称为您提供的名称。
    • 一个管理员授权,具有以下属性
      • 您提供的用户名和密码。
      • 一个 API Operator 令牌
      • 对 InfluxDB 实例中所有资源的读写权限。

    您可以使用 InfluxDB UI、influx CLI 或 HTTP API 来运行设置流程。

    • 要运行交互式设置,提示您输入所需信息,请使用 InfluxDB 用户界面 (UI) 或 influx 命令行界面 (CLI)。

    • 要自动化设置(例如,使用您编写的脚本),请使用 influx 命令行界面 (CLI) 或 /api/v2/setup InfluxDB API 端点。

    使用 Docker 自动化设置

    如果您使用带有初始设置选项的 Docker安装了 InfluxDB,那么您已经完成了设置流程。

    1. 在 InfluxDB 运行的情况下,访问 http://localhost:8086
    2. 点击 开始使用

    设置您的初始用户

    1. 为您的初始用户输入用户名
    2. 为您的用户输入密码确认密码
    3. 输入您的初始组织名称
    4. 输入您的初始存储桶名称
    5. 点击 继续
    6. 复制提供的 operator API 令牌 并妥善保管。

    我们建议使用密码管理器或密钥存储安全地存储敏感令牌。

    您的 InfluxDB 实例现已初始化。

    1. 下载并安装 influx CLI,它提供了一种从命令行与 InfluxDB 交互的简单方法。有关详细的安装和设置说明,请参阅使用 influx CLI

    2. 使用 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 端点文档

  2. 推荐: 创建完全访问 API 令牌。

    InfluxDB 初始设置流程期间,您创建了一个管理员用户和一个Operator 令牌,它们具有管理 InfluxDB 实例中所有内容的权限。

    虽然您可以使用 Operator 令牌与 InfluxDB 交互,但我们建议创建一个作用域限定为组织的完全访问令牌,然后使用此令牌来管理 InfluxDB。使用 InfluxDB UIinflux CLIInfluxDB API 来创建完全访问令牌。

    1. 在浏览器中访问 localhost:8086

      以登录并访问 InfluxDB UI。

    2. 使用左侧导航栏导航到 加载数据 > API 令牌

    3. 点击 + 生成 API 令牌 并选择 完全访问 API 令牌

    4. 输入 API 令牌的描述,然后点击 保存

    5. 复制生成的令牌并妥善保管。

    1. 如果您尚未这样做,请下载、安装和配置 influx CLI

    2. 使用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>
      
    3. 复制生成的令牌并妥善保管。

    使用 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 资源。每个资源至少包含以下属性

    以下示例使用 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 并妥善保管。

    我们建议使用密码管理器或密钥存储安全地存储敏感令牌。

  3. 配置身份验证凭据

    当您学习本教程时,与 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 标头,该标头使用 BearerToken 方案以及您的 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>

    替换以下内容

  4. 可选: 创建存储桶

    初始设置流程中,您创建了一个存储桶。您可以使用该存储桶或专门为本入门教程创建一个存储桶。本教程中的所有示例都假定存储桶名为 get-started

    使用 InfluxDB UIinflux CLIInfluxDB API 来创建一个新的存储桶。

    1. 在浏览器中访问 localhost:8086

      以登录并访问 InfluxDB UI。

    2. 使用左侧导航栏导航到 加载数据 > 存储桶

    3. 点击 + 创建存储桶

    4. 提供存储桶名称 (get-started) 并选择 永不 以创建一个具有无限保留期的存储桶。

    5. 点击 创建

    1. 如果您尚未这样做,请下载、安装和配置 influx CLI

    2. 使用 influx bucket create 命令 创建一个存储桶。

      提供以下内容:

      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
    • 请求体: 具有以下属性的 JSON 对象
      • org: InfluxDB 组织名称
      • name: 存储桶名称
      • retentionRules: 定义存储桶保留期的保留规则对象列表。每个保留规则对象都具有以下属性
        • type: "expire"
        • everySeconds: 保留期持续时间(秒)。0 表示保留期是无限的。

    以下示例展示了如何使用 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
          }
        ]
      }'
    

此页面是否对您有帮助?

感谢您的反馈!


Flux 的未来

Flux 即将进入维护模式。您可以继续像现在这样使用它,而无需更改任何代码。

阅读更多

现已全面上市

InfluxDB 3 Core 和 Enterprise

快速启动。更快扩展。

获取更新

InfluxDB 3 Core 是一个开源、高速、近实时数据引擎,它实时收集和处理数据,并将其持久化到本地磁盘或对象存储。InfluxDB 3 Enterprise 构建于 Core 的基础之上,增加了高可用性、读取副本、增强的安全性以及数据压缩,从而实现更快的查询和优化的存储。InfluxDB 3 Enterprise 的免费层级可供非商业家庭或业余爱好者使用。

有关更多信息,请查看