CyberArk 配置
本节说明如何配置 Zabbix,以便从 CyberArk Vault CV12 检索密钥。
应按照官方 CyberArk 文档 中的说明安装并配置该 vault。
有关在 Zabbix 中配置 TLS 的信息,请参见 密钥存储。
数据库凭据
对数据库凭据的 secret 的访问是为每个 Zabbix 组件分别配置的。
服务器和 proxy
要从 vault 中为 Zabbix server 或 proxy 获取数据库凭据,请在配置文件中指定以下配置参数:
Vault- 应使用哪个 vault 提供程序;VaultURL- vault 服务器的 HTTP[S] URL;VaultDBPath- 指向包含数据库凭据的 vault secret 的查询,该凭据将通过键 "Content" 和 "UserName" 获取(仅当未指定 DBUser 和 DBPassword 时才能使用此选项);VaultTLSCertFile,VaultTLSKeyFile- SSL 证书和密钥文件名;配置这些选项不是必须的,但强烈建议设置;VaultPrefix- 根据 vault 的不同,为 vault 路径或查询指定自定义前缀;如果未指定,将使用最合适的默认值。
Vault、VaultURL、VaultTLSCertFile、VaultTLSKeyFile 和 VaultPrefix 配置参数也用于 Zabbix 服务器在处理 secret vault 宏时进行 vault 身份验证(如果已配置,Zabbix proxy 也会使用)。Zabbix 服务器和 proxy 不会打开包含来自 VaultDBPath 的数据库凭据的 vault secret 宏。
Zabbix 服务器和 Zabbix proxy 在启动时会从 zabbix_server.conf 和 zabbix_proxy.conf 文件中读取与 vault 相关的配置参数。
示例
- 在
zabbix_server.conf中,指定以下参数:
Vault=CyberArk
VaultURL=https://127.0.0.1:1858
VaultDBPath=AppID=zabbix_server&Query=Safe=passwordSafe;Object=zabbix_server_database
VaultTLSCertFile=cert.pem
VaultTLSKeyFile=key.pem
VaultPrefix=/AIMWebService/api/Accounts?
- Zabbix 将向 vault 发送以下 API 请求:
curl \
--header "Content-Type: application/json" \
--cert cert.pem \
--key key.pem \
https://127.0.0.1:1858/AIMWebService/api/Accounts?AppID=zabbix_server&Query=Safe=passwordSafe;Object=zabbix_server_database
- vault 响应将包含键 "Content" 和 "UserName":
{
"Content": <password>,
"UserName": <username>,
"Address": <address>,
"Database": <Database>,
"PasswordChangeInProcess":<PasswordChangeInProcess>
}
- 因此,Zabbix 将使用以下凭据进行数据库身份验证:
- 用户名: <username>
- 密码: <password>
前端
要从 vault 中为 Zabbix 前端获取数据库凭据,请在前端 安装 期间指定以下参数。
- 在 Configure DB Connection 步骤中,将 Store credentials in 参数设置为 "CyberArk Vault"。

- 然后,填写以下附加参数:
| Parameter | Mandatory | Default value | Description |
|---|---|---|---|
| Vault API endpoint | yes | https://localhost:1858 | 指定用于连接 vault 的 URL,格式为 scheme://host:port |
| Vault prefix | no | /AIMWebService/api/Accounts? | 为 vault 路径或查询提供自定义前缀。如果未指定,则使用默认值。 |
| Vault secret query string | yes | 一个查询,用于指定应从何处检索数据库凭据。 示例: AppID=foo&Query=Safe=bar;Object=buzz |
|
| Vault certificates | no | 勾选该复选框后,将显示用于配置客户端身份验证的附加参数。虽然此参数是可选的,但强烈建议启用它以便与 CyberArk Vault 通信。 | |
| SSL certificate file | no | conf/certs/cyberark-cert.pem | SSL 证书文件的路径。该文件必须为 PEM 格式。 如果证书文件还包含私钥,请将 SSL key file 参数留空。 |
| SSL key file | no | conf/certs/cyberark-key.pem | 用于客户端身份验证的 SSL 私钥文件名。该文件必须为 PEM 格式。 |
用户宏值
要使用 CyberArk Vault 存储 Vault secret 用户宏值,请确保:
- Zabbix 服务器已配置为可与 CyberArk Vault 协同工作;
- Administration > General > Other 中的 Vault provider 参数设置为 "CyberArk Vault"。

Zabbix 服务器(以及 Zabbix proxy,如果已配置)需要能够从 vault 访问 Vault secret 宏值。 Zabbix 前端不需要此类访问权限。
宏值应包含一个查询(格式为 query:key)。
有关 Zabbix 如何处理宏值的详细信息,请参见 Vault secret macros。
查询语法
冒号符号(":")保留用于分隔查询和键。
如果查询本身包含斜杠或冒号,则应对这些符号进行 URL 编码("/" 编码为 "%2F",":" 编码为 "%3A")。
示例
- 在 Zabbix 中,添加一个类型为 Vault secret 的用户宏 {$PASSWORD},其值为
AppID=zabbix_server&Query=Safe=passwordSafe;Object=zabbix:Content

- Zabbix 将向 vault 发送以下 API 请求:
curl \
--header "Content-Type: application/json" \
--cert cert.pem \
--key key.pem \
https://127.0.0.1:1858/AIMWebService/api/Accounts?AppID=zabbix_server&Query=Safe=passwordSafe;Object=zabbix_server_database
- vault 响应将包含键 "Content":
{
"Content": <password>,
"UserName": <username>,
"Address": <address>,
"Database" :<Database>,
"PasswordChangeInProcess":<PasswordChangeInProcess>
}
- 因此,Zabbix 将把宏 {$PASSWORD} 解析为以下值 - <password>
更新现有配置
要更新用于从 CyberArk Vault 检索密钥的现有配置:
-
按照 数据库凭据 部分中的说明,更新 Zabbix 服务器或 proxy 配置文件参数。
-
通过重新配置 Zabbix 前端并指定所需参数,更新 DB 连接设置,如 前端 部分所述。
要重新配置 Zabbix 前端,请在浏览器中打开前端设置 URL:
- Apache: http://<server_ip_or_name>/zabbix/setup.php
- Nginx: http://<server_ip_or_name>/setup.php
或者,也可以在 前端配置文件(zabbix.conf.php)中设置这些参数:
$DB['VAULT'] = 'CyberArk';
$DB['VAULT_URL'] = 'https://127.0.0.1:1858';
$DB['VAULT_DB_PATH'] = 'AppID=foo&Query=Safe=bar;Object=buzz';
$DB['VAULT_TOKEN'] = '';
$DB['VAULT_CERT_FILE'] = 'conf/certs/cyberark-cert.pem';
$DB['VAULT_KEY_FILE'] = 'conf/certs/cyberark-key.pem';
$DB['VAULT_PREFIX'] = '';
- 如有必要,按照 用户宏值 部分中的说明配置用户宏。
要更新用于从 HashiCorp Vault 检索密钥的现有配置,请参见 HashiCorp 配置。