Table of Contents

5 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 poller
  • http agent poller
  • snmp 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 负载均衡 和高可用性

Proxy 负载均衡 通过在 Zabbix 中引入 proxy 组 来实现。proxy 组 提供了 主机 在 proxies 之间的自动分配、proxy 的负载重新平衡以及高可用性——当某个 proxy 下线时,其 主机 会立即分配给组内的其他 proxies。

更多信息,请参见 proxy load balancing and high availability

Proxy 内存缓冲区

为 Zabbix proxy 开发了一个 memory 缓冲区。memory 缓冲区允许存储新数据(监控项值、网络发现、主机 自动注册) 在缓冲区中并上传到 Zabbix server,而无需访问数据库。

在 Zabbix 7.0 之前的安装版本中,收集的数据在上传到 Zabbix server 之前会被存储在数据库中。对于这些安装版本 升级后,此行为仍然是默认行为。

为优化性能,建议在proxy上配置使用memory缓冲区。这可以通过修改来实现 从“disk”(现有安装的硬编码默认值)的 proxybuffermode 值 设置为“hybrid”(推荐)或“memory”。同时还需要设置memory缓冲区大小(proxymemorybuffersize参数)。

在混合模式下,如果 proxy 停止,则通过将未发送的数据刷新到数据库中来防止缓冲区数据丢失。 缓冲区已满或数据过旧。当所有值都被刷新到数据库后,proxy 将恢复使用 memory 缓冲区。

在 memory 模式下,将使用 memory 缓冲区,但是,无法防止数据丢失。如果 proxy 被停止,或者 当 memory 被填满时,未发送的数据将被丢弃。

混合模式(ProxyBufferMode=hybrid)自 Zabbix 7.0 起应用于所有新安装。

附加参数,如 proxymemorybuffersizeproxymemorybufferage 分别定义 memory 缓冲区大小和缓冲区中数据的最大保留时间。

新增了内部 监控项 已添加 以监控 proxy memory 缓冲区。

JIT用户供应

以前预配置的用户仅限于在预配置期间创建的媒介,无法灵活编辑诸如工作时间或严重程度等属性。

现在,Zabbix 中为预配置用户提供了更多的灵活性:

  • 可以禁用/启用预配置的 用户资料
  • 预配置用户 用户媒介(例如 When activeUse if severityEnabled)可以手动编辑;
  • 可以为预配置用户手动添加额外的用户媒介(例如,额外的电子邮件地址);
  • 可以删除手动添加的用户媒介(不能删除预配置的用户媒介)。

此外,在配置用户媒介映射以用于预配置时,现在可以使用诸如 When activeUse if severityEnabled 等字段。请注意,对用户媒介类型映射表单的更改仅对预配置期间创建的新媒介生效。

每个监控项可配置的超时时间

每个 监控项 的超时配置现在支持更多的 监控项 类型(参见 超时 监控项 类型)。 除了在 监控项 级别设置超时值之外,还可以为各种 监控项 类型定义 超时添加-proxies 超时。

在 监控项 级别配置的超时具有最高优先级。 默认情况下,全局超时应用于所有 监控项;但是,如果设置了 proxy 超时,则它们将覆盖全局超时。

Oracle DB 已弃用

对 Oracle 作为后端数据库的支持已被弃用,并预计在未来的版本中完全移除。

被动 agent 检查的 JSON 协议

已实现基于 JSON 的 被动检查 协议。

为兼容旧版 agents,已添加故障转移至旧版明文协议的功能。如果 agent 返回 "ZBX_NOTSUPPORTED",Zabbix 将缓存该接口为旧协议,并通过仅发送明文 监控项 键来重试检查。

Zabbix get 现在可以使用新选项 -P --protocol <value> 进行 run,其中 "value" 可以为以下任意值:

  • auto - 使用JSON协议自动连接,失败后回退并使用明文协议重试(默认);
  • json - 使用JSON协议密钥进行连接;
  • 明文 - 使用明文协议连接,仅发送 监控项 密钥。

如果不支持某个 监控项 键,则 Zabbix get 将返回退出代码 1

统一的 agent/agent2 协议

