2 Zabbix proxy

概览

本节列出了 Zabbix proxy 的配置文件(zabbix_proxy.conf)中支持的参数。 请注意:

  • 默认值反映的是守护进程的默认值,而不是附带的配置文件中的值;
  • Zabbix 仅支持 UTF-8 编码的配置文件,且编码中不可使用字节顺序标记(BOM)
  • 仅在行首支持以“#”开始的注释。

参数

参数必填范围默认值描述
AllowRoot0允许 proxy 以 ‘root’ 用户身份运行。若本参数设为禁止,且仍以 ‘root’ 用户身份启动 proxy,则 proxy 会尝试切换为以 ‘zabbix’ 用户启动。若以普通用户身份启动则本参数无效。
0 - 禁止
1 - 允许
AllowUnsupportedDBVersions0允许 proxy 在不支持的数据库版本下工作。
0 - 禁止
1 - 允许
CacheSize128K-64G8M配置缓存的大小,单位为字节。
用于存储主机和监控项数据的共享内存大小。
ConfigFrequency1-6048003600proxy 从 Zabbix server 获取配置数据的频率,单位为秒。
本参数仅在 proxy 为主动模式时有效,在 proxy 为被动模式时无效(详见参数 ProxyMode)。
DataSenderFrequency1-36001Proxy 上报采集到的数据的频率,单位为秒。注意,主动 proxy 仍然会每秒轮询 Zabbix server 以获取远程命令任务。
本参数仅在 proxy 为主动模式时有效,在 proxy 为被动模式时无效(详见参数 ProxyMode)。
DBHostlocalhost数据库主机名。
在数据库为 MySQL 时,localhost 或 空字符串会导致使用套接字 socket。
在数据库为 PostgreSQL 时,只有空字符串会导致使用套接字 socket。
在数据库为 Oracle 时,空字符串会导致使用网络服务名连接方式;此时,请考虑使用环境变量 TNSADMIN 来定义 tnsnames.ora 文件的地址。
DBName数据库名称,当数据库为 SQLite3 时则为数据库文件的路径(Zabbix 的多进程架构不允许使用 内存数据库,比如 :memory:file::memory:?cache=sharedfile:memdb1?mode=memory&cache=shared)。

警告:不要使用 Zabbix server 正在使用的数据库。
在数据库为 Oracle 时,若使用了网络服务名连接方式,则需要在 tnsnames.ora 里明确服务名,或设置为空字符串;若 DBName 被设为空字符串,则需要设置环境变量 TWO_TASK 。
DBPassword数据库密码。在数据库为 SQLite 时无效。
若未使用密码,请注释该行。
DBSchemaSchema 名。仅用于 PostgreSQL。
DBSocket3306MySQL 套接字文件的地址。
当不使用本地套接字时则为数据库端口。当数据库为 SQLite 时无效。
DBUser数据库用户。当数据库为 SQLite 时无效。
DBTLSConnect设置本参数将强制使用 TLS 连接数据库:
required - 使用 TLS 连接
verify_ca - 使用 TLS 连接并校验证书
verify_full - 使用 TLS 连接并校验证书,并校验 DBHost 所定义的数据库标识是否符合该证书

在 MySQL 5.7.11及之后版本以及 PostgreSQL 中支持下列值:“required”,“verify”,“verify_full”。
在 MariaDB 10.2.6 及之后版本中支持 “required”和“verify_full”。
默认情况下未设置为任何值,此时行为逻辑以数据库配置为准。

