Zabbix 7.0.0 中的新增内容
有关此版本,请参见重大变更。
AGPL-3.0 许可证
Zabbix 软件现在是在 AGPL-3.0 许可证(之前为 GPL v2.0 许可证)下编写和分发的。
软件更新检查
默认情况下,新安装和现有安装的Zabbix系统现已新增软件update检查功能——Zabbix前端将与公共Zabbix端点通信以检查更新。
可用的Zabbix软件更新消息将显示在报表 -> System information以及(可选)系统信息仪表板widget中。

您可以通过在服务器允许软件更新检查中设置AllowSoftwareUpdateCheck=0来禁用软件update检查功能。
异步轮询器
新增了可同时执行多个检测的轮询进程:
agent pollerhttp agent pollersnmp poller(用于walk[OID]和get[OID]监控项)
这些轮询器是异步的 —— 它们能够在不等待响应的情况下启动新的检测,并且并发数量可配置,最高可达 1000 个并发检测。
开发异步轮询器的原因是,相比之下,同步轮询器进程同一时间只能执行 execute 一个检测,而它们的大部分时间都花费在等待响应上。 因此,通过在等待网络响应的同时启动新的并行检测可以提高效率,而新的轮询器正是这样做的。
您可以通过修改 启动代理轮询器 的值来启动异步 agent 轮询器 —— 这是一个新的 server/proxy 参数。 可以通过分别修改 starthttpagentpollers 来启动 HTTP agent 轮询器。 SNMP 轮询器可以通过分别修改 startsnmppollers 来启动。
异步轮询器(agent、HTTP agent 和 SNMP)的最大并发数由 maxconcurrentchecksperpoller 定义。
请注意,在升级后,所有 agent、HTTP agent 和 SNMP 的 walk[OID] 检测都将移至异步轮询器。
作为开发的一部分,HTTP agent 检测中新增了持久连接 cURL 功能。
浏览器监控
一种新的 监控项 类型 - Browser item - 已添加到 Zabbix,可以使用浏览器监控复杂的网站和 Web 应用程序。
浏览器 监控项 允许执行用户定义的 JavaScript 代码,以模拟与浏览器相关的操作,例如点击、输入文本、浏览网页等。
此 监控项 通过 HTTP/HTTPS 收集数据,并部分实现了 W3C WebDriver 标准,使用 Selenium Server 或普通 WebDriver(例如 ChromeDriver)作为测试端点。
请注意,浏览器 监控项 的支持目前是实验性的。
此外,此功能添加了 Website by Browser 模板以及配置导出/导入的新元素、Zabbix server/proxy 配置文件、超时设置以及 zabbix_js 命令行工具。
有关更多信息,请参见 浏览器-监控项。
proxy 负载均衡和高可用性
Zabbix 通过引入 proxy 组实现 proxy 负载均衡。 proxy 组可在 proxy 之间自动分配主机、重新平衡 proxy 负载并提供高可用性 - 当某个 proxy 离线时,其主机会立即分配到组中的其他 proxy。
有关更多信息,请参阅 proxy 负载均衡和高可用性。
Proxy 内存缓冲区
Zabbix proxy 新增了内存缓冲区。
内存缓冲区可以在缓冲区中存储新数据(监控项值、网络发现、主机自动注册),并在不访问数据库的情况下将数据上传到 Zabbix 服务器。
在 Zabbix 7.0 之前的安装中,采集的数据会先存储在数据库中,然后再上传到 Zabbix 服务器。 对于这些安装,升级后仍将默认采用此行为。
为获得更佳性能,建议在 proxy 上配置使用内存缓冲区。 可以将 ProxyBufferMode 的值从 "disk"(现有安装的硬编码默认值)修改为 "hybrid"(推荐)或 "memory"。 此外,还必须设置内存缓冲区大小(ProxyMemoryBufferSize 参数)。
在混合模式下,如果 proxy 停止、缓冲区已满或数据过旧,缓冲区会将未发送的数据刷新到数据库,从而避免数据丢失。 当所有值都已刷新到数据库后,proxy 会恢复使用内存缓冲区。
在内存模式下,将使用内存缓冲区,但不会防止数据丢失。 如果 proxy 停止,或内存缓冲区已满,未发送的数据将被丢弃。
自 Zabbix 7.0 起,所有新安装默认使用混合模式(ProxyBufferMode=hybrid)。
其他参数(例如 ProxyMemoryBufferSize 和 ProxyMemoryBufferAge)分别定义内存缓冲区大小和缓冲区中数据的最大保存时间。
新增了用于监控 proxy 内存缓冲区的内部监控项(请参阅)。
JIT 用户配置
之前配置的用户仅限于在配置过程中创建的媒体,无法灵活编辑工作时间或严重性等属性。
现在,Zabbix 中配置的用户拥有更大的灵活性:
- 可以禁用/启用配置的用户媒体;
- 可以手动编辑配置的用户媒体字段,例如活动时间、严重性条件和已启用;
- 可以手动为配置的用户添加其他用户媒体(例如,其他电子邮件地址);
- 可以删除手动添加的用户媒体(无法删除配置的用户媒体)。
此外,在配置用于用户配置的用户媒体映射时,现在可以设置活动时间、严重性条件和已启用等字段。
请注意,对用户媒体类型映射表单所做的更改仅会对配置过程中创建的新媒体生效。
每个监控项可配置的超时时间
每个 监控项 的超时配置现在支持更多的 监控项 类型(参见 超时 监控项 类型)。 除了在 监控项 级别设置超时值之外,还可以为各种 监控项 类型定义 超时 和 添加-proxies 超时。
在 监控项 级别配置的超时具有最高优先级。 默认情况下,全局超时应用于所有 监控项;但是,如果设置了 proxy 超时,则它们将覆盖全局超时。
Oracle DB 已弃用
对 Oracle 作为后端数据库的支持已被弃用,并预计在未来的版本中完全移除。
被动 agent 检查的 JSON 协议
现已实现基于 JSON 的被动 agent 检查协议。
为兼容旧版 agent,新增了回退到旧版纯文本协议的机制。 如果 agent 返回“ZBX_NOTSUPPORTED”,Zabbix 将缓存该接口使用旧版协议,并通过仅发送纯文本监控项键值来重试检查。
现在可以使用新选项 -P --protocol <value> 运行 Zabbix get,其中“value”可以是:
- auto - 使用 JSON 协议连接;失败后回退并使用纯文本协议重试(默认);
- json - 使用 JSON 协议键值连接;
- plaintext - 使用纯文本协议连接,仅发送监控项键值。
如果监控项键值不受支持,Zabbix get 将返回退出代码 1。
统一的 agent/agent2 协议
通过将 Zabbix agent 切换为 Zabbix agent 2 协议,统一了 Zabbix agent 和 agent 2 的协议。 Zabbix agent 和 Zabbix agent 2 请求/响应之间的差异通过“variant”标签值表示(“1” - Zabbix agent,“2” - Zabbix agent 2)。
另请参阅:被动和主动 agent 检查。
主动检查中的灵活/调度间隔支持
主动检查现在由 Zabbix agent 和 Zabbix agent 2 都支持灵活/调度间隔(之前仅支持 Zabbix agent 2)。
自动禁用丢失的资源
低级别发现不再发现的资源现在可以自动禁用。 可以立即禁用、在指定时间段后禁用,或永不禁用(请参阅发现规则配置中的新参数 禁用丢失的资源)。
丢失的资源(主机、监控项、触发器)会在信息列中通过图标标记。 工具提示文本会提供其状态的详细信息。
在同一项开发中,保留丢失资源周期 参数已重命名为 删除丢失的资源,并提供立即删除、在指定时间段后删除或永不删除等选项。

