Documentation

设置 InfluxDB

在您开始本教程时,请做以下几点,以确保您所需的一切都已就位。

  1. 运行初始设置过程

    在你 安装并启动 InfluxDB 之后,运行初始设置过程以创建以下内容:

    • 一个 organization,使用您提供的名称。
    • 一个 bucket,其名称为您提供的名称。
    • 一个管理员 authorization 具有以下属性:
      • 您提供的用户名和密码。
      • 一个 API Operator token
      • 对 InfluxDB 实例中所有资源的读写权限。

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

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

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

    使用Docker自动设置

    如果您使用 Docker 进行初始设置选项 安装了 InfluxDB,则您已经完成了设置过程。

    1. With InfluxDB running, visit http://localhost:8086.
    2. Click Get Started

    设置您的初始用户

    1. Enter a Username for your initial user.
    2. Enter a Password and Confirm Password for your user.
    3. Enter your initial Organization Name.
    4. Enter your initial Bucket Name.
    5. Click Continue.
    6. Copy the provided operator API token and store it for safe keeping.

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

    您的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
        

        替换以下内容:

      InfluxDB 使用以下内容初始化: Operator tokenuserorganization, 和 bucket。 输出类似于以下内容:

      User        Organization         Bucket
      USERNAME    ORGANIZATION_NAME    BUCKET_NAME
      

      InfluxDB将这些值存储在一个 default 连接配置中,该配置提供您的 InfluxDB URL、组织和API令牌给 influx CLI命令。 有关连接配置的信息,请参见 influx config

    向以下HTTP API端点发送请求:

    POST http://localhost:8086/api/v2/setup

    POST /api/v2/setup API 端点不需要身份验证

    在请求体中,指定初始用户名、密码、组织、桶和可选的操作员令牌,例如:

    curl http://localhost:8090/api/v2/setup \
      --data '{
                "username": "
    USERNAME
    ",
    "password": "
    PASSWORD
    ",
    "token": "
    TOKEN
    ",
    "bucket": "
    BUCKET_NAME
    ",
    "org": "
    ORG_NAME
    "
    }'

    替换以下内容:

    • USERNAME: 您初始管理员的名称 user
    • PASSWORD: 您初始管理员的密码 user
    • ORG_NAME: 您初始组织的名称
    • BUCKET_NAME: 您初始的名称
    • TOKEN: 设置给 operator token 的字符串值。如果你不包含这个标志,InfluxDB 会为你生成一个令牌。

    响应体包含创建的资源,包括Operator token及其权限列表。

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

    有关更多选项和详细信息,请参见POST /api/v2/setup API端点文档

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

    InfluxDB 初始设置过程中,您创建了一个管理员用户和操作员令牌,他们拥有管理您 InfluxDB 实例中所有内容的权限。

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

    1. 访问 localhost:8086 在浏览器中登录并访问 InfluxDB 用户界面。

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

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

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

    5. 复制生成的令牌并将其安全保存。

    1. 如果您还没有,请下载、安装并配置 influx CLI

    2. 使用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>
      
    3. 复制生成的令牌并将其安全存储。

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

    以下示例使用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 并安全存储。

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

  3. 配置认证凭据.

    在您阅读本教程时,与 InfluxDB 2.7 的交互需要您的 InfluxDB 主机组织名称或ID,以及您的 API令牌。提供凭据的方式取决于您使用哪个客户端与 InfluxDB 进行交互。

    在配置你的令牌时,如果你 创建了一个全访问令牌,请使用该令牌与InfluxDB进行交互。否则,请使用你在设置过程中创建的操作员令牌。

    在通过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 用户界面。

    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

    请在您的请求中包含以下内容:

    • 头部:
      • 授权: 令牌 INFLUX_TOKEN
      • 内容类型: 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 开源版本现已公开Alpha测试

InfluxDB 3 Open Source is now available for alpha testing, licensed under MIT or Apache 2 licensing.

我们将发布两个产品作为测试版的一部分。

InfluxDB 3 核心,是我们新的开源产品。 它是一个用于时间序列和事件数据的实时数据引擎。 InfluxDB 3 企业版是建立在核心基础之上的商业版本,增加了历史查询能力、读取副本、高可用性、可扩展性和细粒度安全性。

有关如何开始的更多信息,请查看: