文档文档

创建 InfluxDB 模板

使用 InfluxDB 用户界面 (UI) 和 influx export 命令 从组织中的资源创建 InfluxDB 模板。在 InfluxDB UI 中添加 Bucket、Telegraf 配置、任务等,然后将这些资源导出为模板。

创建模板

创建一个仅包含模板资源的组织是确保导出所需资源的简单方法。按照以下步骤从新组织创建模板。

  1. 启动 InfluxDB.

  2. 创建组织.

  3. 在 InfluxDB UI 中,添加一个或多个资源

  4. 创建所有访问权限 API 令牌(或具有组织读取权限的令牌)。

  5. 步骤 4 中的 API 令牌与influx export all 子命令结合使用,以将组织中的所有资源导出到模板文件。

    influx export all \
      -o YOUR_INFLUX_ORG \
      -t YOUR_ALL_ACCESS_TOKEN \
      -f ~/templates/template.yml
    

将资源导出到模板

influx export 命令和子命令允许您从组织导出资源到模板清单。您的API 令牌必须具有要导出的资源的读取权限。

如果要导出依赖于其他资源的资源,请务必导出依赖项。

身份验证凭据

以下示例假定您的 InfluxDB 主机组织令牌活动的 influx CLI 配置或环境变量(INFLUX_HOSTINFLUX_ORGINFLUX_TOKEN)提供。如果您没有设置 CLI 配置或环境变量,请为每个命令包含以下必需的凭据标志

  • --host: InfluxDB 主机
  • -o, --org--org-id: InfluxDB 组织名称或 ID
  • -t, --token: InfluxDB API 令牌

要创建在应用于组织时添加、修改和删除资源的模板,请使用InfluxDB 堆栈。首先,初始化堆栈,然后导出堆栈

要创建仅在应用于组织时添加资源(并且不修改那里的现有资源)的模板,请选择以下选项之一

导出所有资源

要将组织内的所有资源导出到模板清单文件,请使用influx export all 子命令--file (-f) 选项。

提供以下内容

  • 模板清单的目标路径和文件名。文件名扩展名决定输出格式
    • your-template.yml: YAML 格式
    • your-template.json: JSON 格式
# Syntax
influx export all -f <FILE_PATH>

按 labelName 或 resourceKind 筛选导出的资源

influx export all 子命令接受 --filter 选项,该选项仅导出与指定标签名称或资源类型匹配的资源。要按标签名称资源类型筛选,请为每个提供一个 --filter

仅导出具有特定标签的仪表盘和 Bucket

以下示例导出与此谓词逻辑匹配的资源

(resourceKind == "Bucket" or resourceKind == "Dashboard")
and
(labelName == "Example1" or labelName == "Example2")
influx export all \
  -f ~/templates/template.yml \
  --filter=resourceKind=Bucket \
  --filter=resourceKind=Dashboard \
  --filter=labelName=Example1 \
  --filter=labelName=Example2

有关更多选项和示例,请参阅influx export all 子命令

导出特定资源

要按名称或 ID 导出特定资源,请将influx export 命令与一个或多个要包含的资源列表一起使用。

提供以下内容

  • 模板清单的目标路径和文件名。文件名扩展名决定输出格式
    • your-template.yml: YAML 格式
    • your-template.json: JSON 格式
  • 资源选项,以及要包含在模板中的相应资源 ID 或资源名称列表。有关哪些资源选项可用的信息,请参阅influx export 命令
# Syntax
influx export -f <file-path> [resource-flags]

按 ID 导出特定资源

influx export \
  --org-id ed32b47572a0137b \
  -f ~/templates/template.yml \
  -t $INFLUX_TOKEN \
  --buckets=00x000ooo0xx0xx,o0xx0xx00x000oo \
  --dashboards=00000xX0x0X00x000 \
  --telegraf-configs=00000x0x000X0x0X0

按名称导出特定资源