通过 Zabbix API 向 Zabbix 服务器发送数据
此前,可以使用 Zabbix sender 工具,或实现类似于 Zabbix sender 所使用的基于 JSON 的自定义通信协议,向 Zabbix 服务器发送特定数据。
现在,还可以使用 history.push API 方法,通过 HTTP 协议向 Zabbix 服务器发送数据。
请注意,接收所发送的数据需要配置trapper 监控项或HTTP agent 监控项(启用 trapping)。
此外,正确的 history.push 操作会记录在报表 → 审计日志中,该日志提供了其他筛选选项(新增 Push 操作和 History 资源);在配置用户角色时,也可以在 API 方法的允许/拒绝列表中使用 history.push API 方法。
脚本
在 active agent 上执行脚本
现在可以在以 active 模式运行的 agent 上执行脚本。 当通过操作操作或手动脚本执行触发脚本执行后,该命令会包含在 active check 配置中,并在 active agent 接收到该命令后执行一次。
手动脚本会与服务器/proxy 的脚本执行超时时间一起发送到 active agent。 请增加默认的服务器/proxy脚本执行超时时间。 该超时时间必须高于 active check 刷新频率,否则在 active agent 接收脚本并能够返回结果之前,超时时间就会到期。
请注意,较旧版本的 active agent 会忽略 active checks 配置中包含的任何远程命令。 有关更多信息,请参阅被动和主动 agent 检查。
脚本的手动用户输入
前端脚本的手动用户输入允许在每次执行脚本时提供自定义参数。 这样可以避免仅因参数不同而创建多个类似的用户脚本。
例如,您可能希望在执行脚本期间向脚本提供不同的整数或不同的 URL 地址。
要启用手动用户输入:
- 在脚本中需要使用的位置(命令、脚本、脚本参数)使用 {MANUALINPUT} 宏;对于 URL 脚本,则在 URL 字段中使用;
- 在高级脚本配置中启用手动用户输入并配置输入选项:

