2022 Zabbix中国峰会
2022 Zabbix中国峰会

1 Zabbix server

概述

本节列出了Zabbix服务器配置文件(zabbix_server.conf)中支持的参数. 请注意:

  • 默认值反映守护程序的默认值, 不是附带的配置文件中的值;
  • Zabbix只支持UTF-8编码的配置文件,不支持 BOM;
  • 以“#”开头的注释只支持在行首.

以下参数可以在Zabbix server配置文件中配置:

参数名称 必须配 范围 默认值 描述信息
AlertScriptsPath usr/local/share/zabbix/alertscripts 定义报警脚本位置 (依赖编译安装时的参数设置 datadir)。
AllowRoot 许服务以 'root'身份运行。 如果该参数配置为禁止,并且服务仍以root身份启动,服务会切换到使用 'zabbix'用户启动 。 对于以普通用户启动的,该参数没有影响。
0 - 禁止
1 - 允许
从Zabbix 2.2.0以后的版本都支持这个参数
CacheSize 28K-8G M 存大小, 单位为字节。
用于存储主机、监控项、触发器数据的共享内存大小。
Zabbix2.2.3以前的版本最大可配置值为2GB。
CacheUpdateFrequency -3600 0 abbix 配置缓存更新频率, 单位为秒.
另外参考 runtime control 选项。
DBHost ocalhost 据库主机名。
如果是MySQL localhost或空字符串会导致使用套接字。 如果是 PostgreSQL
只有空字符串会使用套接字。
DBName 据库名称。
DBPassword 据库登录密码。
如果数据库没有密码,请注释掉此参数。
DBPort 024-65535 使用本地套接字时的数据库端口。
DBSchema 据库Schema 名字。仅IBM DB2 和 PostgreSQL使用。
DBSocket ySQL套接字文件的路径。
DBUser 据库用户名。
DBTLSConnect 置此选项将强制使用TLS连接到数据库:
required - 使用TLS连接
verify_ca - 使用校验证书的TLS连接
verify_full - 使用校验证书的TLS连接,并验证DBHost指定的数据库标识是否与其证书匹配