influx export \
  --org-id ed32b47572a0137b \
  -f ~/templates/template.yml \
  --bucket-names=bucket1,bucket2 \
  --dashboard-names=dashboard1,dashboard2 \
  --telegraf-config-names=telegrafconfig1,telegrafconfig2

导出堆栈

要导出 InfluxDB 堆栈及其所有关联资源作为模板,请使用 influx export stack 命令。提供以下内容

  • 组织名称ID
  • 具有组织读取权限的 API 令牌
  • 模板清单的目标路径和文件名。文件名扩展名决定输出格式
    • your-template.yml: YAML 格式
    • your-template.json: JSON 格式
  • 堆栈 ID

将堆栈导出为模板

# Syntax
influx export stack \
  -o <INFLUX_ORG> \
  -t <INFLUX_TOKEN> \
  -f <FILE_PATH> \
  <STACK_ID>

# Example
influx export stack \
  -o my-org \
  -t mYSuP3RS3CreTt0K3n
  -f ~/templates/awesome-template.yml \
  05dbb791a4324000

包含用户可定义的资源名称

导出模板清单后,将资源名称替换为环境引用,以便用户在安装模板时自定义资源名称。

  1. 导出模板.

  2. 选择以下任何资源字段进行更新

    • metadata.name
    • associations[].name
    • endpointName NotificationRule 资源特有)
  3. 将资源字段值替换为 envRef 对象,该对象具有 key 属性,该属性引用用户在安装模板时提供的键值对的键。在安装期间,envRef 对象将替换为引用的键值对的值。如果用户未提供环境引用键值对,则 InfluxDB 使用 key 字符串作为默认值。

    apiVersion: influxdata.com/v2alpha1
    kind: Bucket
    metadata:
      name:
        envRef:
          key: bucket-name-1
    
    {
      "apiVersion": "influxdata.com/v2alpha1",
      "kind": "Bucket",
      "metadata": {
        "name": {
          "envRef": {
            "key": "bucket-name-1"
          }
        }
      }
    }
    

使用上面的示例,当应用模板时,系统会提示用户为 bucket-name-1 提供一个值。用户还可以在安装模板时包含带有相应键值对的 --env-ref 标志。

# Set bucket-name-1 to "myBucket"
influx apply \
  -f /path/to/template.yml \
  --env-ref=bucket-name-1=myBucket

如果共享您的模板,我们建议记录模板中存在的哪些环境引用以及用于替换它们使用的键。

支持环境引用的资源字段

只有以下字段支持环境引用

  • metadata.name
  • spec.endpointName
  • spec.associations.name

模板结果和权限问题排查

如果在导出模板时遇到意外结果、资源丢失或错误,请检查以下内容

确保读取访问权限

API 令牌必须具有要导出的资源的读取权限。influx export all 命令仅导出 API 令牌可以读取的资源。例如,要导出 ID 为 abc123 的组织中的所有资源,API 令牌必须具有 read:/orgs/abc123 权限。

要了解有关权限的更多信息,请参阅如何查看授权如何创建具有特定权限的令牌

使用组织 ID

如果您的令牌没有组织的读取权限,并且您想导出特定资源,请使用 --org-id <org-id> 标志(而不是 -o <org-name>--org <org-name>)来提供组织。

检查资源依赖项

如果要导出依赖于其他资源的资源,请务必同时导出依赖项。否则,资源可能无法使用。

分享您的 InfluxDB 模板

与整个 InfluxData 社区分享您的 InfluxDB 模板。将您的模板贡献到 GitHub 上的 InfluxDB Community Templates 存储库。

查看 InfluxDB Community Templates


此页面是否有帮助?

感谢您的反馈!


Flux 的未来

Flux 即将进入维护模式。您可以继续像目前一样使用它,而无需对代码进行任何更改。

阅读更多

现已全面上市

InfluxDB 3 Core 和 Enterprise

快速启动。更快扩展。

获取更新

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

有关更多信息,请查看