启用用户输入后,在执行脚本之前,系统会向用户显示一个手动输入弹窗,要求用户提供自定义值。 提供的值将替换脚本中的 {MANUALINPUT}。
根据配置,系统会要求用户输入字符串值,或从预先确定的选项下拉列表中选择值。

性能
更快响应主机维护时段更新
以前,维护时段仅每分钟重新计算一次,因此启动或停止维护时段可能会有最长 60 秒的延迟。
现在,维护时段仍会每分钟重新计算一次;如果维护时段发生更改,则会在配置缓存重新加载后立即重新计算。
timer 进程每秒检查一次:配置更新后,维护时段是否发生更改,以及是否必须根据这些更改启动或停止维护时段。 因此,启动或停止维护时段的速度取决于配置更新间隔(默认为 10 秒)。 请注意,维护时段更改不包括 Active since/Active till 设置。 此外,如果将主机/主机组添加到现有的活动维护时段中,这些更改只有在下一分钟开始时才会由 timer 进程激活。
更快的权限检查
通过引入多个用于检查非特权用户权限的中间表,权限检查速度得到了显著提升。
这些表分别保存每个用户和主机的用户组集合与主机组集合的哈希值(SHA-256)。 此外,还有一个权限表,仅存储可访问的用户与主机组合,并通过哈希 ID 指定这些组合。
这项改进使加载权限检查较多的前端页面(即主机、问题)快得多。 请注意,不会为超级管理员用户计算哈希值和权限。
更快的触发器动作执行
Trigger action 操作、恢复操作以及 update 操作在 Zabbix server 上的状态更改后现在立即(不到 100 毫秒)执行,而以前用户可能会经历最多 4 秒的延迟。
延迟的减少是通过在多个 服务器进程类型与线程(升级器及其升级分发模块、升级器与告警器、预处理管理器与历史同步器)之间实现进程间通信(IPC)机制来实现的。
小组件
新版本中新增了多个小组件,同时增强了其他小组件的可用功能。 此外,仪表板小组件现在可以相互连接和通信,使小组件和仪表板更加动态。
Gauge
一个仪表盘 get 已被添加到 dashboard widgets,允许将单个 监控项 的值显示为仪表盘。 欲了解更多信息,请参见 Gauge。

饼图
一个饼图 widget 已被添加到 dashboard widgets,允许将选定的 监控项 值显示为:
- 饼图;
- 环形图。
![]() 饼图。 |
![]() 环形图。 |
更多信息,请参见 Pie chart。
作为此开发的一部分,在 图例 widget 配置中(在图例选项卡内)新增了一个显示聚合函数复选框。
Honeycomb
Honeycomb(蜂窝图)小部件get已添加到dashboard widgets,该功能提供了受监控网络基础设施和资源的动态且生动的概览。其中,主机组(如虚拟机和网络设备)及其各自的监控项以交互式六边形单元格的形式进行可视化展示。
有关更多信息,请参阅Honeycomb。

最高触发器
仪表板小组件中新增了最高触发器小组件,可用于查看问题数量最多的触发器。

有关更多信息,请参阅:最高触发器。
监控项历史记录和纯文本
新的监控项历史记录 仪表板小组件已取代纯文本小组件,并提供了多项改进。
与只能以纯文本显示最新监控项数据的纯文本小组件不同,监控项历史记录小组件支持针对多种监控项类型(数值、字符、日志、文本和二进制)的各种显示选项。 例如,它可以显示进度条或指示器、显示二进制数据类型的图像(适用于浏览器监控项),以及突出显示文本值(适用于日志文件监控)。
有关更多信息,请参阅监控项历史记录。 有关取代纯文本小组件的详细信息,请参阅7.0.0 升级说明。

主机 导航器和 监控项 导航器
主机 导航器 小组件和 监控项 导航器 小组件已添加到 dashboard widgets。 这些小组件分别根据各种过滤和分组选项显示 主机 或 监控项,并允许基于选定的 主机 或 监控项 控制其他小组件中显示的信息。 有关更多信息,请参见 Host navigator 和 Item navigator。