自 Zabbix 5.0.0开始支持本参数。
DBTLSCAFile
(若 DBTLSConnect 为下列值之一则为是:verify_ca,verify_full)
用于数据库证书校验的顶级 CA 证书文件的完整路径名。
自 Zabbix 5.0.0开始支持本参数。
DBTLSCertFile用于数据库授权的 Zabbix server 证书文件的完整路径名。
自 Zabbix 5.0.0开始支持本参数。
DBTLSKeyFile用于数据库授权的私钥文件的完整路径名。
自 Zabbix 5.0.0开始支持本参数。
DBTLSCipherZabbix server 允许在 TLSv1.2 及更低版本协议中使用的加密密码列表。
只支持 MySQL。
自 Zabbix 5.0.0开始支持本参数。
DBTLSCipher13Zabbix server 允许在 TLSv1.3 版本协议中使用的加密密码套件列表。
只支持 MySQL 8.0.16及之后版本。
自 Zabbix 5.0.0开始支持本参数。
DebugLevel0-53指定调试级别:
0 - Zabbix 进程启停的基础信息
1 - 严重(critical)信息
2 - 错误(error)信息
3 - 警告(warning)信息
4 - 调试(debugging)信息,会产生大量信息
5 - 扩展调试(extended debugging)信息,会产生更大量的信息
EnableRemoteCommands0是否允许来自 Zabbix server 的远程命令。
0 - 禁止
1 - 允许
自 Zabbix 3.4.0开始支持本参数。
ExternalScripts/usr/local/share/zabbix/externalscripts外部脚本的位置(取决于编译时的安装变量 datadir)。
Fping6Location/usr/sbin/fping6fping6 的位置。
确保 fping6 二进制文件具有 root 用户所有权和 SUID 标识。
若你的 fping 程序能处理 IPv6 地址,则设置本参数为空(“Fping6Location=”)。
FpingLocation/usr/sbin/fpingfping 的位置。
确保 fping 二进制文件具有根所有权和 SUID 标识!
HeartbeatFrequency0-360060心跳消息的频率,单位为秒。
用于在服务器侧监控 proxy 的可用性。
0 - 禁用心跳消息。
本参数仅在 proxy 为主动模式时有效,在 proxy 为被动模式时无效(详见参数 ProxyMode)。
HistoryCacheSize128K-2G16M历史数据的缓存大小,单位为字节。
用于存储历史数据的共享内存大小。
HistoryIndexCacheSize128K-2G4M历史数据索引缓存的大小,单位为字节。
在历史数据缓存中用于索引历史数据的共享内存大小。
为了缓存一个监控项,索引缓存需要约100字节的空间。
自 Zabbix 3.0.0开始支持本参数。
Hostname由参数 HostnameItem 设置唯一且大小写敏感的 proxy 名称。确保 server 端知道 proxy 的名称!
允许的字符:字母,数字,‘.’,‘ ’,‘’ 和‘-’。
最大长度:128
HostnameItemsystem.hostname当 Hostname 未定义时,本参数的监控项用于设置 Hostname(这将在 proxy 端执行,与 agent 端类似)。
本参数不支持 UserParameters,performance counters 和 aliases,但支持 system.run[]。