Zabbix agent 和 agent 2 协议已通过将 Zabbix agent 切换到 Zabbix agent 2 协议实现统一。Zabbix agent 与 Zabbix agent 2 请求/响应之间的区别通过 "variant" 标签值来表示("1" - Zabbix agent,"2" - Zabbix agent 2)。

另请参阅:Passive and active agent checks

主动检查中的灵活/调度间隔支持

主动检查现在由 Zabbix agent 和 Zabbix agent 2 都支持灵活/调度间隔(之前仅支持 Zabbix agent 2)。

丢失资源的自动禁用

不再被低级别自动发现发现的资源现在可以自动禁用。它们可以立即被禁用、在指定的时间段后被禁用,或者永不被禁用(请参阅发现规则中的新参数 Disable lost resources(禁用丢失的资源) 发现规则)。

丢失的资源(主机、监控项、触发器)会在信息列中通过一个图标进行标记。工具提示文本会提供有关其状态的详细信息。

在相同的开发版本中,保留丢失资源周期 参数已重命名为 删除丢失资源,并提供了 delete 立即、在指定时间周期后或从不的选项。

脚本的手动用户输入

前端脚本的手动用户输入功能允许在每次执行脚本时提供自定义参数。这避免了因单个参数不同而必须创建多个相似用户脚本的需要,即无需再使用 create 创建多个类似脚本。

例如,你可能希望在执行脚本时提供不同的 integer 或不同的 URL 地址。

要启用手动用户输入:

  • 在脚本中需要的位置(命令、脚本、脚本参数)使用 {MANUALINPUT} 宏;或在 URL 脚本的 URL 字段中使用;
  • 高级配置 中,启用手动用户输入并配置输入选项:

启用用户输入后,在执行脚本前将弹出一个 手动输入 对话框,提示用户提供一个自定义值。该值将替换脚本中的 {MANUALINPUT}。

根据配置,用户将被要求输入一个 string 值,或从预定义选项的下拉列表中选择一个值。

通过 Zabbix API 将数据发送到 Zabbix server

以前,使用 Zabbix sender 工具或通过实现自定义的基于 JSON 的 communication protocol(类似于 Zabbix sender 中使用的协议),可以将特定数据发送到 Zabbix server。

现在,还可以使用 HTTP 协议通过 history.push 的 API 方法将数据发送到 Zabbix server。
请注意,接收发送的数据需要配置 trapper item 或启用捕获功能的 HTTP agent item

此外,发送数据 history.push 操作会被记录在 报告Audit log 中,该报告具有额外的过滤选项(新增的 推送 操作和 历史记录 资源),
并且在配置了 配置 的 API 方法的 允许/拒绝列表 中,也提供了 history.push 的 API 方法。

性能

更快地响应 主机 维护周期更新

之前,维护仅每分钟重新计算一次,导致启动或停止维护时段时可能会有最长 60 秒的延迟。

现在,维护仍然每分钟重新计算一次,但如果维护时段有更改,则会在配置重新加载时立即重新计算 configuration cache。

每个秒级,定时器进程都会检查是否必须基于配置更新后对 维护周期 的更改来启动或停止任何维护。因此,启动/停止维护时段的速度取决于配置刷新间隔 update interval(默认为 10 秒)。请注意,维护时段的更改不包括 Active since/Active till 设置。此外,如果向现有的活动维护时段中添加了 一个主机/主机组,则这些更改仅会在下一分钟开始时由定时器进程激活。

更快的权限检查

通过引入几个中间表来检查非特权用户的权限,权限检查的速度得到了大幅提升。

