配置 InfluxDB 数据源
本文档提供了配置 InfluxDB 数据源的说明,并解释了可用的配置选项。
开始之前
要配置 InfluxDB 数据源,您必须拥有 Administrator
角色。
注意
在添加 InfluxDB 数据源之前,请选择要与 InfluxDB 一起使用的查询语言。配置选项因查询语言类型而异。
InfluxData 提供了三种查询语言。需要考虑的一些关键点如下:
- SQL 仅适用于 InfluxDB v3.x。
- Flux 是 InfluxDB 2.x 的函数式数据脚本语言。有关使用 Flux 的基本指南,请参阅使用 Flux 查询 InfluxDB。
- InfluxQL 是 InfluxData 开发的一种类似 SQL 的查询语言。它不支持更高级的功能,例如 JOIN。
为了帮助您选择最适合您需求的语言,请参阅 Flux 与 InfluxQL 的比较以及 InfluxData 为何创建 Flux。
添加 InfluxDB 数据源
完成以下步骤来设置新的 InfluxDB 数据源:
- 点击左侧菜单中的连接。
- 点击添加新连接。
- 在搜索栏中输入
InfluxDB
。 - 选择 InfluxDB 数据源。
- 点击右上角的添加新数据源。
您将被带到设置选项卡,在那里您可以配置数据源。
InfluxDB 通用配置选项
以下配置选项适用于所有三种查询语言选项。
- 名称 - 设置在面板和查询中引用数据源时使用的名称。示例:
InfluxDB-InfluxQL
,InfluxDB_SQL
。 - 默认 - 切换此项可将其设置为默认数据源。
- 查询语言 - 选择 InfluxDB 实例的查询语言。三个选项是:
HTTP 部分
- URL - InfluxDB API 的 HTTP 协议、IP 地址和端口。InfluxDB 的默认 API 端口是
8086
。 - 允许的 Cookie - 定义哪些 Cookie 会转发到数据源。默认情况下,所有其他 Cookie 都将被删除。
- 超时 - 设置 HTTP 请求超时时间(秒)。
身份验证部分
- 基本身份验证 - 最常见的身份验证方法。使用您的 InfluxData 用户名和密码进行身份验证。启用此项需要您在基本身份验证详情下添加用户和密码。
- 附带凭据 - 切换此项可启用在跨站请求中发送 Cookie 或身份验证头等凭据。
- TLS 客户端身份验证 - 切换此项以使用客户端身份验证。启用后,在 TLS/SSL 身份验证详情部分下添加
Server name
、Client cert
和Client key
。客户端提供服务器用于验证以建立客户端可信身份的证书。客户端密钥用于加密客户端和服务器之间的数据。 - 附带 CA 证书 - 使用 CA 证书进行身份验证。按照您的 CA(证书颁发机构)的说明下载证书文件。
- 跳过 TLS 验证 - 切换此项以跳过 TLS 证书验证。
- 转发 OAuth 身份 - 转发查询数据源用户的 OAuth 访问令牌(如果可用,还包括 OIDC ID 令牌)。
基本身份验证详情
如果您在身份验证部分启用了基本身份验证,则需要配置以下项:
- 用户 - 添加用于登录 InfluxDB 的用户名。
- 密码 - 定义用于查询在数据库中定义的 bucket 的令牌。您可以从 InfluxDB UI 中的令牌页面获取此令牌。
TLS/SSL 身份验证详情
TLS/SSL 证书经过加密并存储在 Grafana 数据库中。
- CA 证书 - 如果您启用了附带 CA 证书,请在此处添加您的自签名证书。
- 服务器名称 - 服务器的名称。示例:server1.domain.com
- 客户端证书 - 添加客户端证书。
- 客户端密钥 - 添加客户端密钥。
自定义 HTTP 头
- 头 - 添加自定义 HTTP 头。从下拉列表中选择一个选项。允许根据您的 InfluxDB 实例需求传递自定义头。
- 值 - 头的值。
私有数据源连接
- 私有数据源连接 - 仅适用于 Grafana Cloud 用户。 私有数据源连接 (PDC) 允许您在 Grafana Cloud 实例(或堆栈)与安全地位于私有网络内的数据源之间建立私有、安全的连接。点击下拉菜单查找 PDC 的 URL。有关 Grafana PDC 的更多信息,请参阅私有数据源连接 (PDC)。
点击管理私有数据源连接将带您到您的 PDC 连接页面,在那里您可以找到您的 PDC 配置详情。
添加连接设置后,点击保存并测试以测试数据源连接。
InfluxQL 特定配置部分
以下设置仅适用于 InfluxQL 查询语言选项。
InfluxQL InfluxDB 详情部分
- 数据库 - 设置要查询的 bucket 的 ID。有关如何查找可用 bucket 列表及其对应 ID 的信息,请参阅 InfluxData 文档中的查看 bucket。
- 用户 - 用于登录 InfluxDB 的用户名。
- 密码 - 定义用于查询在数据库中定义的 bucket 的令牌。从 InfluxDB UI 的令牌页面获取密码。
- HTTP 方法 - 设置用于查询数据源的 HTTP 方法。POST 方法允许处理使用 GET 方法会返回错误的较大查询。默认方法是
POST
。 - 最小时间间隔 - (可选) 设置自动 group-by 的最小时间间隔。Grafana 建议将其设置为与数据写入频率匹配。例如,如果您的数据每分钟写入一次,建议将此间隔设置为 1 分钟,以便每个组都包含每次新写入的数据。默认值为
10s
。有关格式示例,请参阅最小时间间隔。 - 最大时间序列数 - (可选) 设置 Grafana 处理的最大时间序列或表格数的限制。设置较低的限制以防止系统过载,或者如果您有许多小型时间序列且需要显示更多,则增加此限制。默认值为
1000
。
SQL 特定配置部分
以下设置仅适用于 SQL 查询语言选项。
SQL InfluxDB 详情部分
- 数据库 - 指定 bucket ID。请参阅 InfluxDB UI 中的Buckets 页面以查找 ID。
- 令牌 - 用于 SQL 查询的 API 令牌。在 InfluxDB Cloud 面板的加载数据 > API 令牌菜单下生成。
- 不安全连接 - 切换此项可禁用 gRPC TLS 安全。
- 最大时间序列数 - (可选) 设置 Grafana 处理的最大时间序列或表格数的限制。设置较低的限制以防止系统过载,或者如果您有许多小型时间序列且需要显示更多,则增加此限制。默认值为
1000
。
Flux 特定配置部分
以下设置仅适用于 Flux 查询语言选项。
Flux InfluxDB 详情部分
- 组织 - 用于 Flux 查询的 Influx 组织。也用于
v.organization
查询宏。 - 令牌 - 用于 Flux 查询的身份验证令牌。对于 Influx 2.0,使用Influx 身份验证令牌。令牌必须设置为值为
Token <生成的令牌>
的Authorization
头。对于 Influx 1.8,令牌是用户名:密码
。 - 默认 bucket - (可选) 用于 Flux 查询中
v.defaultBucket
宏的 Influx bucket。 - 最小时间间隔 - 设置自动 group-by 的最小时间间隔。Grafana 建议将此设置与数据写入频率对齐。例如,如果数据每分钟写入一次,则将间隔设置为 1 分钟,以确保每个组包含每次新写入的数据。默认值为
10s
。 - 最大时间序列数 - 设置 Grafana 处理的最大时间序列或表格数的限制。设置较低的限制以防止系统过载,或者如果您有许多小型时间序列且需要显示更多,则增加此限制。默认值为
1000
。
最小时间间隔
最小时间间隔设置定义了自动 group-by 时间间隔的下限。
此值必须格式化为后跟有效时间标识符的数字:
标识符 | 描述 |
---|---|
y | 年 |
M | 月 |
w | 周 |
d | 天 |
h | 小时 |
m | 分钟 |
s | 秒 |
ms | 毫秒 |
您还可以在面板的数据源选项中覆盖此设置。
供应 InfluxDB 数据源
您可以在 YAML 文件中定义和配置数据源,作为 Grafana 供应系统的一部分。有关供应的更多信息以及可用的配置选项,请参阅供应 Grafana。
注意
database
字段已弃用。Grafana 建议在jsonData
中使用dbName
字段。无需更改现有供应设置。
供应示例
供应因查询语言而异。
InfluxDB 1.x 示例
apiVersion: 1
datasources:
- name: InfluxDB_v1
type: influxdb
access: proxy
user: grafana
url: https://:8086
jsonData:
dbName: site
httpMode: GET
secureJsonData:
password: grafana
InfluxDB 2.x (Flux) 示例
apiVersion: 1
datasources:
- name: InfluxDB_v2_Flux
type: influxdb
access: proxy
url: https://:8086
jsonData:
version: Flux
organization: organization
defaultBucket: bucket
tlsSkipVerify: true
secureJsonData:
token: token
InfluxDB 2.x (InfluxQL) 示例
apiVersion: 1
datasources:
- name: InfluxDB_v2_InfluxQL
type: influxdb
access: proxy
url: https://:8086
jsonData:
dbName: site
httpHeaderName1: 'Authorization'
secureJsonData:
httpHeaderValue1: 'Token <token>'
InfluxDB 3.x (SQL) 示例
apiVersion: 1
datasources:
- name: InfluxDB_v3_InfluxQL
type: influxdb
access: proxy
url: https://:8086
jsonData:
version: SQL
dbName: site
httpMode: POST
insecureGrpc: false
secureJsonData:
token: '<api-token>'