若 Hostname 已设置,则忽略本参数。
HousekeepingFrequency0-241Zabbix 执行 housekeeping 程序的频率(单位为小时)。
Housekeeping 会从数据库移除过期信息。
注意:为了防止 housekeeping 负载过大(例如,当配置参数 ProxyLocalBuffer 或 ProxyOfflineBuffer 被大大减小时),在一个 housekeeping 周期内只能删除不超过4倍 HousekeepingFrequency 时间范围内的过期信息。因此,若 HousekeepingFrequency 是1,则每个周期只会删除不超过4小时的过期信息(从最老的数据条目开始)。
注意:为了减少 proxy 启动时的负载,housekeeping 会在 proxy 启动后延迟30分钟开始执行。因此,若 HousekeepingFrequency 是1,则第一次 housekeeping 程序会在 proxy 启动的30分钟后开始执行,并会自此每小时重复执行一次。
自 Zabbix 3.0.0开始,可以通过设置 HousekeepingFrequency 为0来禁止 housekeeping 程序的自动执行。此时 housekeeping 程序仅能被 housekeeper_execute 运行时控制选项所执行,且在一个 housekeeping 周期内所删除过期信息的时间范围是自上次 housekeeping 到现在的时间的4倍,但不少于4小时且不多于4天。
Include你可以引入配置文件中所定义目录下的单独几个或所有文件。
为了仅引入指定目录下的相关文件,可以使用星号通配符进行模式匹配。例如:/absolute/path/to/config/files/*.conf
有关限制,请参阅特别说明
JavaGatewayZabbix Java 网关的 IP 地址(或主机名)。
仅在 Java 轮询器启动时才需要该参数。
JavaGatewayPort1024-3276710052Zabbix Java 网关监听的端口。
ListenBacklog0 - INT_MAXSOMAXCONNTCP 队列的最大挂起连接数。
默认值是取决于系统的硬编码常量。
支持的最大值取决于系统,过高的值可能会被静默截短为“实现指定的最大值”。
ListenIP0.0.0.0trapper 应该监听的 IP 地址列表(由英文逗号分隔)。
若未设置本参数,则 trapper 会监听所有网络接口。
ListenPort1024-3276710051trapper 的监听端口。
LoadModuleproxy 启动时要加载的模块。模块用来扩展 proxy 的功能。
格式:
LoadModule=<module.so>
LoadModule=<path/module.so>
LoadModule=</abs_path/module.so>
模块必须位于 LoadModulePath 指定的目录中,或路径必须位于模块名之前。若模块名前的路径是绝对路径(以‘/’开头),则忽略 LoadModulePath。
允许添加多个 LoadModule 参数。
LoadModulePathproxy 模块的完整路径。
默认值取决于编译选项。
LogFile若 LogType 设为 file 则为是,
否则为否
日志文件的名称。
LogFileSize0-10241日志文件的最大容量,单位为 MB。
0 - 禁用自动的日志滚动。
注意:若达到日志文件大小的最大限制且文件滚动失败,则无论出于何种原因,现有的日志文件会被截断并开始重新记录。
LogRemoteCommands0允许将已执行的 shell 命令记录为警告。
0 - 禁止
1 - 允许
自 Zabbix 3.4.0开始支持本参数。
LogTypefile日志输出的类型:
file - 将日志写入 LogFile 参数指定的文件中,
system - 将日志写入 syslog,
console - 将日志用控制台进行标准输出。
自 Zabbix 3.0.0开始支持本参数。
LogSlowQueries0-36000000多慢的数据库查询会被记入日志(单位为毫秒)。
0 - 不记录慢查询日志。
DebugLevel=3时开始支持使用本参数。
PidFile/tmp/zabbix_proxy.pidPID 的文件名称。
ProxyLocalBuffer0-7200即使数据已同步到 server,proxy 也会在本地保留数据 N 小时。
本参数适用于本地数据会被第三方应用使用的场景。
ProxyMode0-10proxy 的工作模式。
0 - proxy 为主动模式
1 - proxy 为被动模式
注意:使用主动模式的 proxy 时,有权访问 Zabbix server trapper 端口的各方可以获取(敏感的)proxy 配置数据。会出现这种情况,是因为任何人都可以假装自己是主动模式的 proxy 并请求配置数据;此时并不会进行身份验证。
ProxyOfflineBuffer1-7201proxy 与 Zabbix server 断开连接时,会将数据保留 N 小时。
更早的数据会丢失。
ServerPort1024-3276710051Zabbix server 上 Zabbix trapper 的端口。
本参数仅在 proxy 为主动模式时有效,在 proxy 为被动模式时无效(详见参数 ProxyMode)。
Server若 ProxyMode 设置为 主动模式
则本参数是 Zabbix server 的 IP 地址或 DNS 名称(地址:端口)或集群(地址:端口;地址2:端口),用以实现从其获取配置数据以及报送数据给它的功能。
若未指定端口,则会使用默认端口。
集群节点必须由英文分号分隔。

若 ProxyMode 设置为 被动模式
则本参数是英文逗号分隔的 Zabbix server 的 IP 地址列表(可选择用 CIDR 表示法表达),或 DNS 名称列表。仅接受来自此处配置地址的传入连接。若支持 IPv6,则‘127.0.0.1’、‘::127.0.0.1’、‘::ffff:127.0.0.1’是等效的。
‘::/0’将允许任意 IPv4或 IPv6地址。
‘0.0.0.0/0’可以用来允许任意 IPv4地址。
例如:Server=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com
SNMPTrapperFile/tmp/zabbix_traps.tmp本参数定义了临时文件,用于将 SNMP trap 守护进程的数据传输到 proxy。
必须与 zabbix_trap_receiver.pl 或 SNMPTT 配置文件中的一样。
SocketDir/tmp用于存储内部 Zabbix 服务所使用的 IPC 套接字的目录。
自 Zabbix 3.4.0开始支持本参数。
SourceIP用于以下目的的源 IP 地址:
- 到 Zabbix server 的传出连接;
- 无代理连接(VMware,SSH,JMX,SNMP,Telnet 和简单检查);
- HTTP 代理连接;
- JavaScript HTTP 请求的脚本对象;
- JavaScript HTTP 请求的预处理;
- 到机密库的连接
SSHKeyLocationSSH 检查和操作所用公钥和密钥的地址。
SSLCertLocation客户端身份验证所用的 SSL 客户端证书文件的地址。
本参数仅用于 web 监控。
SSLKeyLocation客户端身份验证所用的 SSL 私钥文件的地址。
本参数仅用于 web 监控。
SSLCALocationSSL 服务器证书验证所用的证书颁发机构(CA)文件的地址。
注意本参数的值将被设置为 libcurl 选项 CURLOPT_CAPATH 的值。对早于7.42.0的 libcurl 版本,这将仅在 libcurl 被编译为使用 OpenSSL 时生效。更多信息请参阅cURL 网页
本参数自 Zabbix 2.4.0以来用于 web 监控,自 Zabbix 3.0.0以来用于 SMTP 认证。
StartDBSyncers1-1004历史数据同步器的初始实例数。
注意:请谨慎修改本参数,增大它可能坏处多过好处。
StartDiscoverers0-2501发现进程的初始实例数。
StartHistoryPollers0-10001历史数据轮询器的初始实例数。
自 Zabbix 5.4.0开始支持本参数。
StartHTTPPollers0-10001HTTP 轮询器的初始实例数。
StartIPMIPollers0-10000IPMI 轮询器的初始实例数。
StartJavaPollers0-10000Java 轮询器的初始实例数。
StartODBCPollers0-10001ODBC 轮询器的初始实例数。
StartPingers0-10001ICMP ping 进程的初始实例数。
StartPollersUnreachable0-10001不可达主机轮询器(包括 IPMI 和 Java)的初始实例数。
若启动了普通、IPMI 或 Java 轮询器,则至少要运行一个不可达主机轮询器。
StartPollers0-10005轮询器的初始实例数。
StartPreprocessors1-10003预处理工作进程1的初始实例数。
预处理工作进程启动时,预处理管理进程将自动启动。
自 Zabbix 4.2.0开始支持本参数。
StartSNMPTrapper0-10若设置为1,则 SNMP trapper 进程将启动。
StartTrappers0-10005trappers 的初始实例数。
trapper 接受来自 Zabbix sender 和主动 agent 的连接。
StartVMwareCollectors0-2500VMware 采集器的初始实例数。
StatsAllowedIP英文逗号分隔的外部 Zabbix 实例的 IP 地址列表(可选择用 CIDR 表示法表达),或 DNS 名称列表。仅接受来自此处列出地址的统计数据请求。若未设置本参数,则禁止任何统计数据请求。
若支持 IPv6,则‘127.0.0.1’、‘::127.0.0.1’、‘::ffff:127.0.0.1’是等效的,且‘::/0’将允许任意 IPv4或 IPv6地址。‘0.0.0.0/0’将允许任意 IPv4地址。
例如:StatsAllowedIP=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com
自 Zabbix 4.2.0开始支持本参数。
Timeout1-303定义 agent、SNMP 设备和外部检查的超时时长(单位为秒)。
TLSAccept若在被动 proxy 下定义了 TLS 认证或 PSK 参数(即使是 未加密 的连接)则为是,
否则为否
接受来自 Zabbix server 的哪些传入连接。用于被动模式的 proxy,在主动模式的 proxy 下无效。可定义多个值,用英文逗号分隔:
unencrypted - 接受未加密连接(默认)
psk - 接受带 TLS 和预共享秘钥(PSK)的连接
cert - 接受带 TLS 和证书的连接
自 Zabbix 3.0.0开始支持本参数。
TLSCAFile顶级 CA 证书文件的完整路径名,该文件用于和 Zabbix 组件间加密通信中的对等证书校验。
自 Zabbix 3.0.0开始支持本参数。
TLSCertFile包含 proxy 证书或证书链的文件的完整路径名,该文件用于和 Zabbix 组件间的加密通信。
自 Zabbix 3.0.0开始支持本参数。
TLSCipherAllGnuTLS 优先级字符串或 OpenSSL(TLS 1.2)密码字符串。覆盖基于证书和 PSK 加密的默认密码套件选择条件。
例如:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256
自 Zabbix 4.4.7开始支持本参数。
TLSCipherAll13在 TLS 1.3下用于 OpenSSL 1.1.1版或更新版本的密码字符串。覆盖基于证书和 PSK 加密的默认密码套件选择条件。
GnuTLS 的例子:NONE:+VERS-TLS1.2:+ECDHE-RSA:+RSA:+ECDHE-PSK:+PSK:+AES-128-GCM:+AES-128-CBC:+AEAD:+SHA256:+SHA1:+CURVE-ALL:+COMP-NULL::+SIGN-ALL:+CTYPE-X.509
OpenSSL 的例子:EECDH+aRSA+AES128:RSA+aRSA+AES128:kECDHEPSK+AES128:kPSK+AES128
自 Zabbix 4.4.7开始支持本参数。
TLSCipherCertGnuTLS 优先级字符串或 OpenSSL(TLS 1.2)密码字符串。覆盖基于证书加密的默认密码套件选择条件。
GnuTLS 的例子:NONE:+VERS-TLS1.2:+ECDHE-RSA:+RSA:+AES-128-GCM:+AES-128-CBC:+AEAD:+SHA256:+SHA1:+CURVE-ALL:+COMP-NULL:+SIGN-ALL:+CTYPE-X.509
OpenSSL 的例子:EECDH+aRSA+AES128:RSA+aRSA+AES128
自 Zabbix 4.4.7开始支持本参数。
TLSCipherCert13在 TLS 1.3下用于 OpenSSL 1.1.1版或更新版本的密码字符串。覆盖基于证书加密的默认密码套件选择条件。
自 Zabbix 4.4.7开始支持本参数。
TLSCipherPSKGnuTLS 优先级字符串或 OpenSSL(TLS 1.2)密码字符串。覆盖基于 PSK 加密的默认密码套件选择条件。
GnuTLS 的例子:NONE:+VERS-TLS1.2:+ECDHE-PSK:+PSK:+AES-128-GCM:+AES-128-CBC:+AEAD:+SHA256:+SHA1:+CURVE-ALL:+COMP-NULL:+SIGN-ALL
OpenSSL 的例子:kECDHEPSK+AES128:kPSK+AES128
自 Zabbix 4.4.7开始支持本参数。
TLSCipherPSK13在 TLS 1.3下用于 OpenSSL 1.1.1版或更新版本的密码字符串。覆盖基于 PSK 加密的默认密码套件选择条件。
Example: TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256
自 Zabbix 4.4.7开始支持本参数。
TLSConnect若在主动 proxy 下定义了 TLS 认证或 PSK 参数(即使是 未加密 的连接)则为是,
否则为否
proxy 该如何连接到 Zabbix server。本参数仅在 proxy 为主动模式时有效,在 proxy 为被动模式时无效。仅可以选择一种连接方式:
unencrypted - 无加密连接(默认)
psk - 使用 TLS 和预共享秘钥(PSK)的连接
cert - 使用 TLS 和证书的连接
自 Zabbix 3.0.0开始支持本参数。
TLSCRLFile包含已吊销证书的文件的完整路径名。本参数用于和 Zabbix 组件间的加密通信。
自 Zabbix 3.0.0开始支持本参数。
TLSKeyFile包含 proxy 私钥的文件的完整路径名,该文件用于和 Zabbix 组件间的加密通信。
自 Zabbix 3.0.0开始支持本参数。
TLSPSKFile包含 proxy 预共享秘钥(PSK)的文件的完整路径名,该文件用于和 Zabbix server 之间的加密通信。
自 Zabbix 3.0.0开始支持本参数。
TLSPSKIdentity预共享秘钥(PSK)标识字符串,用于和 Zabbix server 之间的加密通信。
自 Zabbix 3.0.0开始支持本参数。
TLSServerCertIssuer允许的 server 证书颁发者。
自 Zabbix 3.0.0开始支持本参数。
TLSServerCertSubject允许的 server 证书使用者。
自 Zabbix 3.0.0开始支持本参数。
TmpDir/tmp临时目录。
TrapperTimeout1-300300定义 trapper 处理新数据的超时时间(单位为秒)。
Userzabbix降低权限为一个系统内已存在的用户。
仅当以‘root’用户身份运行且 AllowRoot 参数设置为禁用时,本参数才生效。
UnavailableDelay1-360060不可用期间检查主机可用性的频率(单位为秒)。
UnreachableDelay1-360015不可达期间检查主机可用性的频率(单位为秒)。
UnreachablePeriod1-360045主机在持续多少秒的不可达状态后会被认为是不可用。
VaultDBPath机密库路径,从中将按键名‘password’和‘username’检索数据库凭据。
例如:secret/zabbix/database
仅当 DBUser 和 DBPassword 未设置时可使用本参数。
自 Zabbix 5.2.0开始支持本参数。
VaultToken机密库身份验证令牌,该令牌应专门为 Zabbix proxy 生成,且对可选 VaultDBPath 配置参数中指定的路径具有只读权限。
若同时定义了环境变量 VaultToken 和 VAULT_TOKEN 则会出错。
自 Zabbix 5.2.0开始支持本参数。
VaultURLhttps://127.0.0.1:8200机密库服务的 HTTP[S] URL。若未设置 SSLCALocation,则将使用系统范围内的 CA 证书目录。
自 Zabbix 5.2.0开始支持本参数。
VMwareCacheSize256K-2G8M用于存储 VMware 数据的共享内存大小。
VMware 内部检查 zabbix[vmware,buffer,…]可用于监控 VMware 缓存使用情况(请参阅内部检查)。
请注意,若没有配置为启动的 vmware 收集器实例,则不会分配共享内存。
VMwareFrequency10-8640060从单个 VMware 服务收集数据的频率(单位为秒)。
本参数应设置为所有 VMware 监控项中的最小更新间隔值。
VMwarePerfFrequency10-8640060从单个 VMware 服务检索性能计数器统计信息的频率(单位为秒)。
本参数应设置为所有使用 VMware 性能计数器的 VMware 监控项中的最小更新间隔值。
VMwareTimeout1-30010vmware 采集器等待来自 VMware 服务(vCenter 或 ESX hypervisor)响应的最大秒数。