widget 的通信框架
Dashboard widget 现在可以相互连接和通信,使 widget 和 dashboard 更加动态。 多个 widget 具有参数,可在兼容的 widget 或 dashboard 之间共享配置数据。
此功能引入了以下更改:
- 主机组、主机 和 监控项 参数现在允许您选择相应的实体或提供这些实体的数据源。
- 启用主机选择 参数已替换为 覆盖主机 参数,该参数允许您选择提供主机的数据源。
- 多个 widget 新增了 时间段 参数,允许您选择提供时间段的数据源。
- Map widget 中的 Map 参数允许您选择地图或其他 widget 作为地图的数据源。
- Graph (classic) widget 中的 Graph 参数允许您选择图形或其他 widget 作为图形的数据源。
根据 widget 及其参数的不同,数据源可以是同一 dashboard 中的兼容 widget,也可以是 dashboard 本身。 有关更多信息,请参阅 Dashboard widgets。
有关 Zabbix 随附的标准模板的更改,请参阅 Template changes。
监控项值/主机排名小组件中的聚合时间段
现在还可以在监控项值小组件中显示所选时间段内的聚合值。 聚合值可以显示为:
- 最小值
- 最大值
- 平均值
- 计数
- 总和
- 第一个值
- 最后一个值
这些新增功能有助于创建数据比较小组件。 例如,您可以在一个小组件中显示最新值,同时在另一个小组件中显示较长时间段内的平均值。 或者,可以使用多个小组件并排比较过去不同时间段的聚合值。
模板仪表板上扩展的小组件可用性
之前,在 添加仪表板 上,你只能 create 以下小部件: 时钟、图表(经典)、图表原型、监控项 值、纯文本、URL。
现在模板仪表板支持创建所有小部件。
Top hosts 小组件中的扩展排序
现在,除了按 监控项值 排序外,还可以将 主机名 或 文本 列设置为 Top hosts 小组件中的排序列。
主机可用性小组件功能增强
主机可用性小组件现在支持显示具有 Zabbix agent(主动检查) 接口的主机。
新增了一种可用性状态,即 混合,表示至少有一个接口不可用,同时至少有一个接口可用或状态未知。
此外,还新增了仅查看主机总数而不按接口细分的功能。
图形组件中的变量图例大小
图形 widget现在支持根据配置的监控项数量来配置可变数量的图例行。
函数
新功能
在触发器表达式和计算 监控项 中新增了以下函数供使用:
- jsonpath() - 返回 JSONPath 结果;
- xmlxpath() - 返回 XML XPath 结果。
另请参阅:String functions
已更新的函数
多个函数已更新:
- 聚合函数现在也支持对非数值类型执行计算。 例如,这对于 count 和 count_foreach 函数可能很有用。
- count 和 count_foreach 聚合函数支持可选参数 operator 和 pattern,可用于微调监控项筛选,仅统计符合给定条件的值。
- 所有 foreach 函数 不再将不受支持的监控项计入统计结果。
- 函数 last_foreach 之前被配置为忽略时间段参数,现在支持将其作为可选参数。
- 预测函数返回值的支持范围已扩展为与 double 数据类型的范围一致。 现在,timeleft() 函数可接受最大为 1.7976931348623158E+308 的值,而 forecast() 函数可接受范围为 -1.7976931348623158E+308 至 1.7976931348623158E+308 的值。
监控项
统一的默认历史数据存储期限
前端和数据库中保留监控项历史数据的默认期限已统一为 31 天。 此更改会影响监控项、模板监控项和监控项原型配置表单,以及低级别发现中的历史数据存储期限覆盖设置。
整数监控项的小数值将被截去
现在,如果无符号整数监控项接收到浮点值,该值的小数部分将被截去,并以整数形式保存。 此前,浮点值会导致整数监控项变为不受支持。
Windows事件日志中的行数统计
一个新的 eventlog.count 监控项 已被添加到 Windows 上的 Zabbix agent/agent 2。
该 监控项 根据指定参数返回一个 integer 值,表示 Windows 事件日志中的行数统计。
异步单OID SNMP请求
新增了一个 get[OID] SNMP 监控项,允许针对单个 OID 值进行异步的 query。
内部监控项
内部检查现在由新的 internal poller Zabbix 服务器/proxy 进程处理。
已添加内部监控项,用于监控 proxy 内存缓冲区:
zabbix[proxy_buffer,buffer,<mode>]- 返回 proxy 内存缓冲区使用统计信息;zabbix[proxy_buffer,state,changes]- 返回自启动以来磁盘/内存缓冲区模式之间的状态变更次数;zabbix[proxy_buffer,state,current]- 返回当前工作状态,即新数据正在存储的位置。
还新增了以下内部监控项:
zabbix[discovery_queue]- 用于监控队列中的发现检查数量;zabbix[vps,written]- 用于监控写入数据库的历史值总数。
新增和更新的 agent 监控项
Zabbix agent/agent 2 中新增了以下监控项:
net.dns.perf监控项返回等待服务响应所用的秒数,用于统计net.dns监控项的执行时间。net.dns.getZabbix agent 2 监控项返回详细的 DNS 记录信息。
以下 Zabbix agent/agent 2 监控项已更新:
net.dns和net.dns.record监控项在执行反向 DNS 查询时,现在接受反向和非反向格式的 DNS 名称;- Linux 上处于“process”和“summary”模式的
proc.get监控项现在还会返回 PSS(比例集大小)内存; - Gentoo Linux 现在支持
system.sw.packages和system.sw.packages.get监控项; - 如果在 type 参数中指定了新的 fqdn 选项,
system.hostname监控项现在可以返回完全限定域名; - 与 Zabbix agent 2 一起使用的
wmi.get和wmi.getall监控项现在返回的 JSON 会将布尔值表示为字符串(例如,"RealTimeProtectionEnabled": "True",而不是之前返回的"RealTimeProtectionEnabled": true),以匹配这些监控项在 Zabbix agent 上的输出格式; oracle.ts.discoveryZabbix agent 2 监控项现在返回新的 {#CON_NAME} LLD 宏,其中包含容器名称;oracle.ts.statsZabbix agent 2 监控项新增 conname 参数,用于指定目标容器名称。
返回数据的 JSON 格式已更新。
当监控项键参数中未指定 tablespace、type 或 conname 时,返回的数据将包含一个额外的 JSON 层级,其中包含容器名称,从而可以区分不同的容器。
简单检查
vmware.eventlog 监控项现在支持在第三个参数中按严重性进行可选过滤。
vmware.vm.discovery 监控项现在还会返回虚拟机网络接口的数据。
这些数据可用于配置自定义主机接口。
vmware.vm.net.if.discovery 监控项现在还会返回网络接口地址数组。
以下监控项新增了 options 参数:
此参数可用于指定是否应将重定向的响应视为目标主机在线或目标主机离线。 有关更多详细信息,请参阅简单检查。
重复 SNMPv3 Engine ID 的日志记录
SNMPv3 中的 Engine ID 用作设备的唯一标识符。 由于配置错误或出厂设置,多个设备有时会使用相同的 Engine ID。 由于 SNMP 标准要求 Engine ID 必须唯一,共享相同 Engine ID 的监控项在 Zabbix 中会变为不受支持,从而导致这些设备出现可用性问题。
为帮助排查此类问题,Zabbix 服务器现在会定期记录共享相同 Engine ID 的 SNMPv3 设备相关信息。 请注意,重复 Engine ID 的检测在每个 SNMP poller 中分别进行。
每个标准的文档链接 监控项
每个标准 监控项 现在都拥有一个从前端直接链接到其文档页面的链接。

当从 监控项 配置表单打开 监控项 帮助窗口时(点击 监控项 键字段旁边的 Select),链接会显示在问号图标下方。
预处理
对不支持的监控项状态进行高级根因处理
此前,在获取监控项值失败(从而导致其变为不支持状态)时,错误处理无法区分失败原因或处理失败所处的运行阶段。
所有错误都必须使用同一个错误处理选项进行处理:丢弃该值、设置指定值,或设置指定的错误消息。
现在可以将错误消息与正则表达式进行匹配。
如果错误匹配(或不匹配)该正则表达式,则可以指定应如何处理这种错误情况。
例如,可以将特定错误消息“映射”为更一般的情况,以便后续预处理步骤进行匹配和处理;也可以将某些间歇性问题(例如网络连接问题)与确定性的监控项值获取失败区别处理。
现在可以添加多个 检查不支持的值 预处理步骤。
请注意,在用于探测监控项不支持状态的处理管道末尾,只能有一个“任意错误”匹配步骤。
如果存在该步骤,则当所有特定检查均未匹配(或未匹配)相应模式,或者错误消息已被传递(可能经过修改)时,该步骤会被激活——也就是说,没有任何“丢弃值”或“将值设置为”覆盖规则生效。

另请参阅:检查不支持的值
改进预处理步骤批量更新的易用性
之前的监控项批量更新表单设计不够清晰,用户无法明确预处理步骤更新是添加还是替换预处理步骤。 在新设计中,新增了 Replace 和 Remove all 单选按钮,让用户清楚了解预处理步骤批量更新的结果:

宏
监控项和监控项原型名称支持用户宏
现在,监控项名称和监控项原型名称支持用户宏。
请注意,Zabbix 6.0 移除了监控项/监控项原型名称中的用户宏支持。 现在已恢复该功能。 现在还支持搜索宏解析后的监控项名称,而此前不支持此功能。
宏解析后的监控项名称存储在单独的数据库表(item_rtname)中,该表是 items 表的扩展。
对于 items 表中的每条记录,都会创建对应的 item_rtname 记录(监控项原型、发现规则监控项和模板监控项除外)。
宏解析后的名称长度限制为 2048 个字符。
除数据采集部分外,所有前端位置均会显示宏解析后的监控项名称。
新增了 configuration syncer worker 服务器进程,负责解析并同步监控项名称中的用户宏值。
宏函数支持范围扩展
现在,所有类型的宏均支持宏函数:
宏函数可用于支持上述宏的所有位置。 但如果明确规定只能使用宏,则不适用此规则(例如,配置主机宏或低级别发现规则过滤器时)。
定时报告
scheduled reports 功能已不再是实验性功能。
多页报表
对于多页仪表板,现在返回的报表包含仪表板的所有页面,每个 PDF 页面对应一个仪表板页面。 此前,此功能仅限于返回第一个仪表板页面。
通知
内部事件的标签处理支持
现在也支持对 webhook 脚本返回的标签进行处理,适用于 内部事件。
此外,对于内部事件通知,现在也支持使用 {EVENT.TAGS.<tag name>}、{EVENT.TAGS}、{EVENT.TAGSJSON}、{EVENT.RECOVERY.TAGS} 和 {EVENT.RECOVERY.TAGSJSON} 宏。
这些更改允许通过内部事件恢复通知,使用 webhook 来更新或关闭外部的 问题/支持工单。
数据库
在 TimescaleDB 上将 auditlog 转换为 hypertable
在新安装中,auditlog 表已转换为 TimescaleDB 上的 hypertable,以便受益于按时间自动分区(默认 7 天)以及更好的性能。
要成功升级现有安装,请参见 升级 TimescaleDB 模式。
另请参见:支持的 TimescaleDB 版本
proxy 的独立数据库表
proxy 记录已从 hosts 表中移出,现在存储在新的 proxy 表中。
此外,proxy 的运行数据(例如上次访问时间、版本和兼容性)也已从 host_rtdata 表中移出,现在存储在新的 proxy_rtdata 表中。
进程
多线程
作为向多线程架构过渡的一部分,进行了以下更改:
- 新增了一个 configure 参数:
--with-stacksize。 此参数允许覆盖系统使用的默认线程堆栈大小(以千字节为单位)。 - 用户宏解析已从预处理管理器移至预处理工作进程。
服务器环境加固
现在可以限制部分 Zabbix 功能,以增强服务器环境的安全性:
- 可以在服务器配置中将
EnableGlobalScripts=0设置为禁用 Zabbix 服务器上的全局脚本执行。 对于新安装,Zabbix 服务器上的全局脚本执行默认处于禁用状态。 - 可以在前端配置文件(zabbix.conf.php)中将
$ALLOW_HTTP_AUTH=false设置为禁用用户 HTTP 身份验证。 - 现在可以在新的 SMSDevices 参数中指定用于 SMS 通知的 GSM 调制解调器,从而限制从前端错误配置 GSM 调制解调器路径的可能性。
配置文件验证
Zabbix 服务器、proxy、agent、agent 2 和 web service 的维护命令现已支持配置文件验证。 可以使用 -T --test-config 选项执行验证。 验证成功时,退出代码为 "0";否则,组件将以非零退出代码退出,并显示相应的错误消息。 警告(例如使用已弃用的参数时)不会影响成功退出代码。
在运行时检测 cURL 库功能
以前,cURL 库功能是在构建 Zabbix 服务器、proxy 或 agent 时检测的。 如果 cURL 功能得到升级,则必须重新编译相应的 Zabbix 组件才能使用这些功能。
现在,只需重启即可在 Zabbix 中启用升级后的 cURL 库功能。 不再需要重新编译。 这适用于 Zabbix 服务器、proxy 和 agent。
另请参阅升级说明。
Agent 2 配置
缓冲区大小
Zabbix agent 2 的 BufferSize 配置参数的默认值已从 100 增加到 1000。
允许空值
现在在 Zabbix agent 2 上的插件相关配置参数中允许使用空值。
设置 Windows agent 服务的启动类型
已添加设置 Zabbix 选项/选项 Windows 服务(-S --startup-type)启动类型选项。
该选项允许将 agent/agent 2 服务配置为在 Windows 启动时自动启动(automatic),在自动启动的服务完成启动后启动(delayed),由用户或应用程序手动启动(manual),或完全禁用该服务(disabled)。
在执行 Windows agent installation from MSI 时,Windows Server 2008/Vista 及更高版本的默认启动类型为 delayed,除非在 STARTUPTYPE 从命令行安装 中另行指定。
这提高了 Zabbix agent/agent 2 Windows 服务的可靠性与性能,特别是在系统重启期间。
旧数字类型的支持已移除
旧式的浮点数值格式(之前已弃用)不再受支持,因为现在使用的是扩展范围的数值类型。
配置文件中新增了Vault前缀参数
配置文件 zabbix_server.conf 和 zabbix_proxy.conf 已补充了一个新的可选参数 Vault Prefix;zabbix.conf.php 已补充可选参数 $DB['VAULT_PREFIX'],并且 setup.php 也已相应更新。
因此,CyberArk 和 HashiCorp 的 vault 路径不再硬编码,以支持使用非标准路径的 vault 部署。
发现
网络发现中的并发
以前,每个网络发现规则都由一个 discoverer 进程处理。因此,该规则中的所有服务检查只能按顺序执行。
在新版本中,网络发现进程经过重新设计,支持服务检查之间的并发执行。新增了一个发现管理器进程,以及可配置数量的发现工作进程(或线程)。
发现管理器处理发现规则,并为每条规则创建一个包含任务(服务检查)的发现作业。发现工作进程获取并执行这些服务检查。只有 IP 和端口相同的检查会按顺序调度,因为某些设备可能不允许在同一端口上建立并发连接。
新增的 zabbix[discovery_queue] 内部监控项可用于监控队列中的发现检查数量。
StartDiscoverers 参数现在用于确定发现功能可用的发现工作进程总数。StartDiscoverers 的默认值已从 1 提高到 5,取值范围也从 0-250 扩大到 0-1000。之前 Zabbix 版本中的 discoverer 进程已被移除。
此外:
- 除 LDAP 检查外,所有服务检查现在都以异步方式执行;
- 现在可以在前端中配置每种服务检查类型的同时异步检查数量(或所有同步服务检查可用的工作进程数量)(请参阅每种类型的最大并发检查数)。此参数为可选参数。
- 以前,HTTP 服务检查与 TCP 检查相同。现在,HTTP/HTTPS 检查通过 libcurl 执行。如果 Zabbix 服务器/proxy 在编译时未启用 libcurl,则 HTTP 检查将按照以前的方式工作(即作为 TCP 检查),但 HTTPS 检查将无法工作。
- 网络发现进程中的错误现在会显示在前端中(位于数据采集 > 发现),例如:
- fping 错误;
- SNMP OID 不正确;
- 监控项超时宏不正确;
- 地址范围错误。
在发现/自动注册期间添加 主机 标签
发现和自动注册事件现在支持以下附加操作:
- 添加 主机 标签
- 移除 主机 标签
共享发现的 主机 组
现在,低级别自动发现规则可以将已经发现并存在的主机组链接到由同一低级别自动发现规则创建的主机。 这会影响之前由其他基于指定配置的低级别自动发现规则发现并创建的主机组。
连接器
data streaming 功能已不再是实验性功能。
流式选择性数据并配置尝试间隔
当从 Zabbix 向外部系统流式传输 监控项值 时,现在可以配置连接器根据信息类型(数值(无符号)、数值(float)、字符等)来流式传输哪些 监控项值。
此外,为了避免因流式传输 监控项值 或事件失败(例如 HTTP 端点繁忙或受到速率限制)而导致的尝试失败,现在还可以配置尝试间隔——即连接器在一次流式传输数据失败后应等待的时间。
现在,连接器也将 201、202、203 和 204 HTTP 响应代码视为成功(以前仅接受 200)。
将数据流传输到 Apache Kafka
一种用于将 streaming 数据发送到外部系统的新工具 —— Kafka connector for Zabbix server,现已推出。 Kafka 连接器是一款使用 Go 编写的轻量级服务器,用于将 监控项值 和事件从 Zabbix server 转发到 Kafka 代理。
模板
有关新模板以及现有模板的更改,请参阅模板更改。
前端
多因素认证
通过使用基于时间的一次性密码(TOTP)或Duo通用提示认证方式的多因素认证(MFA),现在可以用于登录Zabbix,从而在用户名和密码之外提供额外的安全保护层。Multi-factor authentication
美国时间格式
当使用默认(en_US)前端语言时,前端的时间和日期显示现在符合美国标准的时间/日期显示。
| 之前 | 现在 |
|---|---|
![]() |
![]() |
克隆简化
之前可以对 概述、创建模板 和 创建地图 执行 克隆 和 完整克隆 操作。
现在 克隆 选项已被移除,完整克隆 选项已重命名为 克隆,同时仍保留了之前 完整克隆 的所有功能。
图标由字体替换
前端中的所有图标已从图标图像集切换为字体。
模态表单
现在,多个前端表单会在模态(弹出)窗口中打开:
可折叠的高级配置
负责显示高级配置选项的高级配置复选框已替换为可折叠区块(例如,请参阅连接器配置、服务配置、时钟小组件配置等)。
这改善了用户体验,因为折叠这些区块并保存配置后,不会再将已配置的高级选项重置为默认值。
Top触发器的改进菜单部分
查看Top触发器的菜单部分现在命名为 Top 100 triggers。 已添加按问题名称和标签过滤触发器的功能。 此外,现在每个触发器显示的是检测到的问题数量,而不是状态更改次数。
配置字段的字符数限制增加
URL 字段
现在,所有 URL 字段的字符数限制均为 2048 个字符。 这包括与地理地图相关设置中的 Tile URL、 用于配置其他前端参数的 Frontend URL、 网络地图和网络地图元素中的 URLs、 主机资产清单字段中的 URL A-C, 以及 URL 仪表板小组件中的 URL。
身份验证字段
身份验证字段 User/User name 和 Password 的字符数限制现在为 255 个字符。 这适用于为 HTTP agent 监控项、Web 场景和连接器配置 HTTP 身份验证, 以及为简单检查、 ODBC 监控、 SSH 检查、 Telnet 检查 和 JMX 监控配置身份验证。
监控项和预处理测试结果截断
在测试监控项或测试预处理步骤时,从主机获取的值和测试结果在发送到前端时,现在会截断为最大 512KB 的大小。 请注意,超过 512KB 的数据仍会由 Zabbix 服务器完整处理。
主机 仪表盘标签页
选定的主机下配置的所有host dashboards现在显示在主机仪表板页面标题下的标签中,替换了之前右上角的下拉菜单。 这使得在不同的主机仪表板之间切换更加方便,并改善了监控数据的浏览导航。
审计日志
在管理 > 审计日志中,现在可以启用/禁用由服务器(System 用户)执行的低级别发现、网络发现和自动注册活动的审计日志记录。
审计日志记录在被 housekeeper 删除前的默认保存期限已从 365 天更改为 31 天。
最新数据筛选器
在监控 > 最新数据中,如果未设置筛选器,则默认不再显示子筛选器和数据。
如果从之前的 Zabbix 版本升级,请另请参阅:7.0.0 升级说明。
最低要求的 PHP 版本
PHP 的最低要求版本 version 已从 7.4.0 提升至 8.0.0。
重命名的元素
- 某些带有 Tags 标签的 dashboard widget 参数已重命名以提高清晰度: 监控项标签(用于 Data overview 小组件)、Scenario tags(用于 Web monitoring 小组件); Problem tags(用于 Graph、Problem 主机、Problems、Problems by severity 和 Trigger overview 小组件);
- 在 Monitoring → Maps 部分的地图列表中,用于编辑地图内容的操作链接已从 Constructor 重命名为 Edit;
- 在 配置 和 item prototype 配置表单中,用于设置历史和趋势存储周期的字段已重命名;
- 在 Top 主机 小get 配置 中,字段 Order column 和 主机 count 已重命名为 Order by 和 主机 limit,以更好地描述其功能。
- 在 Graph 小get 配置中,图例 字段 Display min/max/avg 已重命名为 Display min/avg/max,而 数据集 字段 主机 pattern 和 监控项 pattern 已重命名为 主机 patterns 和 监控项 patterns。
- 在 用户资料 设置中,Messaging 标签页已重命名为 Frontend notifications,其中的 Frontend messaging 选项也已重命名为 Frontend notifications。
其他
- 主菜单图标已更新;
- 已更新用于指示没有数据或未设置筛选条件的消息(适用于没有可显示数据的部件或弹出式筛选器)。 此外,在没有可显示数据,或筛选(或使用全局搜索)无匹配结果时,已移除“显示找到的 0 条,共 0 条”页脚;
- Zabbix 前端和 Zabbix 服务器的版本号现在可在系统信息页面中查看;
- 现在,媒体类型列表中的用于操作列会显示使用该媒体类型的所有操作。 以前,在操作配置的操作步骤中,仅发送到 选项设置为“全部”的操作不会包含在媒体类型的用于操作列中;
- 最新数据部分新增筛选选项:现在可以按监控项状态(支持/不支持)筛选监控项;
- 问题部分新增确认状态筛选选项:现在可以按问题状态(未确认/已确认/我确认的)筛选问题;
- 用于配置和批量更新地图元素及形状的弹出窗口新增标准窗口关闭按钮;
- 已改进用户组权限以及用于筛选可查看问题的标签配置。 现在可以同时选择多个主机组/模板组,为其分配相同的权限;
- 在一个浏览器中暂停全局通知后,用户登录的所有其他浏览器/设备中的全局通知也会暂停;
- 为提升易用性,监控项值部件中的覆盖主机参数已移至高级配置部分之前。
插件
Ember+
新增了一个用于直接监控Ember+的插件,由Zabbix agent 2提供支持。
更多信息请参阅:
安装
RHEL 衍生发行版的独立安装包
AlmaLinux、CentOS Stream、Oracle Linux 和 Rocky Linux 的 8 和 9 版本均提供专用的安装包。
此前,RHEL 及基于 RHEL 的发行版使用统一的安装包。
现在,RHEL 及上述各衍生发行版分别使用独立的软件包,以避免潜在的二进制不兼容问题。
支持 ARM64/AArch64 架构
ARM64/AArch64 安装包现已适用于 Debian、RHEL 8、9 及其衍生版本,以及 SLES/OpenSUSE Leap 15。



