配置参数:Zabbix 前端

概述

配置参数允许自定义 Zabbix 前端的行为。

前端配置文件zabbix.conf.php)中指定参数值。

本页面的结构如下:

  • 参数概述(要查看参数的完整详细信息,请单击其名称)
  • 参数详细信息
参数 描述
$DB['TYPE'] 数据库类型。
$DB['SERVER'] 数据库主机名或 IP 地址。
$DB['PORT'] 数据库端口。
$DB['DATABASE'] Zabbix 前端用于连接已配置数据库的数据库名称。
$DB['USER'] Zabbix 前端用于连接数据库的用户名。
$DB['PASSWORD'] Zabbix 前端用于连接数据库的密码。
$DB['SCHEMA'] PostgreSQL 使用的数据库模式名称。
$DB['ENCRYPTION'] 启用或禁用 Zabbix 前端与数据库之间连接的 TLS 加密。
$DB['KEY_FILE'] 用于数据库 TLS 连接的客户端私钥文件路径。
$DB['CERT_FILE'] 用于数据库 TLS 连接的客户端证书文件路径。
$DB['CA_FILE'] 用于数据库 TLS 连接的 CA 证书文件路径。
$DB['VERIFY_HOST'] 启用或禁用对 TLS 证书中数据库服务器主机名的验证。
$DB['CIPHER_LIST'] 数据库连接允许使用的 TLS 密码套件列表。
$DB['VAULT'] 指定用于存储数据库凭据的 Vault 密钥管理器。
$DB['VAULT_URL'] 用于检索数据库凭据的 Vault 密钥管理器 URL。
$DB['VAULT_PREFIX'] 用于检索数据库凭据的 Vault 路径或查询的前缀。
$DB['VAULT_DB_PATH'] Vault 密钥管理器中数据库凭据的路径。
$DB['VAULT_TOKEN'] 用于访问 Vault 密钥管理器的身份验证令牌。
$DB['VAULT_APP_ROLE_ID'] 用于向 HashiCorp Vault 进行身份验证的 AppRole 角色 ID。
$DB['VAULT_APP_SECRET_ID'] 用于向 HashiCorp Vault 进行身份验证的 AppRole 密钥 ID。
$DB['VAULT_CERT_FILE'] 用于向 Vault 密钥管理器进行身份验证的客户端证书文件路径。
$DB['VAULT_KEY_FILE'] 用于向 Vault 密钥管理器进行身份验证的客户端私钥文件路径。
$DB['VAULT_CACHE'] 启用或禁用对从 Vault 密钥管理器检索的凭据进行缓存。
$ZBX_SERVER 指定一个值以覆盖 Zabbix 主机名/IP 地址。
$ZBX_SERVER_PORT 指定一个值以覆盖 Zabbix 服务器端口。
$ZBX_SERVER_NAME Zabbix 服务器名称。
$IMAGE_FORMAT_DEFAULT 默认图像格式。
$HISTORY_PROVIDERS[] Elasticsearch 或 ClickHouse 的历史数据存储提供程序配置。
$SSO['SETTINGS'] SAML 登录的配置设置。
$SSO['CERT_STORAGE'] 指定 SAML 证书的存储位置。
$SSO['SP_KEY'] 当私钥存储在文件系统中时,SAML 服务提供商(SP)私钥文件的路径。
$SSO['SP_CERT'] 当证书存储在文件系统中时,SAML 服务提供商(SP)证书文件的路径。
$SSO['IDP_CERT'] 当证书存储在文件系统中时,SAML 身份提供商证书文件的路径。
$ZBX_FEATURE_FLAGS['banners_enabled'] 启用或禁用对横幅的支持。
$ZBX_FEATURE_FLAGS['http_auth_enabled'] 启用或禁用用户 HTTP 身份验证。
$ZBX_FEATURE_FLAGS['modules_config_enabled'] 启用或禁用对模块的访问。
$ZBX_FEATURE_FLAGS['media_type_denylist'] 禁用对特定预配置媒介类型的编辑。
$ZBX_SERVER_TLS['ACTIVE'] 指定与 Zabbix 服务器的连接是否启用 TLS。
$ZBX_SERVER_TLS['CA_FILE'] 用于验证服务器证书的证书颁发机构(CA)证书文件路径。
$ZBX_SERVER_TLS['KEY_FILE'] 与客户端证书对应的客户端私钥文件路径。
$ZBX_SERVER_TLS['CERT_FILE'] 需要双向 TLS 身份验证时的客户端证书文件路径。
$ZBX_SERVER_TLS['CERTIFICATE_ISSUER'] 用于与服务器证书进行匹配的颁发者可分辨名称(DN)。
$ZBX_SERVER_TLS['CERTIFICATE_SUBJECT'] 用于与服务器证书进行匹配的主题可分辨名称(DN)。

