创建 InfluxDB 模板
使用 InfluxDB 用户界面 (UI) 和 influx export
命令 从组织中的资源创建 InfluxDB 模板。在 InfluxDB UI 中添加 Bucket、Telegraf 配置、任务等,然后将这些资源导出为模板。
创建模板
创建一个仅包含模板资源的组织是确保导出所需资源的简单方法。按照以下步骤从新组织创建模板。
创建组织.
在 InfluxDB UI 中,添加一个或多个资源。
创建所有访问权限 API 令牌(或具有组织读取权限的令牌)。
将步骤 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_HOST
、INFLUX_ORG
和 INFLUX_TOKEN
)提供。如果您没有设置 CLI 配置或环境变量,请为每个命令包含以下必需的凭据标志
--host
: InfluxDB 主机-o, --org
或--org-id
: InfluxDB 组织名称或 ID-t, --token
: InfluxDB API 令牌
要创建在应用于组织时添加、修改和删除资源的模板,请使用InfluxDB 堆栈。首先,初始化堆栈,然后导出堆栈。
要创建仅在应用于组织时添加资源(并且不修改那里的现有资源)的模板,请选择以下选项之一
导出所有资源
要将组织内的所有资源导出到模板清单文件,请使用influx export all
子命令和 --file
(-f
) 选项。
提供以下内容
# 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
命令与一个或多个要包含的资源列表一起使用。
提供以下内容
- 模板清单的目标路径和文件名。文件名扩展名决定输出格式
- 资源选项,以及要包含在模板中的相应资源 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 令牌
- 模板清单的目标路径和文件名。文件名扩展名决定输出格式
- 堆栈 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
包含用户可定义的资源名称
导出模板清单后,将资源名称替换为环境引用,以便用户在安装模板时自定义资源名称。
导出模板.
选择以下任何资源字段进行更新
metadata.name
associations[].name
endpointName
(NotificationRule
资源特有)
将资源字段值替换为
envRef
对象,该对象具有key
属性,该属性引用用户在安装模板时提供的键值对的键。在安装期间,envRef
对象将替换为引用的键值对的值。如果用户未提供环境引用键值对,则 InfluxDB 使用key
字符串作为默认值。
使用上面的示例,当应用模板时,系统会提示用户为 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
此页面是否有帮助?
感谢您的反馈!