这些表分别存储了用户组集合和主机组集合的哈希值(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

Top 触发器

一个Top触发器 widget已被添加到dashboard widgets, 允许查看问题数量最多的触发器。

更多信息,请参见:Top triggers

监控项 历史记录与纯文本

新的 监控项 历史 dashboard widget 已取代 纯文本 小部件,提供了多项改进。

与仅以纯文本形式显示最新 监控项 数据的 纯文本 小部件不同,监控项 历史 widget 支持多种 监控项 类型(数值、字符、日志、文本和二进制)的多种显示选项。 例如,它可以显示进度条或指示器、二进制数据类型的图像(适用于 browser items),并高亮显示文本值(适用于 log file monitoring)。

有关更多信息,请参见 Item history。 有关 纯文本 小部件替换的详细信息,请参见 监控项-历史记录和平面文本控件

主机 导航器和 监控项 导航器

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

小部件的通信框架

仪表盘小部件现在可以相互连接和通信,使小部件和仪表盘更加动态。 多个小部件具有参数,这些参数使它们能够在兼容的小部件或仪表板之间共享配置数据。

此功能引入了以下更改:

  • 主机 组主机监控项 参数允许您选择相应的实体或提供这些实体的数据源。
  • 启用 主机 选择 参数已被替换为 覆盖 主机 参数,该参数允许您选择一个提供 主机 的数据源。
  • 已向多个小部件添加时间周期参数,该参数允许您选择提供时间周期的数据源。
  • 地图参数在地图小部件get中允许选择一个地图或另一个小部件get作为地图的数据源。
  • Graph 参数在 Graph (classic) widget 中允许选择一个图表或其他 widget 作为图表的数据源。

根据widget及其参数的不同,数据源可以是同一仪表板中的兼容widget,也可以是仪表板本身。 更多信息,请参见 动态参数

有关随 Zabbix 一起提供的库存模板的更改,请参阅模板更改

聚合时间周期在 监控项 值/Top 主机 小部件中

时间周期现在可以在Item valueTop hosts小部件中配置。

现在还可以在选定时间段内的监控项值小部件get中显示聚合值。聚合值可以显示为:

  • 最小值
  • 最大值
  • 平均值
  • 次数
  • 总和
  • 第一项
  • 最近

这些新增的功能对于创建数据对比小部件非常有用。例如,在一个widget中,您可以显示最新值,而在另一个小部件中显示较长时间段的平均值。或者,也可以使用多个小部件并排对比过去不同时间段的聚合值。

模板仪表板上扩展的小组件可用性

之前,在 添加仪表板 上,你只能 create 以下小部件: 时钟图表(经典)图表原型监控项 值纯文本URL

现在模板仪表板支持创建所有小部件。

Top 主机 小部件中的扩展排序

现在,除了可以根据监控项值进行排序外,还可以在Top 主机小部件中将主机名文本列设置为排序列。

可用性小部件的主机功能增强

Host availability widget 现在允许显示带有 主机(主动检查) 接口的 Zabbix agent。新增加了一个可用性状态 Mixed,用于表示至少有一个接口不可用,且至少有一个接口的状态为可用或未知的情况。此外,还新增了仅显示 主机 总数的功能,无需按接口进行细分。

图形组件中的变量图例大小

图形 widget现在支持根据配置的监控项数量来配置可变数量的图例行。

函数

新功能

在触发器表达式和计算 监控项 中新增了以下函数供使用:

另请参阅:String functions

更新的功能

以下功能已更新:

  • 聚合函数现在也支持非数值类型的计算。例如,这在使用 count附加参数 函数时可能很有用。
  • 聚合函数 count附加参数 支持可选参数 operatorpattern,可用于微调 监控项 过滤,并且仅统计符合给定条件的值。
  • 所有 foreach functions 不再包含不支持的 监控项 在统计中。
  • 函数 时间段 之前配置为忽略时间周期参数,现在将其作为可选参数接受。
  • prediction functions 返回值的支持范围已扩展,以匹配 double 数据类型的范围。 现在 timeleft() 函数可以接受高达 1.7976931348623158E+308 的值,而 forecast() 函数可以接受从 -1.7976931348623158E+308 到 1.7976931348623158E+308 的值。

监控项

统一的默认历史数据存储周期

在前端和数据库中,默认保留 监控项 历史的周期已统一为 31 天。此更改影响 监控项、模板 监控项 以及 监控项 原型配置表单,还包括低级别自动发现中的历史存储周期覆盖设置。

浮点值针对 integer 和 监控项 进行截断处理

现在,如果接收到浮点数值用于无符号的 整数监控项, 该数值的小数部分将被截断,并作为 integer 保存。 此前,浮点数值会使 整数监控项 变为不支持状态。

Windows事件日志中的行数统计

一个新的 eventlog.count 监控项 已被添加到 Windows 上的 Zabbix agent/agent 2。 该 监控项 根据指定参数返回一个 integer 值,表示 Windows 事件日志中的行数统计。

异步单OID SNMP请求

新增了一个 get[OID] SNMP 监控项,允许针对单个 OID 值进行异步的 query。

内部 监控项

内部检查现在由新的 internal poller Zabbix 服务器进程类型与线程/proxy-进程类型与线程 进程处理。

新增了内部 监控项 以监控 proxy memory 缓冲区

还新增了以下内部 监控项:

新增和更新的 agent 监控项

新 监控项 已添加到 Zabbix agent/agent 2:

  • net.dns.perf 监控项 返回等待服务响应所花费的秒数,用于对 net.dns 监控项 执行的计时。
  • net.dns.get Zabbix agent 2 监控项 返回详细的 DNS 记录信息。

以下 Zabbix agent/agent 2 监控项 已更新:

  • net.dnsnet.dns.record 监控项 在执行反向 DNS 查找时现在接受以反向和非反向格式表示的 DNS 名称;
  • proc.get 监控项 在 "process" 和 "summary" 模式下现在也会在 Linux 上返回 PSS(比例分配集大小)memory;
  • system.sw.packagessystem.sw.packages.get 监控项 现在在 Gentoo Linux 上受支持;
  • system.hostname 监控项 现在可以在 type 参数中指定新的 fqdn 选项时返回完全限定域名(FQDN);
  • wmi.getwmi.getall 监控项 在与 Zabbix agent 2 一起使用时,现在返回的 JSON 中将 boolean 值表示为字符串(例如,返回 "RealTimeProtectionEnabled": "True" 而不是之前返回的 "RealTimeProtectionEnabled": true),以匹配这些 监控项 在 Zabbix agent 上的输出格式;
  • oracle.ts.discovery Zabbix agent 2 监控项 现在返回一个新的 {#CON_NAME} LLD 宏,包含容器名称;
  • oracle.ts.stats Zabbix agent 2 监控项 增加了一个新的 conname 参数,用于指定 target 容器名称。 返回数据的JSON格式已更新。 当键参数中未指定表空间(tablespace)、类型(type)或连接名(conname)时,返回的数据将包含一个带有容器名称的额外JSON层级,从而允许区分不同的容器。

简单检查

vmware.eventlog 监控项 现在支持在第三个参数中按严重性进行可选过滤。

vmware.vm.discovery 监控项 现在也 returns 虚拟机网络接口的数据。
该数据可用于配置自定义的 主机-接口

vmware.vm.net.if.discovery 监控项 现在也 returns 网络接口地址的 array。

以下 监控项 中新增了一个 options 参数:

该参数可用于指定是否将重定向的响应视为 target 主机 上或 target 主机 下。
详细信息请参见 simple checks

SNMPv3引擎ID重复的日志记录

SNMPv3中的引擎ID用作设备的唯一标识符。有时由于配置错误或出厂设置,多个设备中的引擎ID可能相同。由于SNMP标准要求引擎ID必须唯一,因此监控项共享相同引擎ID的设备在Zabbix中将不受支持,从而导致与这些设备的可用性问题问题。

为了帮助排查此类问题,Zabbix server现在将定期记录共享相同引擎ID的SNMPv3设备的信息。请注意,重复引擎ID的检测是在每个SNMP轮询器中单独进行的。

每个标准的文档链接 监控项

每个标准 监控项 现在都拥有一个从前端直接链接到其文档页面的链接。

当从 监控项 配置表单打开 监控项 帮助窗口时(点击 监控项 键字段旁边的 Select),链接会显示在问号图标下方。

预处理

不支持的 监控项 状态的高级根本原因处理

在无法检索 监控项 值(从而导致其变为不支持的状态)的情况下,此前的错误处理机制缺乏区分失败原因或运行阶段的能力。所有错误都只能使用同一个错误处理选项进行处理——即要么丢弃该值,设置为指定值,或设置为指定的错误信息。

现在可以将错误信息与正则表达式进行匹配。如果错误信息匹配(或不匹配),就可以指定该错误情况应如何处理。例如,可以将特定的错误信息“映射”为更通用的情况,以便后续的预处理步骤进行匹配和处理;或者可以将某些间歇性(例如网络连接)的 问题 与获取 监控项 值的明确失败区别对待。

现在可以添加多个“检查不支持的值”预处理步骤。请注意,在整个预处理流程的最后只能有一个“任意错误”匹配步骤,用于探测 监控项 的不支持状态。如果存在该步骤,则当没有任何特定检查(不)匹配相应模式,或者(修改后的)错误信息被传递过来时(即没有“丢弃值”或“设置值为”覆盖生效),该步骤将被激活。

另请参阅:Check for not supported value

预处理步骤批量更新的可用性优化

监控项 的先前设计在包含预处理步骤 update 时,其大规模表单的 update 的 clear 能力尚显不足。 将添加或替换预处理步骤。在新设计中,替换移除所有 单选按钮已添加,使用户能够了解预处理步骤 mass update 的结果是什么样子的 clear:

用户宏支持在监控项和监控项原型名称中

现在支持在监控项名称和监控项原型名称中使用用户宏。

请注意,在Zabbix 6.0版本中,从监控项/监控项原型名称中移除了对用户宏的支持,现在该功能已恢复。同时,现在还支持使用已解析的宏搜索监控项名称,此前不支持此功能。

包含已解析宏的监控项名称存储在一个单独的数据库表中(item_rtname),这是对监控项表的扩展。对于监控项表中的每条记录,都会创建一条对应的item_rtname记录(监控项原型、发现规则监控项和模板监控项除外)。包含已解析宏的名称限制为2048个字符。

包含已解析宏的监控项名称在所有前端位置显示,数据收集部分除外。

新增了一个configuration syncer worker服务器进程,负责解析和同步监控项名称中的用户宏值。

宏函数的扩展支持

Macro functions 现在支持所有类型的宏:

宏函数可以在所有支持列出宏的地方使用。 除非明确说明仅支持宏(例如,在配置 配置 或低级别自动发现规则的 过滤器 时),则不适用此规则。

定时报告

scheduled reports 功能已不再是实验性功能。

多页报表

对于多页仪表板,现在报告会返回仪表板的所有页面,每个PDF页面对应一个仪表板页面。此前,此功能仅限于返回第一个仪表板页面。

通知

主动 agents 上的远程命令

现在可以在以version 7方式运行的0上execute remote commands,该模式为agent。 一旦远程命令的执行由某个动作 operation 或手动 script 执行触发, 该命令将包含在主动检查配置中,并在主动 agent 接收到它时执行。 请注意,旧版本的主动 agents 将忽略主动检查配置中包含的任何远程命令。 更多信息,请参见 主动检查

内部事件的标签处理支持

现在也支持对 webhook 脚本返回的标签进行处理,适用于 内部事件

此外,对于内部事件通知,现在也支持使用 {EVENT.TAGS.<tag name>}、{EVENT.TAGS}、{EVENT.TAGSJSON}、{EVENT.RECOVERY.TAGS} 和 {EVENT.RECOVERY.TAGSJSON} 宏。

这些更改允许通过内部事件恢复通知,使用 webhook 来更新或关闭外部的 问题/支持工单。

数据库

将审计日志转换为TimescaleDB的超表

在新安装中,auditlog 表已转换为 TimescaleDB 上的超表(hypertable),以受益于基于时间的自动分区(默认按 7 天)和更好的性能。

要成功升级现有安装,请参阅 升级timescaledb架构

另请参见:第三方外部配套软件

为 proxies 使用单独的数据库表

Proxy 记录已从 hosts 表中移出,现在存储在新的 proxy 表中。

此外,proxies 的操作数据(例如上次访问时间、版本、兼容性)也已从 host_rtdata 表中移出,现在存储在新的 proxy_rtdata 表中。

进程

多线程

向多线程架构过渡过程中进行了以下更改:

  • 新增了一个配置参数:--with-stacksize。该参数允许覆盖系统使用的默认线程栈大小(以千字节为单位)。
  • 用户宏解析已从预处理管理器移至预处理工作进程。

服务器环境加固

现在可以限制某些 Zabbix 功能以强化服务器环境的安全性:

  • 在 Zabbix server 上禁用全局脚本执行:通过在服务器配置中设置 EnableGlobalScripts=0。对于新安装的环境,默认情况下在 Zabbix server 上禁用全局脚本执行。
  • 通过在前端配置 file (zabbix.conf.php) 中设置 $ALLOW_HTTP_AUTH=false,可以禁用用户 HTTP 认证。
  • 用于 SMS 通知的 GSM 调制解调器现在可以在新的 smsdevices 参数中指定,从而限制从前端错误配置 GSM 调制解调器路径的可能性。

配置文件验证

Zabbix的维护命令中新增了配置file验证功能,涉及的命令包括: serverproxyagentagent 2web service。 可以使用 -T --test-config 选项进行验证。 如果验证成功,退出码将是 "0";否则,组件将以非零退出码退出,并显示相应的错误信息。对于警告信息(例如使用了已弃用的参数),不会影响退出码的成功状态。

在运行时检测 cURL 库特性

此前,在构建 Zabbix server、proxy 或 agent 时检测 cURL 库的功能。如果升级了 cURL 功能,则必须重新编译相应的 Zabbix 组件才能使用这些功能。

现在,升级 cURL 库功能后,仅需重启即可在 Zabbix 中使用这些功能。不再需要重新编译。这适用于 Zabbix server、proxy 或 agent。

另请参阅 upgrade notes

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.confzabbix_proxy.conf 已补充了一个新的可选参数 Vault Prefixzabbix.conf.php 已补充可选参数 $DB['VAULT_PREFIX'],并且 setup.php 也已相应更新。

因此,CyberArkHashiCorp 的 vault 路径不再硬编码,以支持使用非标准路径的 vault 部署。

发现

网络发现中的并发性

之前每个网络发现规则均由一个发现器(discoverer)进程处理。因此,规则内的所有服务检查只能按顺序执行。

在新的 version 中,网络发现流程已重构,以允许服务检查之间的并发执行。新增了一个发现管理器(discovery manager)进程以及可配置数量的发现工作进程(或线程)。

发现管理器处理发现规则,并为每个规则创建一个包含任务(服务检查)的发现作业。服务检查由发现工作进程拾取并执行。只有具有相同 IP 和端口的检查会按顺序调度,因为某些设备可能不允许在相同端口上进行并发连接。

新增的 zabbix[discovery_queue] 内部 监控项 可用于监控队列中发现检查的数量。

启动发现进程 参数现在用于确定发现可用的总发现工作进程数。默认的 StartDiscoverers 数量已从 1 提升至 5,范围也从 0-250 扩展至 0-1000。旧版本中的 discoverer 进程已被移除。

此外:

  • 除 LDAP 检查外,所有服务检查现在均 异步 执行;
  • 每种服务检查类型的并发异步检查数量(或所有同步服务检查的可用工作进程数)现在可在 frontend 中配置(参见 Maximum concurrent checks per type)。该参数为可选参数;
  • HTTP 服务检查之前与 TCP 检查相同。现在 HTTP/HTTPS 检查通过 libcurl 实现。如果 Zabbix server/proxy 在未编译 libcurl 的情况下编译,则 HTTP 检查将像以前一样工作(即作为 TCP 检查),但 HTTPS 检查将无法工作;
  • 网络发现流程中的错误现在将在前端显示(在 Data collection -> Discovery 中),例如:
    • 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)前端语言时,前端的时间和日期显示现在符合美国标准的时间/日期显示。

之前 现在

克隆简化

之前可以对 概述创建模板创建地图 执行 克隆完整克隆 操作。

现在 克隆 选项已被移除,完整克隆 选项已重命名为 克隆,同时仍保留了之前 完整克隆 的所有功能。

图标由字体替换

前端中的所有图标已从图标图像集切换为字体。

模态表单

若干前端表单现在在模态(弹出)窗口中打开:

可折叠的高级配置

用于显示高级配置选项的 Advanced configuration 复选框已被替换为可折叠区块 (例如,请参见 配置服务配置Clock widget configuration 等)。 这样可以改善用户体验,因为折叠这些区块并保存配置后,已配置的高级选项将不再重置为其默认值。

Top触发器的改进菜单部分

查看Top触发器的菜单部分现在命名为 Top 100 triggers。 已添加按问题名称和标签过滤触发器的功能。 此外,现在每个触发器显示的是检测到的问题数量,而不是状态更改次数。

配置字段的字符限制已增加

URL字段

所有URL字段的字符限制现在为2048个字符。
这包括:用于地理地图相关设置的Tile URL,用于配置杂项frontend parametersFrontend URL
用于创建地图添加元素URLs
用于主机资产清单字段的URL A-C
以及用于urlURL

认证字段

认证字段User/User namePassword的字符限制现在为255个字符。
这适用于为配置 监控项、配置认证配置配置HTTP认证,
以及为以下内容配置认证:
概述
zabbix前端中的监控项配置
监控项配置
Telnet checks
添加-jmx-agent-监控项

监控项 和预处理测试结果截断

测试testing preprocessing steps 时,从 一个主机 中检索到的值以及测试结果在发送到前端时会被截断为最大 512KB 的大小。
请注意,超过 512KB 的数据仍会被 Zabbix server 完全处理。

主机 仪表盘标签页

选定的主机下配置的所有host dashboards现在显示在主机仪表板页面标题下的标签中,替换了之前右上角的下拉菜单。 这使得在不同的主机仪表板之间切换更加方便,并改善了监控数据的浏览导航。

审计日志

管理Audit log 中,现在可以启用/禁用服务器(系统用户)执行的低级别自动发现、网络发现和自动注册活动的审计日志记录功能。

在由 housekeeper 删除之前,默认存储审计日志记录的时间周期已从 365 天更改为 31 天。

最新数据过滤器

监控Latest data 中,如果未设置过滤器,则子过滤器和数据将不再默认显示。

如果从之前的 Zabbix 版本升级,请参阅:最新数据过滤器

最低要求的 PHP 版本

PHP 的最低要求版本 version 已从 7.4.0 提升至 8.0.0。

重命名的元素

  • 某些带有 Tags 标签的 dashboard widget 参数已重命名以提高清晰度: 监控项标签(用于 Data overview 小组件)、Scenario tags(用于 Web monitoring 小组件); Problem tags(用于 GraphProblem 主机ProblemsProblems by severityTrigger overview 小组件);
  • MonitoringMaps 部分的地图列表中,用于编辑地图内容的操作链接已从 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”页脚已被移除。
  • 现在可以在 System information page 上查看 Zabbix 前端和 Zabbix server version 数量
  • 所有使用媒介类型的触发动作现在都会显示在 media type 列表中(Used in actions 列)。此前,当动作操作配置中的 Send only to 操作详情 设置为 "All" 时,这些动作不会包含在媒介类型的 Used in actions 列中;
  • Latest data 部分新增了过滤选项:现在可以根据状态(支持/不支持)对 监控项 进行过滤;
  • Problems 部分新增了 确认状态 过滤选项:现在可以根据问题状态(未确认/已确认/由我确认)对问题进行过滤;
  • 在用于配置和批量更新地图元素和形状的弹出窗口中,新增了标准的窗口关闭按钮;
  • user group 权限和用于过滤可见问题的标签的配置进行了优化。 现在可以选择多个 主机/模板组,同时为这些组分配相同的权限。
  • 在一个浏览器中对 全局显示消息 全局通知进行“稍后提醒”操作后,该提醒将在用户登录的所有浏览器/设备上同步延迟。
  • 配置 小部件的 widget 中,覆盖 主机 参数已移至 高级配置 部分之前,以提升可用性。

插件

Ember+

新增了一个用于直接监控Ember+的插件,由Zabbix agent 2提供支持。

更多信息请参阅:

安装

RHEL 衍生版本的独立安装包

installation packages 提供了专用的 版本 8 和 9,适用于 AlmaLinux、CentOS Stream、Oracle Linux 和 Rocky Linux。此前, 为 RHEL 及其衍生版本提供了单一的安装包。 现在,为了防止二进制文件不兼容的潜在问题,RHEL 及其上述每个衍生版本都使用了独立的安装包。

支持 ARM64/AArch64 架构

ARM64/AArch64 安装包现已适用于 Debian、RHEL 8、9 及其衍生版本,以及 SLES/OpenSUSE Leap 15。