参数详细信息

$DB['TYPE']

数据库类型。

取值:MYSQL - MySQL,POSTGRESQL - PostgreSQL。

$DB['SERVER']

数据库主机名或 IP 地址。

如果未定义 $DB['SERVER'],则使用默认的 Unix 域套接字。 对于 MySQL,将 $DB['SERVER'] 设置为 localhost 也会通过默认的 Unix 奟接字建立连接。
对于 PostgreSQL,$DB['SERVER'] 可以包含多个以逗号分隔的 host:port 条目。 如果逗号分隔列表中的某个主机未定义端口,则使用 $DB['PORT'] 中定义的值作为默认端口。 如果在 $DB['SERVER'] 中指定了套接字路径(例如 /var/run/pgbouncer),则使用该 Unix 域套接字。

示例:

$DB['SERVER'] = 'localhost';
$DB['SERVER'] = 127.0.0.1;
$DB['PORT']

数据库端口。

如果未定义,则使用值 0

$DB['DATABASE']

Zabbix 前端用于连接已配置数据库的数据库名称。

示例:

$DB['DATABASE'] = 'zabbix';
$DB['USER']

Zabbix 前端用于连接数据库的用户名。

$DB['PASSWORD']

Zabbix 前端用于连接数据库的密码。

$DB['SCHEMA']

用于 PostgreSQL 的数据库架构名称。

$DB['ENCRYPTION']

启用或禁用 Zabbix 前端与数据库之间连接的加密

取值:true - 启用,false - 禁用。

$DB['KEY_FILE']

用于数据库 TLS 连接的客户端私钥文件路径。

示例:

// 对于 MySQL:
$DB['KEY_FILE'] = '/etc/ssl/mysql/client-key.pem';
$DB['CERT_FILE']

用于数据库 TLS 连接的客户端证书文件路径。

示例:

// 对于 MySQL:
$DB['CERT_FILE'] = '/etc/ssl/mysql/client-cert.pem';
$DB['CA_FILE']

用于数据库 TLS 连接的 CA 证书文件路径。

示例:

// 对于 MySQL:
$DB['CA_FILE'] = '/etc/ssl/mysql/ca.pem';
// 对于 PostgreSQL:
$DB['CA_FILE'] = '/etc/ssl/pgsql/root.crt';
$DB['VERIFY_HOST']

启用或禁用 TLS 证书中数据库服务器主机名的验证。

取值:true - 启用,false - 禁用。

$DB['CIPHER_LIST']

数据库连接允许使用的 TLS 加密套件列表。

示例:

// 对于 MySQL:
$DB['CIPHER_LIST'] = 'TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:TLS_AES_128_CCM_SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-GC';
$DB['VAULT']

指定用于存储数据库凭据的 Vault 密钥管理器。

值:CyberArkHashiCorp

示例:

// 对于 CyberArk:
$DB['VAULT'] = 'CyberArk';
// 对于 HashiCorp:
$DB['VAULT'] = 'HashiCorp';
$DB['VAULT_URL']

用于检索数据库凭据的 Vault 密钥管理器 URL。

示例:

// 对于 CyberArk:
$DB['VAULT_URL'] = 'https://127.0.0.1:1858';
// 对于 HashiCorp:
$DB['VAULT_URL'] = 'https://localhost:8200';
$DB['VAULT_PREFIX']

用于检索数据库凭据的 Vault 路径或查询的前缀。

示例:

// 对于 HashiCorp:
$DB['VAULT_PREFIX'] = '/v1/secret/data/zabbix/';
$DB['VAULT_DB_PATH']

Vault secrets manager 中数据库凭据的路径。

示例:

// 对于 CyberArk:
$DB['VAULT_DB_PATH'] = 'AppID=foo&Query=Safe=bar;Object=buzz';
// 对于 HashiCorp:
$DB['VAULT_DB_PATH'] = 'database';
$DB['VAULT_TOKEN']

