配置 PostgreSQL 数据源
本文档提供了配置 PostgreSQL 数据源的说明,并解释了可用的配置选项。有关数据源管理的通用信息,请参阅 数据源管理。
开始之前
你必须拥有 组织管理员
角色才能配置 Postgres 数据源。组织管理员还可以通过 Grafana 供应系统使用 YAML 配置数据源。
Grafana 内置了 PostgreSQL 数据源插件,无需另外安装。
注意
添加数据源时,你指定的数据库用户应仅对相关数据库和表拥有
SELECT
权限。Grafana 不会验证查询的安全性,这意味着查询可能包含潜在的有害 SQL 语句,例如USE otherdb;
或DROP TABLE user;
,这些语句可能会被执行。为了减轻此风险,Grafana 强烈建议创建一个具有受限权限的专用 PostgreSQL 用户。
示例
CREATE USER grafanareader WITH PASSWORD 'password';
GRANT USAGE ON SCHEMA schema TO grafanareader;
GRANT SELECT ON schema.table TO grafanareader;
添加 PostgreSQL 数据源
完成以下步骤设置一个新的 PostgreSQL 数据源
- 点击左侧菜单中的 连接。
- 点击 添加新连接
- 在搜索栏中输入
PostgreSQL
。 - 选择 PostgreSQL 数据源。
- 点击右上角的 添加新数据源。
你将被带到 设置 标签页,在此配置数据源。
PostgreSQL 配置选项
以下是 PostgreSQL 配置选项列表
- 名称 - 设置你在面板和查询中引用此数据源的名称。示例:
PostgreSQL-DB-1
。 - 默认 - 切换此开关可将此特定的 PostgreSQL 数据源设置为面板和可视化中的默认预选数据源。
连接部分
- 主机 URL - 你的 PostgreSQL 实例的 IP 地址/主机名和可选端口。
- 数据库名称 - 你的 PostgreSQL 数据库的名称。
身份验证部分
- 用户名 - 输入用于连接到你的 PostgreSQL 数据库的用户名。
- 密码 - 输入用于连接到 PostgreSQL 数据库的密码。
- TLS/SSL 模式 - 确定是否以及以何种优先级与服务器协商安全 SSL TCP/IP 连接。当 TLS/SSL 模式 禁用时,TLS/SSL 方法 和 TLS/SSL 身份验证详情 选项不可见。
- TLS/SSL 方法 - 确定 TLS/SSL 证书的配置方式。
- 文件系统路径 - 此选项允许你通过指定 Grafana 运行所在的本地文件系统上现有证书的路径来配置证书。确保执行 Grafana 进程的用户可以读取此文件。
- 证书内容 - 此选项允许你通过指定证书内容来配置证书。内容存储在 Grafana 数据库中并已加密。连接到数据库时,证书将作为文件保存在本地文件系统的 Grafana 数据路径中。
TLS/SSL 身份验证详情
如果你选择 TLS/SSL 模式 选项中的 require、verify-ca 或 verify-full,并且选择 文件系统路径,则需要以下信息
- TLS/SSL 根证书 - 指定根证书文件的路径。
- TLS/SSL 客户端证书 - 指定客户端证书的路径,并确保运行 Grafana 进程的用户可以访问该文件。
- TLS/SSL 客户端密钥 - 指定客户端密钥文件的路径,并确保运行 Grafana 进程的用户可以访问该文件。
如果你选择 TLS/SSL 模式 选项中的 require,并且选择 TLS/SSL 方法 的 证书内容,则需要以下信息
- TLS/SSL 客户端证书 - 提供客户端证书。
- TLS/SSL 客户端密钥 - 提供客户端密钥。
如果你选择 TLS/SSL 模式 选项中的 verify-ca 或 verify-full,并且选择 TLS/SSL 方法 的 证书内容,则需要以下信息
- TLS/SSL 客户端证书 - 提供客户端证书。
- TLS/SSL 根证书 - 提供根证书。
- TLS/SSL 客户端密钥 - 提供客户端密钥。
PostgreSQL 选项
- 版本 - 确定查询构建器中哪些函数可用。默认值为当前版本。
- 最小时间间隔 - 定义按时间间隔自动分组的下限。Grafana 建议将此设置与数据写入频率对齐。例如,如果你的数据每分钟写入一次,则将其设置为
1m
。有关格式示例,请参阅 最小时间间隔。 - TimescaleDB - 一个作为 PostgreSQL 扩展构建的时间序列数据库。启用此选项后,Grafana 会在
$__timeGroup
宏中使用time_bucket
,以便在查询构建器中显示 TimescaleDB 特定的聚合函数。有关更多信息,请参阅 TimescaleDB 文档。
连接限制
- 最大打开连接数 - 数据库的最大打开连接数。默认值为
100
。 - 自动最大空闲连接数 - 切换此开关可将最大空闲连接数设置为最大打开连接数。此设置默认为开启状态。
- 最大空闲连接数 - 空闲连接池中的最大连接数。默认值为
100
。 - 最大生命周期 - 连接可以被重用的最大秒数。默认值为
14400
秒,即 4 小时。
私有数据源连接 - 仅适用于 Grafana Cloud 用户。 私有数据源连接 (PDC) 允许你在 Grafana Cloud 实例(或技术栈)与私有网络中安全保护的数据源之间建立私有的、安全的连接。点击下拉菜单可查找 PDC 的 URL。有关 Grafana PDC 的更多信息,请参阅 私有数据源连接 (PDC)。
点击 管理私有数据源连接 将会跳转到你的 PDC 连接页面,在此你可以找到 PDC 配置详情。
添加 PostgreSQL 连接设置后,点击 保存并测试 以测试并保存数据源连接。
最小时间间隔
最小时间间隔 设置定义了 $__interval
和 $__interval_ms
变量的下限。
此选项也可以在仪表盘面板的数据源设置中进行配置或覆盖。
此值必须格式化为数字后跟一个有效的时间标识符
标识符 | 描述 |
---|---|
y | 年 |
M | 月 |
w | 周 |
d | 天 |
h | 小时 |
m | 分钟 |
s | 秒 |
ms | 毫秒 |
供应数据源
你可以使用 供应 功能在 YAML 文件中定义和配置数据源。有关供应以及可用配置选项的更多信息,请参阅 供应 Grafana。
PostgreSQL 供应示例
apiVersion: 1
datasources:
- name: Postgres
type: postgres
url: localhost:5432
user: grafana
secureJsonData:
password: 'Password!'
jsonData:
database: grafana
sslmode: 'disable' # disable/require/verify-ca/verify-full
maxOpenConns: 100
maxIdleConns: 100
maxIdleConnsAuto: true
connMaxLifetime: 14400
postgresVersion: 903 # 903=9.3, 904=9.4, 905=9.5, 906=9.6, 1000=10
timescaledb: false
排除供应问题
如果你遇到指标请求错误或其他问题
- 确保你的数据源 YAML 文件中的参数与提供的示例精确匹配,包括参数名称和引号的正确使用。
- 验证数据库名称未包含在 URL 中。