[comment]: # ({4c4650a2-heading})
# 11 PostgreSQL 插件

[comment]: # ({/4c4650a2-heading})

[comment]: # ({26957231-overview})
### 概述

本节列出了PostgreSQL Zabbix agent 2插件配置file (postgresql.conf)中支持的参数.

自Zabbix 6.0.10起，PostgreSQL插件作为可加载插件提供，其完整描述可在[PostgreSQL plugin repository](https://git.zabbix.com/projects/AP/repos/postgresql/browse?at=refs%2Fheads%2Frelease%2F6.0)中查阅.

Windows平台的预编译插件二进制文件自[Zabbix 6.0.19](https://cdn.zabbix.com/zabbix/binaries/stable/6.0/6.0.19/)起提供，并与之前的6.0版本兼容.

请注意:

-   默认值反映进程默认设置，而非随附配置文件中的值;
-   Zabbix仅支持UTF-8编码的配置文件，不支持[BOM](https://en.wikipedia.org/wiki/Byte_order_mark);
-   以"\#"开头的注释仅支持在行首使用.

[comment]: # ({/26957231-overview})

[comment]: # ({1a59fae9-options})
### 选项

| 参数 | 描述 |
|---------|-----------|
| -V --version | 打印插件version及许可证信息。 |
| -h --help | 打印帮助信息（简写形式）。 |

[comment]: # ({/1a59fae9-options})

[comment]: # ({55098534-parameters})
### 参数

::: noteclassic
在Zabbix 6.0.10之前的版本中，参数名称以*Plugins.Postgres.<参数>*开头，而非
*Plugins.PostgreSQL.<参数>*。例如，*Plugins.Postgres.KeepAlive*。

:::

| 参数 | 必选 | 范围 | 默认值 | 描述 |
|--|--|--|--|----------|
| Plugins.PostgreSQL.Default.CacheMode | no |       | prepare | PostgreSQL连接的缓存模式。<br>支持的值：<br>*prepare*（默认）- 将在PostgreSQL服务器上create预处理语句；<br>*describe* - 将使用匿名预处理语句来描述语句，而无需在服务器上创建语句。<br>注意，"describe"主要在环境不允许预处理语句时有用，例如运行PgBouncer等连接池时。<br>自version 6.0.25起支持。 |
| Plugins.PostgreSQL.CallTimeout | no | 1-30 | global timeout | 请求完成的最大等待时间（秒）。 |
| Plugins.PostgreSQL.CustomQueriesPath | no |       | disabled | 包含自定义queries的*.sql*文件的目录完整路径。 |
| Plugins.PostgreSQL.Default.Database | no |       |         | 连接PostgreSQL的默认数据库；如果监控项键或命名会话中未指定值，则使用此值。<br>自version 6.0.18起支持。 |
| Plugins.PostgreSQL.Default.Password | no |       |         | 连接PostgreSQL的默认密码；如果监控项键或命名会话中未指定值，则使用此值。<br>自version 6.0.18起支持。 |
| Plugins.PostgreSQL.Default.TLSCAFile | no<br>(yes, if Plugins.PostgreSQL.Default.TLSConnect is set to *verify_ca* or *verify_full*) |       |         | 包含Top级CA证书的file的完整路径名，用于Zabbix agent 2与受监控数据库之间加密通信的对等证书验证；如果命名会话中未指定值，则使用此值。<br>自version 6.0.18起支持。 |
| Plugins.PostgreSQL.Default.TLSCertFile | no<br>(yes, if Plugins.PostgreSQL.Default.TLSConnect is set to *verify_ca* or *verify_full*) |       |         | 包含PostgreSQL证书或证书链的file的完整路径名，用于Zabbix agent 2与受监控数据库之间加密通信；如果命名会话中未指定值，则使用此值。<br>自version 6.0.18起支持。 |
| Plugins.PostgreSQL.Default.TLSConnect | no |       |         | Zabbix agent 2与受监控数据库之间通信的加密类型；如果命名会话中未指定值，则使用此值。<br>支持的值：<br>*required* - 使用TLS作为传输模式连接，不进行身份检查；<br>*verify\_ca* - 使用TLS连接并验证证书；<br>*verify\_full* - 使用TLS连接，验证证书并验证DBHost指定的数据库身份（CN）与其证书匹配。<br>未定义的加密类型表示未加密连接。<br>自version 6.0.18起支持。 |
| Plugins.PostgreSQL.Default.TLSKeyFile | no<br>(yes, if Plugins.PostgreSQL.Default.TLSConnect is set to *verify_ca* or *verify_full*) |       |         | 包含PostgreSQL私钥的file的完整路径名，用于Zabbix agent 2与受监控数据库之间加密通信；如果命名会话中未指定值，则使用此值。<br>自version 6.0.18起支持。 |
| Plugins.PostgreSQL.Default.Uri | no |       |         | 连接PostgreSQL的默认URI；如果监控项键或命名会话中未指定值，则使用此值。<br><br>不应包含嵌入式凭据（它们将被忽略）。<br>必须匹配URI格式。<br>支持的方案：`tcp`，`unix`。<br>示例：`tcp://127.0.0.1:5432`<br>`tcp://localhost`<br>`unix:/var/run/postgresql/.s.PGSQL.5432`<br>自version 6.0.18起支持。 |
| Plugins.PostgreSQL.Default.User | no |       |         | 连接PostgreSQL的默认用户名；如果监控项键或命名会话中未指定值，则使用此值。<br>自version 6.0.18起支持。 |
| Plugins.PostgreSQL.KeepAlive | no | 60-900 | 300     | 关闭未使用的插件连接前的最大等待时间（秒）。 |
| Plugins.PostgreSQL.Sessions.<SessionName>.CacheMode | no |       | prepare | PostgreSQL连接的缓存模式。<br>**<SessionName>** - 定义用于监控项键的会话名称。<br>支持的值：<br>*prepare*（默认）- 将在PostgreSQL服务器上create预处理语句；<br>*describe* - 将使用匿名预处理语句来描述语句，而无需在服务器上创建语句。<br>注意，"describe"主要在环境不允许预处理语句时有用，例如运行PgBouncer等连接池时。<br>自version 6.0.25起支持。 |
| Plugins.PostgreSQL.Sessions.<SessionName>.Database | no |       |         | 会话连接的数据库。<br>**<SessionName>** - 定义用于监控项键的会话名称。 |
| Plugins.PostgreSQL.Sessions.<SessionName>.Password | no | Must match the password format. |         | 会话连接的密码。<br>**<SessionName>** - 定义用于监控项键的会话名称。 |
| Plugins.PostgreSQL.Sessions.<SessionName>.TLSCAFile | no<br>(yes, if Plugins.PostgreSQL.Sessions.<SessionName>.TLSConnect is set to *verify_ca* or *verify_full*) |       |         | 包含Top级CA证书对等证书验证的file的完整路径名。<br>**<SessionName>** - 定义用于监控项键的会话名称。 |
| Plugins.PostgreSQL.Sessions.<SessionName>.TLSCertFile | yes, if Plugins.PostgreSQL.Sessions.<SessionName>.TLSKeyFile is specified<br><br>Before version 6.0.22 always mandatory if Plugins.PostgreSQL.Sessions.<SessionName>.TLSConnect is set to *verify_ca* or *verify_full* |       |         | 包含PostgreSQL证书或证书链的file的完整路径名。<br>**<SessionName>** - 定义用于监控项键的会话名称。 |
| Plugins.PostgreSQL.Sessions.<SessionName>.TLSConnect | no |       |         | PostgreSQL连接的加密类型。<br>**<SessionName>** - 定义用于监控项键的会话名称。<br><br>支持的值：<br>*required* - 使用TLS作为传输模式连接，不进行身份检查；<br>*verify\_ca* - 使用TLS连接并验证证书；<br>*verify\_full* - 使用TLS连接，验证证书并验证DBHost指定的数据库身份（CN）与其证书匹配。<br>未定义的加密类型表示未加密连接。 |
| Plugins.PostgreSQL.Sessions.<SessionName>.TLSKeyFile | yes, if Plugins.PostgreSQL.Sessions.<SessionName>.TLSCertFile is specified<br><br>Before version 6.0.22 always mandatory if Plugins.PostgreSQL.Sessions.<SessionName>.TLSConnect is set to *verify_ca* or *verify_full* |       |         | 包含PostgreSQL私钥的file的完整路径名。<br>**<SessionName>** - 定义用于监控项键的会话名称。 |
| Plugins.PostgreSQL.Sessions.<SessionName>.Uri | no |       |         | 命名会话的连接string。<br>**<SessionName>** - 定义用于监控项键的会话名称。<br><br>不应包含嵌入式凭据（它们将被忽略）。<br>必须匹配URI格式。<br>支持的方案：`tcp`，`unix`。<br>示例：`tcp://127.0.0.1:5432`<br>`tcp://localhost`<br>`unix:/var/run/postgresql/.s.PGSQL.5432` |
| Plugins.PostgreSQL.Sessions.<SessionName>.User | no |       |         | 命名会话的用户名。<br>**<SessionName>** - 定义用于监控项键的会话名称。 |
| Plugins.PostgreSQL.System.Path | yes |       |         | 外部插件可执行文件的路径。自Zabbix 6.0.10起支持。 |
| Plugins.PostgreSQL.Timeout | no | 1-30 | global timeout | 请求执行超时（在关闭请求前等待请求完成的持续时间，秒）。 |

另请参阅：

-   通用Zabbix agent 2配置参数描述：
    [Zabbix agent 2 (UNIX)](/manual/appendix/config/zabbix_agent2) /
    [Zabbix agent 2
    (Windows)](/manual/appendix/config/zabbix_agent2_win)
-   [plugins](/manual/config/items/plugins)配置说明

[comment]: # ({/55098534-parameters})