用于访问 Vault 密钥管理器的身份验证令牌。

示例:

// 对于 HashiCorp:
$DB['VAULT_TOKEN'] = 'hvs.CAESIIG_PILmULFYOsEyWHxkZ2mF2a8VPKNLE8eHqd4autYGGh4KHGh2cy5aeTY0NFNSaUp3ZnpWbDF1RUNjUkNTZEg';
$DB['VAULT_APP_ROLE_ID']

用于向 HashiCorp Vault 进行身份验证的 VaultAppSecretID 角色 ID。

示例:

$DB['VAULT_APP_ROLE_ID'] = '6f1567f1-538d-7d70-e8e4-5d3e59471b2e';
$DB['VAULT_APP_SECRET_ID']

用于向 HashiCorp Vault 进行身份验证的 VaultAppSecretID。

示例:

$DB['VAULT_APP_SECRET_ID'] = '89dac8b1-f7d6-96a7-2ecf-f94d2de3d6f1';
$DB['VAULT_CERT_FILE']

用于向 Vault secrets manager 进行身份验证的客户端证书文件路径。

示例:

// 对于 CyberArk:
$DB['VAULT_CERT_FILE'] = 'conf/certs/cyberark-cert.pem';
$DB['VAULT_KEY_FILE']

用于向 Vault secrets manager 进行身份验证的客户端私钥文件路径。

示例:

// 对于 CyberArk:
$DB['VAULT_KEY_FILE'] = 'conf/certs/cyberark-key.pem';
$DB['VAULT_CACHE']

启用或禁用从 Vault secrets manager 检索的凭据缓存。

值:true - 启用,false - 禁用。

$ZBX_SERVER

指定一个值以覆盖 Zabbix 主机名/IP 地址。
如果指定了 $ZBX_SERVER 但未指定 $ZBX_SERVER_PORT,则使用默认端口(10051)。

$ZBX_SERVER_PORT

指定一个值以覆盖 Zabbix 服务器端口。
此参数与 $ZBX_SERVER 一起使用。

$ZBX_SERVER_NAME

Zabbix 服务器名称。

$IMAGE_FORMAT_DEFAULT

默认图像格式。

默认值:IMAGE_FORMAT_PNG
值:

  • IMAGE_FORMAT_PNG - PNG 格式
  • IMAGE_FORMAT_JPEG - JPEG 格式
  • IMAGE_FORMAT_GIF - GIF 格式
$HISTORY_PROVIDERS[]

Elasticsearch 或 ClickHouse 的历史数据存储提供程序配置。

支持的配置参数:

  • types - 要存储在外部存储中的数据类型数组;
  • provider - 历史数据提供程序类型:elasticsearchclickhouse
  • url - 历史数据提供程序 URL;
  • db - 数据库名称(用于 ClickHouse);
  • username - 数据库用户(用于 ClickHouse);
  • password - 数据库密码(用于 ClickHouse)。

示例:

// 对于 ClickHouse:
$HISTORY_PROVIDERS[] = [
    'types' => ['uint', 'dbl', 'str', 'log', 'text', 'json'],
    'provider' => 'clickhouse',
    'url' => 'http://localhost:8123',
    'db' => 'zabbix',
    'username' => 'zabbix',
    'password' => 'zabbix'
];
// 对于 Elasticsearch:
$HISTORY_PROVIDERS[] = [
    'types' => ['uint', 'dbl', 'str', 'log', 'text', 'json'],
    'provider' => 'elasticsearch',
    'url' => 'http://localhost:9200'
];
$SSO['SETTINGS']

SAML 登录的配置设置。 $SSO['SETTINGS'] 数组必须遵循 SAML PHP Toolkit 库所需的结构(该库由 Zabbix 提供)。

$SSO['SETTINGS'] 中只能指定以下选项:

  • strict
  • baseurl
  • compress
  • contactPerson
  • organization
  • sp(仅限此列表中指定的选项)
    • attributeConsumingService
    • x509certNew
  • idp(仅限此列表中指定的选项)
    • singleLogoutService(仅限一个选项)
      • responseUrl
    • certFingerprint
    • certFingerprintAlgorithm
    • x509certMulti
  • security(仅限此列表中指定的选项)
    • signMetadata
    • wantNameId
    • requestedAuthnContext
    • requestedAuthnContextComparison
    • wantXMLValidation
    • relaxDestinationValidation
    • destinationStrictlyMatches
    • rejectUnsolicitedResponsesWithInResponseTo
    • signatureAlgorithm
    • digestAlgorithm
    • lowercaseUrlencoding

