菜单
文档breadcrumb arrow Grafana 文档breadcrumb arrow 数据源breadcrumb arrow PostgreSQLbreadcrumb arrow 配置 PostgreSQL 数据源
Grafana Cloud Enterprise 开源软件 RSS

配置 PostgreSQL 数据源

本文档提供了配置 PostgreSQL 数据源的说明,并解释了可用的配置选项。有关数据源管理的通用信息,请参阅 数据源管理

开始之前

你必须拥有 组织管理员 角色才能配置 Postgres 数据源。组织管理员还可以通过 Grafana 供应系统使用 YAML 配置数据源

Grafana 内置了 PostgreSQL 数据源插件,无需另外安装。

注意

添加数据源时,你指定的数据库用户应仅对相关数据库和表拥有 SELECT 权限。Grafana 不会验证查询的安全性,这意味着查询可能包含潜在的有害 SQL 语句,例如 USE otherdb;DROP TABLE user;,这些语句可能会被执行。为了减轻此风险,Grafana 强烈建议创建一个具有受限权限的专用 PostgreSQL 用户。

示例

sql
 CREATE USER grafanareader WITH PASSWORD 'password';
 GRANT USAGE ON SCHEMA schema TO grafanareader;
 GRANT SELECT ON schema.table TO grafanareader;

添加 PostgreSQL 数据源

完成以下步骤设置一个新的 PostgreSQL 数据源

  1. 点击左侧菜单中的 连接
  2. 点击 添加新连接
  3. 在搜索栏中输入 PostgreSQL
  4. 选择 PostgreSQL 数据源
  5. 点击右上角的 添加新数据源

你将被带到 设置 标签页,在此配置数据源。

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 模式 选项中的 requireverify-caverify-full,并且选择 文件系统路径,则需要以下信息

  • TLS/SSL 根证书 - 指定根证书文件的路径。
  • TLS/SSL 客户端证书 - 指定客户端证书的路径,并确保运行 Grafana 进程的用户可以访问该文件。
  • TLS/SSL 客户端密钥 - 指定客户端密钥文件的路径,并确保运行 Grafana 进程的用户可以访问该文件。

如果你选择 TLS/SSL 模式 选项中的 require,并且选择 TLS/SSL 方法证书内容,则需要以下信息

  • TLS/SSL 客户端证书 - 提供客户端证书。
  • TLS/SSL 客户端密钥 - 提供客户端密钥。

如果你选择 TLS/SSL 模式 选项中的 verify-caverify-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 供应示例

yaml
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 中。