从5.7.11开始的MySQL和PostgreSQL支持以下值: "required", "verify_ca", "verify_full"。 从版本10.2.6开始的 MariaDB 支持选项 "required" and "verify_full" 。
默认情况下不设置任何选项,连接行为取决于数据库配置。\\
从Zabbix 5.0.0开始支持此参数。
DBTLSCAFile
(是, 如果 DBTLSConnect 设置为如下选项时: verify_ca, verify_full)
<从Zabbix 5. 含用于数据库证书验证的顶级CA证书文件的完整路径名。
.0开始支持此参数。
DBTLSCertFile 于对数据库进行身份验证的Zabbix服务器证书文件的完整路径名。
从Zabbix 5.0.0开始支持此参数。
DBTLSKeyFile 于对数据库进行身份验证的私钥文件的完整路径名。
从Zabbix 5.0.0开始支持此参数。
DBTLSCipher abbix服务器允许TLS协议通过TLSv1.2的加密密码列表。
仅支持 MySQL.
从Zabbix 5.0.0开始支持此参数。
DBTLSCipher13 abbix服务器允许TLSv1.3协议使用的加密密码套件列表。
仅支持 MySQL 8.0.16 以上版本。
从Zabbix 5.0.0开始支持此参数。
DebugLevel -5 定调试等级:
0 - Zabbix进程的起停基本信息
1 - 严重(Critical)信息
2 - 错误(Error)信息
3 - 警告(Warning)信息
4 - 调试(Debug)信息 (产生大量信息)
5 - 扩展调试 (产生更多信息)
另外可参考 runtime control 选项。
ExportDir 换行符分隔的JSON格式实时导出事件, 历史数据和趋势数据到这个目录。如果设置,则启用实时导出数据到这个目录。
此参数从Zabbix 4.0.0开始支持。
ExportFileSize M-1G G 个导出文件的最大限制,单位为字节。仅当ExportDir参数设置后才使用,用于轮转生成导出的文件。
此参数从Zabbix 4.0.0开始支持。
ExportType no List of comma-delimited entity types (events, history, trends) for real-time export (all types by default). Valid only if ExportDir is set.
Note that if ExportType is specified, but ExportDir is not, then this is a configuration error and the server will not start.
e.g.:
ExportType=history,trends - export history and trends only
ExportType=events - export events only
This parameter is supported since Zabbix 5.0.10.
ExternalScripts usr/local/share/zabbix/externalscripts 部脚本位置 (依赖编译安装时的环境变量datadir)。
Fping6Location usr/sbin/fping6 ping6程序的路径。
确保fping6程序的所有者是root用户,并且设置了SUID标记。
如果fping程序能够处理IPv6地址,就置空("Fping6Location=")参数 。
FpingLocation usr/sbin/fping ping程序的路径。
确保fping程序的所有者是root用户,并且设置了SUID标记。
HistoryCacheSize 28K-2G 6M 史缓存数据大小, 单位为字节。
HistoryIndexCacheSize 28K-2G M 史索引缓存大小, 单位为字节。\\缓存一个item大概需要大小为100字节的空间。
该参数从Zabbix 3.0.0开始支持。
HistoryStorageDateIndex 用历史数据预处理,可以将数据存储到不同的基于时间的索引:
0 - 禁止
1 - 允许
HistoryStorageURL 史数据存储 HTTP[S] URL,用于把历史数据存储到ElasticSearch。
这个参数参考 Elasticsearch进行配置。
HistoryStorageTypes int,dbl,str,log,text 逗号分隔的列表配置哪些类型的历史数据需要存储到Elasticsearch。
这个参数参考 Elasticsearch 进行配置。
HousekeepingFrequency -24 abbix 执行 housekeeping 的频率 (单位为小时)。
housekeeping负责从数据库中删除过期的信息。
注意: 为了防止 housekeeper 负载过大 (例如, 当历史和趋势周期大大减小时), 对于每一个监控项,不会在一个housekeeping周期内删除超过4倍HousekeepingFrequency 的过期数据。 因此, 如果 HousekeepingFrequency 是 1小时, 一个周期内不会删除超过4小时的过期信息 (从最旧的数据开始) 。
备注: 为降低 server压力, housekeeping将在server启动以后,延迟30分钟执行。 因此, 如果 HousekeepingFrequency 是1小时,server启动30分后执行第一次 housekeeping , 然后按1小时为周期重复执行。从Zabbix 2.4.0以后有了这种延迟行为。
从Zabbix 3.0.0开始,可以设置HousekeepingFrequency为0来禁止自动housekeeping。 此时 housekeeping 只能通过 housekeeper_execute 启动, 在一个housuekeeping周期内删除的过期信息时长为从最后一次housekeeping以来到配置周期的4倍,不少于4小时且不大于4天。
也可参见运行控制 选项。
Include 以在配置文件中指定单个文件或者指定一个目录(所有文件在该目录中)。
只有在指定的目录中包含相关文件, 才可以使用正则匹配的通配符 。例如: /absolute/path/to/config/files/*.conf. Zabbix 2.4.0以后都支持模式匹配。
参看关于限制条件特例.
JavaGateway abbix Java 网关的IP 地址 (或主机名) 。
Java 轮询器启动时才需要该参数。
Zabbix 2.0.0以后的所有版本都支持该参数.
JavaGatewayPort 024-32767 0052 abbix Java 网关监听端口。
Zabbix 2.0.0以后的所有版本都支持该参数。
ListenIP .0.0.0 rapper监听的Ip地址,使用逗号进行分割。
如果没有设置该参数,会监听所有网络接口。
从Zabbix 1.8.3开始支持多Ip地址。
ListenPort 024-32767 0051 rapper监听端口。
LoadModule erver端启动时加载的模块,这些模块用来扩展server的功能。
格式: LoadModule=<module.so>
这些模块必须在LoadModulePath参数指定的路径中。
允许多个 LoadModule 参数。
LoadModulePath erver 模块的绝对路径。
默认值在编译时指定。
LogFile 是, 如果LogType设置为file, 否则为
日志文件名称。
LogFileSize -1024 志文件大小,单位 MB。
0 - 禁止日志文件自动回滚.
注意: 如果日志文件达到限定的大小,文件回滚失败, 不管是什么原因, 现有的日志会被截断,并重新记录日志。
LogType ile 志输出类型:
file - 写入LogFile 参数指定的日志文件中,
system - 写入syslog,
console - 控制台输出.
从Zabbix 3.0.0开始支持该参数。
LogSlowQueries -3600000 据库查询消耗时间,大于该时间将会记入日志 (毫秒)。
0 - 不记录慢查询日志。
DebugLevel=3时该选项可用。
从Zabbix 1.8.2开始支持该参数
MaxHousekeeperDelete -1000000 000 个housekeeping周期内,一个任务删除的最大行数 (相应的表名,字段名,值)。
如果设置为0,不限制删除的行数,这种情况,你必须清楚这样做的影响!
从Zabbix 1.8.2 开始支持该参数,仅在对已经被删除的监控项进行历史和趋势数据删除操作时有效。
PidFile tmp/zabbix_server.pid ID文件名称。
ProxyConfigFrequency -604800 600 abbix server 多少秒向Zabbix proxy 发送一次配置数据,用于被动模式的proxy 。
从Zabbix 1.8.3开始支持该参数。
ProxyDataFrequency -3600 abbix server 多少秒向Zabbix proxy请求一次历史数据, 用于被动模式的proxy。\\从Zabbix 1.8.3开始支持该参数。
SNMPTrapperFile tmp/zabbix_traps.tmp 时文件, 用于传递 SNMP trap守护进程的数据给server.
必须和 zabbix_trap_receiver.pl或 SNMPTT 配置文件中的配置保持一致。
从Zabbix 2.0.0开始支持该参数。
SocketDir tmp abbix 内部服务使用的,用于存储 IPC sockets的目录。从Zabbix 3.4.0开始支持该参数。
SourceIP 外连接的源IP地址。
SSHKeyLocation no SSH检查和操作的公钥和私钥的位置。
SSLCertLocation 于客户端身份验证的SSL证书文件的位置。
该参数只用于web监控,从Zabbix 2.4开始支持该参数。
SSLKeyLocation 于客户端身份验证的SSL私钥文件的位置。
该参数只用于web监控,从Zabbix 2.4开始支持该参数。
SSLCALocation 盖为SSL服务器证书验证,证书颁发机构(CA)文件的位置。如果不设置,系统范围的目录将被使用。
注意,这个参数的值将被设置为libcurl选项CURLOPT_CAPATH, 在7.42.0之前的libcurl版本中,只有使用OpenSSL编译libcurl才会有效。 更多信息见 cURL 网页.
这个参数从Zabbix 2.4.0开始的web监控和自从Zabbix 3.0.0开始的SMTP身份验证中使用。
StartDBSyncers -100 据库进程的初始实例数量。
在版本1.8.5之前,上限是64。
这个参数从Zabbix 1.8.3开始得到了支持。
StartAlerters -100 警进程的初始实例数量。
从Zabbix 3.4.0开始支持该参数。
StartDiscoverers -250 现进程的初始实例数量。
在Zabbix 1.8.5版本之前,最大能设置为255。
StartEscalators -100 scalators进程的初始实例数量。
从Zabbix 3.0.0开始支持该参数。
StartHTTPPollers -1000 TTP 轮询进程的初始实例数量1.
在Zabbix 1.8.5版本之前,最大能设置为255。
StartIPMIPollers -1000 PMI 轮询进程的初始实例数量。
在Zabbix 1.8.5版本之前,最大能设置为255。
StartJavaPollers -1000 ava 轮询子进程的初始实例数量。1.
从Zabbix 2.0.0开始支持该参数。
StartLLDProcessors no 1-100 2 Number of pre-forked instances of low-level discovery (LLD) workers1.
The LLD manager process is automatically started when an LLD worker is started.
This parameter is supported since Zabbix 4.2.0.
StartPingers -1000 CMP pingers进程的初始实例数量1.
在Zabbix 1.8.5版本之前,最大能设置为255。
StartPollersUnreachable -1000 可达主机 (包括IPMI 和 Java)的轮询进程的初始实例数量。1.
从Zabbix 2.4.0开始,如果IPMI或Java轮询器启动,那么至少有一个针对不可访问主机的轮询进程必须运行。
在Zabbix 1.8.5版本之前,最大能设置为255。
这个参数从Zabbix 1.8.3版本缺失。
StartPollers -1000 询进程的初始实例数量。1.\\注意如果要内部,聚合,计算的监控项能正常工作,这个参数值必须非0。
StartPreprocessors -1000 处理工作进程的初始实例数量。\\预处理管理进程将跟随预处理工作进程启动。1.
从Zabbix 3.4.0开始支持该参数。
StartProxyPollers -250 动proxy的轮询进程初始实例数量。1.\\在Zabbix 1.8.5版本之前,最大能设置为255。
从Zabbix 1.8.3开始支持该参数。
StartSNMPTrapper -1 置为1, SNMP trapper进程将启动。
从Zabbix 2.0.0开始支持该参数。
StartTimers -1000 时器进程的初始实例数量。
计时器进程处理基于时间的触发器和维护期功能。
只有第一个计时器进程处理维护期。
从Zabbix 2.2.0开始支持该参数。
StartTrappers -1000 rapper进程的初始实例数量。1.
Trapper接收来自Zabbix发送者、主动agent和主动proxies的数据。
至少要运行一个trapper进程用于在web前端展示服务器可用性和队列视图。
在Zabbix 1.8.5版本之前,最大能设置为255。
StartVMwareCollectors -250 mware采集器进程的初始实例数量。\\从Zabbix 2.2.0开始支持该参数。
StatsAllowedIP 号分隔的IP地址列表,可选CIDR表示法, 或外部Zabbix实例的DNS名称. 只接受来自此处列出的地址的Stats请求。如果未设置此参数,则不接受stats请求。
如果启用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开始支持此参数。
Timeout -30 gent, SNMP设备或外部检查的超时时长(单位为秒)。
TLSCAFile 含用于对等证书验证的顶级CA(s)证书的文件的完整路径名,用于Zabbix组件之间的加密通信。
从Zabbix 3.0.0开始支持该参数。
TLSCertFile 含服务器证书或证书链文件的完整路径名,用于Zabbix组件之间的加密通信。
从Zabbix 3.0.0开始支持该参数。
TLSCipherAll nuTLS优先级字符串或OpenSSL(TLS 1.2)密码字符串。 覆盖基于证书和PSK的加密的默认密码套件选择标准。
例如: TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256
从Zabbix 4.4.7开始支持此参数。
TLSCipherAll13 LS 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开始支持此参数。
TLSCipherCert nuTLS优先级字符串或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 LS 1.3中OpenSSL 1.1.1或更新版本的密码字符串。覆盖基于证书的加密的默认密码套件选择标准。
从Zabbix 4.4.7开始支持此参数。
TLSCipherPSK nuTLS优先级字符串或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 LS 1.3中OpenSSL 1.1.1或更新版本的密码字符串。覆盖基于PSK的加密的默认密码套件选择标准。
示例: TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256
从Zabbix 4.4.7开始支持此参数。
TLSCRLFile 含已吊销证书文件的完整路径名, 用于Zabbix组件之间的加密通信。
从Zabbix 3.0.0开始支持该参数。
TLSKeyFile 含私钥文件的完整路径名,用于Zabbix组件之间的加密通信。
从Zabbix 3.0.0开始支持该参数。
TmpDir tmp 时目录。
TrapperTimeout -300 00 义trapper处理数据的超时时间。
TrendCacheSize 28K-2G M 势数据缓存大小,单位字节。
用于存储趋势数据的共享内存大小。
UnavailableDelay -3600 0 资源不可用期间,Zabbix多少秒检查一次资源是否可用。
UnreachableDelay -3600 5 资源不可达期间 ,Zabbix多少秒检查一次资源是否可达。
UnreachablePeriod -3600 5 主机 不可用多少秒后,即视为主机不可用。
User abbix 低系统某普通用户的权限。
仅当以'root'身份运行且AllowRoot参数设置为禁止时,该参数才起作用。
从Zabbix 2.4.0开始支持该参数。
ValueCacheSize ,128K-64G M 史数据缓存大小, 单位为字节。
缓存item历史数据请求的共享内存大小
0即禁止缓存 (不建议).
当缓存大小超过共享内存时,每5分钟会向服务器日志写入一条警告信息。
从 Zabbix 2.2.0开始支持该参数。
VMwareCacheSize 56K-2G M 储VMware数据的共享内存大小。
VMware内部检查[vmware,buffer,...] 可以用来监控VMware缓存使用情况 (参见 内部检查)。
注意,如果没有配置并启动vmware收集器实例,那么共享内存就不会被分配。\\从Zabbix 2.2.0开始支持该参数。
VMwareFrequency 0-86400 0 隔多少秒从单个VMware服务收集数据。\\任何VMware监控项的最小更新周期都大于或等于该时间。
从Zabbix 2.2.0开始支持该参数。
VMwarePerfFrequency 0-86400 0 隔多少秒从单个VMware服务检索性能计数器统计数据。
该时间为任一VMware 监控项(使用VMware性能计数器)的最小更新间隔。
从Zabbix 2.2.9, 2.4.4开始支持该参数。
VMwareTimeout -300 0 mware采集器等待 VMware 服务(vCenter or ESX 管理程序)响应的最大时长。
从Zabbix 2.2.9, 2.4.4开始支持该参数。
注脚

1 请注意,太多的数据采集进程 (pollers, unreachable pollers, HTTP pollers, Java pollers, pingers, trappers, proxypollers) 与 IPMI manager , SNMP trapper 和预处理工作进程(preprocessing workers)一起会耗尽预处理管理器的每进程文件描述符限制。

<note warning>这将导致Zabbix服务器停止(通常在启动后不久,但有时可能需要更多时间), 应修改配置文件或提高限制以避免这种情况。 :::

2 当大量监控项被删除时,会增加数据库的负载, 因为housekeeper需要删除这些监控项的所有历史数据。例如, 如果我们只需要删除一个监控项原型,但是这个原型链接到50个主机,每个主机的原型扩展到100个真实的监控项,总共需要删除5000个监控项(1*50*100)。 如果MaxHousekeeperDelete设置了500(MaxHousekeeperDelete=500),则housekeeper进程必须在一个周期内从history和trends表中删除多达2500000个值(5000*500)。

Footnotes

1 Note that too many data gathering processes (pollers, unreachable pollers, HTTP pollers, Java pollers, pingers, trappers, proxypollers) together with IPMI manager, SNMP trapper and preprocessing workers can exhaust the per-process file descriptor limit for the preprocessing manager.

This will cause Zabbix server to stop (usually shortly after the start, but sometimes it can take more time). The configuration file should be revised or the limit should be raised to avoid this situation.

2 When a lot of items are deleted it increases the load to the database, because the housekeeper will need to remove all the history data that these items had. For example, if we only have to remove 1 item prototype, but this prototype is linked to 50 hosts and for every host the prototype is expanded to 100 real items, 5000 items in total have to be removed (1*50*100). If 500 is set for MaxHousekeeperDelete (MaxHousekeeperDelete=500), the housekeeper process will have to remove up to 2500000 values (5000*500) for the deleted items from history and trends tables in one cycle.