所有其他选项均从数据库中获取,无法覆盖。 debug 选项将被忽略。

如果 Zabbix UI 位于 proxy 或负载均衡器之后,可以使用自定义的 use_proxy_headers 选项:

  • false(默认)- 忽略 X-Forwarded-* HTTP 标头;
  • true - 使用 X-Forwarded-* HTTP 标头构建基础 URL。

有关可用配置选项的完整说明,请参阅官方库文档

示例:

$SSO['SETTINGS'] = [
    'security' => [
        'signatureAlgorithm' => 'http://www.w3.org/2001/04/xmldsig-more#rsa-sha384',
        'digestAlgorithm' => 'http://www.w3.org/2001/04/xmldsig-more#sha384',
        // ...
    ],
    // ...
];
$SSO['CERT_STORAGE']

指定 SAML 证书的存储位置。

默认值:file
值:

  • database - 私钥和证书存储在数据库中;
  • file - 私钥和证书存储在文件系统中。

示例:

$SSO['CERT_STORAGE'] = 'database';
$SSO['SP_KEY']

当私钥存储在文件系统中时,SAML 服务提供商(SP)私钥文件的路径。

示例:

$SSO['SP_KEY'] = 'conf/certs/sp.key';
$SSO['SP_CERT']

当证书存储在文件系统中时,SAML 服务提供商(SP)证书文件的路径。

示例:

$SSO['SP_CERT'] = 'conf/certs/sp.crt';
$SSO['IDP_CERT']

当证书存储在文件系统中时,SAML 身份提供商证书文件的路径。

示例:

$SSO['IDP_CERT'] = 'conf/certs/idp.crt';
$ZBX_FEATURE_FLAGS['banners_enabled']

启用或禁用对横幅的支持。

默认值:true
值:true - 已启用,false - 已禁用。

$ZBX_FEATURE_FLAGS['http_auth_enabled']

启用或禁用用户 HTTP 身份验证。

默认值:true
值:true - 已启用,false - 已禁用。

$ZBX_FEATURE_FLAGS['modules_config_enabled']

启用或禁用对模块的访问。

默认值:true
值:true - 已启用,false - 已禁用。

$ZBX_FEATURE_FLAGS['media_type_denylist']

禁止编辑特定的预配置媒介类型。

值:emailscriptsmswebhookpush

示例:

$ZBX_FEATURE_FLAGS['media_type_denylist'] = ['webhook','push'];
$ZBX_SERVER_TLS['ACTIVE']

指定是否启用 Zabbix 前端与 Zabbix 服务器之间的 TLS 连接

默认值:false
值:true - 启用,false - 禁用。

$ZBX_SERVER_TLS['CA_FILE']

用于验证服务器证书的证书颁发机构(CA)证书文件路径。

示例:

$ZBX_SERVER_TLS['CA_FILE'] = '/etc/zabbix/ssl/ca.crt';
$ZBX_SERVER_TLS['KEY_FILE']

与用于双向 TLS 身份验证的客户端证书对应的客户端私钥文件路径。

示例:

$ZBX_SERVER_TLS['KEY_FILE'] = '/etc/zabbix/ssl/frontend.key';
$ZBX_SERVER_TLS['CERT_FILE']

需要双向 TLS 身份验证时,客户端证书文件的路径。

示例:

$ZBX_SERVER_TLS['CERT_FILE'] = '/etc/zabbix/ssl/frontend.crt';
$ZBX_SERVER_TLS['CERTIFICATE_ISSUER']

用于与服务器证书进行匹配的颁发者可分辨名称(DN)。

示例:

$ZBX_SERVER_TLS['CERTIFICATE_ISSUER']  = 'CN=MyZabbixCA';
$ZBX_SERVER_TLS['CERTIFICATE_SUBJECT']

用于与服务器证书进行匹配的使用者专有名称(DN)。

示例:

$ZBX_SERVER_TLS['CERTIFICATE_SUBJECT'] = 'CN=zabbix-server.example.com';