Table of Contents

5 Zabbix 7.0.0新功能

参阅此版本的重大变更

AGPL-3.0许可证

Zabbix软件现在是在AGPL-3.0许可证(以前是GPL v2.0许可证)下编写和发布的。

软件更新检查

现在在新的和现有的安装中默认添加了软件更新检查功能 - Zabbix前端将与公共Zabbix终端通信以检查更新。

关于可用的Zabbix软件更新信息将显示在 报表 -> 系统信息系统信息 的仪表盘部件

(可选)。您可以通过在server配置中设置 AllowSoftwareUpdateCheck=0 来关闭软件更新检查配置

异步pollers

新的poller进程能够同时执行多个检查,它分出了以下poller类型: - agent poller - http agent poller - snmp poller ( 支持walk[OID]get[OID] 监控项)

这些poller进程是异步的 - 它们可以在不等响应的情况下启动新的检查,并可以配置最多1000个并发检查。

异步poller的设计是为了提高效率,与同步轮询器相比,同步poller在同一时间只能执行一个检查,并且大部分时间都花费在等待响应上。

server/proxy配置文件中新增了 pollers 参数,你可以通过修改 StartAgentPollers 参数值来启动指定数量的 agent pollers。 可以通过分别修改 StartHTTPAgentPollersStartSNMPPollers 参数值来启动指定数量的HTTP agent pollers和SNMP pollers。

异步pollers (agent, HTTP agent and SNMP) 的最大并发数是由 MaxConcurrentChecksPerPoller 定义的。

要注意升级后,所有的agent、HTTP agent and SNMP walk[OID] poller检查将都会切换为异步pollers。

作为开发的一部分,持久连接 cURL 特性已经添加到了 HTTP agent 检查中。

浏览器监控

zabbix7增加了一种新的监控项类型 - 浏览器监控项,能够使用浏览器监控复杂的网站和web应用。 浏览器监控项允许执行用户定义的JavaScript代码来模拟与浏览器相关的操作,例如点击、输入文本、网页导航等。

该监控项通过HTTP/HTTPS收集数据,并部分实现了使用Selenium Server或普通的WebDriver(例如ChromeDriver)作为测试终端的W3C WebDriver标准。

要注意浏览器监控项的支持目前属于实验性

此外, 这个功能增加了 Website by Browser 模板以及配置导出/导入的新元素,还包括Zabbix server/proxy配置文件、超时设置以及zabbix_js命令行实用程序。 了解更多内容, 参阅 7.0.0更新说明

Proxy负载均衡和高可用

zabbix中通过引入proxy groups来实现proxy的负载均衡。Proxy groups可以自动将主机分配给proxy,当proxy离线时,其监控的主机将立即被分配到组内的其他proxy,实现proxy负载均衡和高可用。

了解更多信息, 参阅 proxy 负载均衡和高可用

Proxy内存缓存

Zabbix proxy 已经支持内存缓存。内存缓存允许将新的数据(监控值、网络发现、主机自动注册)存储在缓存中,并在不访问数据库的情况下直接上传到 Zabbix server 。

在Zabbix 7.0之前的安装中,收集的数据在上传到Zabbix server之前会先存储在数据库中。对应这些安装,升级后仍然保留这一默认行为。

为了优化性能,建议在proxy上配置使用内存缓存。可以通过ProxyBufferMode 参数值修改,从 "disk" (默认值) 修改为 "hybrid" (推荐) 或者 "memory"。此外还需设置内存缓存大小 (ProxyMemoryBufferSize 参数)。

在混合模式下(hybrid),如果 proxy 停止、缓存满或数据过旧,未发送的数据会被刷新到数据库中,从而避免数据丢失。当所有数值都刷新到数据库后,proxy 会重新使用内存缓存模式。

在内存模式下,将使用内存缓存存储数据会有数据丢失的风险。如果 proxy 停止或内存溢出,未发送的数据将会丢失。

从 Zabbix 7.0 开始,混合模式 (ProxyBufferMode=hybrid) 适用于所有新的版本。

Proxy 其他参数,如 ProxyMemoryBufferSizeProxyMemoryBufferAge 分别用于定义内存缓存的大小和缓存中数据存储的最大时长。

此外新增了内部监控项 用于监控 proxy 的内存缓存。

JIT即时用户预配

之前配置用户仅限于创建媒介,无法灵活地配置诸如工作时长或严重级别等属性

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

  • 预配 用户媒介 可以禁止/启用;
  • 预配 媒介属性 例如 何时发送, 告警级别设置状态 可以手动修改;
  • 可以为预配用户添加额外的用户媒介(例如, 电子邮件) ;
  • 可以删除手动添加的用户媒介 (预配的用户媒介不可删除)。

此外,在配置用户媒介映射时,可以使用 何时发送, 告警级别设置状态 等属性。请注意,对媒体类型映射表的更改仅在新的媒介创建时生效。

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

现在,更多监控项类型支持为每个监控项配置超时时间(请参见支持的监控项类型)。 除了可以在监控项级别设置超时值外,还可以为各种监控项类型定义全局proxy 级别的超时时间。

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

Oracle DB已弃用

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

JSON协议用于被动agent检查

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

为了与旧版agent兼容,已添加回退到旧版纯文本协议的功能。如果agent返回"ZBX_NOTSUPPORTED",Zabbix将缓存接口为旧协议,并通过仅发送纯文本item键来重试检查。

Zabbix get现在可以使用新选项-P --protocol <value>运行,其中"value"可以是:

  • auto - 使用JSON协议连接,回退并使用纯文本协议重试(默认);
  • json - 使用JSON协议键连接;
  • plaintext - 使用纯文本协议连接,其中仅发送item键。

如果item键不受支持,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)来表示。

另请参阅:被动和主动agent检查

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

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

自动禁用丢失的资源

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

丢失的资源(主机,监控项,触发器)在信息列中会用图标标记。工具提示文本提供了它们状态的详细信息。

在同一开发过程中,Keep lost resources period参数被重命名为Delete lost resources,并提供了立即删除,指定时间段后删除,或者永远不删除的选项。

自动禁用丢失的资源

不再被低级别发现所发现的资源现在可以自动禁用。它们可以立即禁用,或者在指定的时间段后禁用,或者永远不被禁用(参见发现规则配置中的新禁用丢失的资源参数)。

丢失的资源(主机,监控项,触发器)在信息列中会用图标标记。工具提示文本提供了它们状态的详细信息。

在同一开发过程中,保留丢失的资源周期参数被重命名为删除丢失的资源,并提供了立即删除,指定时间段后删除,或者永远不删除的选项。

脚本的手动用户输入

前端脚本的手动用户输入允许在每次执行脚本时提供一个自定义参数。这可以避免需要创建多个仅有一个参数差异的类似的用户脚本。

例如,您可能想在执行脚本时提供一个不同的整数或不同的URL地址。

启用手动用户输入:

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

启用用户输入后,在脚本执行前,将向用户显示一个“手动输入”弹出窗口,要求提供自定义值。提供的值将替换脚本中的{MANUALINPUT}。

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

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

以前,可以使用Zabbix sender 或基于JSON[通信协议] 实现的类似于Zabbix sender的实用程序(/manual/appendix/protocols/zabbix_sender)来将特定数据发送到Zabbix server。

现在,还可以通过基于HTTP协议的 history.push API方法将数据发送到Zabbix server。 请注意,接收发送的数据需要配置 trapper 监控项HTTP agent 监控项(已启用trapping)。

此外,正确history.push操作会被记录在报告审计日志 中,该审计日志具有额外的筛选选项(推送 操作和 历史记录 资源), 并且history.push API方法也出现在 用户角色配置 时的API方法的允许/拒绝列表中。

性能

更快的响应主机维护时段的更新

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

现在,维护操作仍是每分钟重新计算一次,或者只要配置缓存重新加载就会立即重新计算。

每秒,计时器进程都会根据配置更新后维护时段是否有变化,来检查是否需要启动/停止维护操作。因此,启动/停止维护时段的速度取决于配置的 更新间隔(默认为10秒)。请注意,维护时段的更改不包括 启用自从/启用直到 设置。此外,如果将主机/主机组添加到现有的启用的维护时段,则更改将在下一分钟开始时由计时器进程激活。

更快的权限检查

通过引入几个用于检查非特权用户权限的中间表,权限检查的速度已大大提高。

这些表分别保存每个用户/主机的用户组集合和主机组集合的哈希值(SHA-256)。另外还有一个权限表,仅存储用户和主机的可访问组合,这些组合由哈希ID指定。

这种改进使得权限要求较高的前端页面(如主机、问题)的加载速度更快。请注意,超级管理员用户的哈希和权限无需计算。

更快速的触发器动作执行

Zabbix server上的触发器动作操作、恢复操作和更新操作现在会在触发器状态变更后立即执行(延迟小于100毫秒),而此前用户可能经历长达4秒的延迟。

这种延迟的降低是通过在多个进程之间实现进程间通信(IPC)机制完成的(包括escalator及其escalation-dispatch模块、escalator与alerter、预处理管理器与历史数据同步器之间的通信)。

部件

新版本中添加了多个新部件,同时增强了其他部件的可用功能。此外,仪表盘部件现在可以相互连接和通信,使部件和仪表盘更加动态。

仪表盘

仪表盘部件 中添加了叫 仪表盘 的小部件 ,允许将单个监控项的值显示为仪表盘。 更多信息,请参见 仪表盘

饼图

仪表盘部件 中添加了 饼图 部件,允许将选定监控项的值显示为:

  • 饼图
  • 环形图

饼图。

环形图。

更多信息,请参见 饼图

在此开发过程中,已在 图形 的配置(图例 选项卡)中添加了 显示聚合函数 的复选框。

蜂窝图

仪表盘部件 中添加了 蜂窝图 部件,它提供了被监控的网络基础设施和资源的动态、生动的概览,其中主机组(如虚拟机和网络设备)及其各自的监控项以交互式六边形单元格的形式直观地表示出来。

更多信息,请参见蜂窝图

Top触发器

仪表盘部件 中添加了 Top触发器 部件,它允许您查看具有最多问题的触发器。

更多信息,请参见:top触发器

监控项历史与纯文本

全新的 监控项历史 仪表盘小部件 已经取代了 纯文本 小部件,提供了多项改进。

与仅能以纯文本形式展示最新监控项数据的 纯文本 小部件不同,监控项历史 小部件支持多种显示选项,适用于多种监控项类型(数值型、字符型、日志型、文本型和二进制型)。 例如,它可以显示进度条或指示器,为二进制数据类型显示图像(对于 浏览器监控项 非常有用),以及突出显示文本值(对于 日志文件监控 非常有用)。

欲了解更多信息,请参阅 监控项历史。 有关 纯文本 小部件替换的详细信息,请参阅 升级至 7.0.0 的注意事项

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

仪表盘部件 中添加了主机导航器监控项导航器 部件。 这些部件分别根据各种过滤和分组选项显示主机或监控项,并允许根据所选的主机或监控项控制其他部件中显示的信息。 更多信息,请参见 主机导航器监控项导航器

仪表盘部件的通信框架

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

此功能引入了以下更改:

  • 主机组主机监控项 参数允许您选择相应的实体或提供这些实体的数据源。
  • 启用主机选择 参数已被 覆盖主机 参数替换,该参数允许您选择提供主机的数据源。
  • 已在多个部件中添加 时间段 参数,允许您选择提供时间段的数据源。
  • 地图 部件中的 地图 参数允许您选择地图或另一个部件作为地图的数据源。
  • 图形(经典) 部件中的 图形 参数允许您选择图形或另一个部件作为图形的数据源。

根据部件及其参数,数据源可以是同一仪表盘中的兼容部件或仪表盘本身。 有关更多信息,请参见 仪表盘部件

对于Zabbix自带的默认模板所做的更改,请参见 模板更改

监控项值/Top主机部件中的聚合时间段

现在可以在 监控项值Top主机 部件中配置时间段。

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

  • 最小值
  • 最大值
  • 平均值
  • 计数
  • 总和
  • 第一个值
  • 最后一个值

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

模板仪表盘中部件的可用性扩展

以前,在 模板仪表盘 上,您只能创建以下部件: * 时钟 图形(经典) 图形原型 监控项值 纯文本 URL *。

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

Top主机部件中的排序扩展

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

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

主机可用性 部件现在允许显示使用 Zabbix agent(主动检查) 接口的主机。还增加了一种可用性状态,即 Mixed 状态,它对应于至少一个接口不可用,和至少一个接口可用或未知的情况。此外,还引入了仅查看主机总数(不按接口细分)的功能。

图形部件中的图例大小可变

图形 部件现在支持配置可变数量的图例行,具体数量由已配置的监控项数量确定。

函数

新功能

添加的新函数,可用于触发器表达式和计算监控项:

另请参阅:字符串函数

更新的函数

多个函数已进行更新:

  • 聚合函数现在也支持非数值类型用于计算。这可能在例如 countcount_foreach 函数中非常有用。
  • countcount_foreach 聚合函数支持可选参数 operatorpattern,这些参数可用于微调监控项过滤,仅计数符合给定标准的值。
  • 所有 foreach 函数不再在计数中包括不受支持的监控项。
  • 函数 last_foreach,以前配置为忽略时间周期参数,现在接受它作为可选参数。
  • 预测函数返回的值的受支持范围已扩展,以匹配双精度数据类型的范围。 现在 timeleft() 函数可以接受高达 1.7976931348623158E+308 的值,而 forecast() 函数可以接受从 -1.7976931348623158E+308 到 1.7976931348623158E+308 的值。

监控项

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

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

整数监控项的浮点数值被截断

现在,如果整数监控项接收到浮点数值, 该值将从小数部分被截断并以整数形式保存。 以前,浮点数值会使整数监控项变为不支持状态。

Windows事件日志中的行数统计

在Windows上的Zabbix agent/agent 2中添加了一个新的 eventlog.count 监控项。 该监控项根据指定的参数以整数形式返回Windows事件日志中的行数。

异步单OID SNMP请求

新增了一个 get[OID] SNMP监控项,允许异步查询单个OID值。

内部监控项

内部检查现在由一个新的 internal poller Zabbix server/proxy 进程处理。

已添加内部监控项以监控 proxy 内存缓冲区

还添加了以下内部监控项:

新增和更新的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(比例设定大小)内存;
  • system.sw.packagessystem.sw.packages.get 监控项现在支持Gentoo Linux;
  • system.hostname 监控项现在可以返回完全限定域名,如果在type参数中指定了新的fqdn选项;
  • 使用Zabbix agent 2 的wmi.getwmi.getall 监控项现在返回带有布尔值表示为字符串的JSON(例如,"RealTimeProtectionEnabled": "True" 而不是之前返回的 "RealTimeProtectionEnabled": true),以匹配Zabbix agent上这些监控项的输出格式;
  • Zabbix agent 2 的oracle.ts.discovery 监控项现在返回一个新的{#CON_NAME} LLD宏,包含容器名称;
  • Zabbix agent 2 的oracle.ts.stats 监控项新增了一个conname参数,用于指定目标容器名称。 返回数据的JSON格式已更新。 当在key参数中未指定tablespacetypeconname时,返回的数据将包含一个额外的JSON层级,其中包含容器名称,允许区分不同容器。

简单检查

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

vmware.vm.discovery 监控项现在也返回有关虚拟机网络接口的数据。 这些数据可用于配置自定义主机接口

vmware.vm.net.if.discovery 监控项现在也返回网络接口地址的数组。

以下监控项已添加新的options参数:

此参数可用于指定是否应将重定向的响应视为目标主机已上线或目标主机已下线。 有关更多详细信息,请参阅简单检查

记录重复的SNMPv3引擎ID

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

为了帮助排查此类问题,Zabbix server现在将定期记录共享相同引擎ID的SNMPv3设备的有关信息。请注意,每个SNMP poller都分别进行重复引擎ID的检测工作。

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

现在,每个标准监控项在前端都直接链接到其文档页面。

这些链接位于问号图标下方,从监控项配置表单打开监控项帮助窗口时(点击监控项键旁边的“选择”)即可看到。

预处理

不支持监控项的高级根因处理

在无法获取监控项值(导致变得不支持)时,之前的错误处理缺乏区分过程失败原因或运行时阶段的能力。所有错误都必须使用相同的错误处理选项来处理——要么丢弃该值,要么设置指定值,要么设置指定的错误消息。

现在可以将错误消息与正则表达式匹配。如果错误匹配(或不匹配),则可以指定如何处理错误情况。例如,可以将特定的错误消息“映射”到更一般的情况,以便进一步由预处理步骤进行匹配和处理,或者可以对一些间歇性问题(例如网络连接问题)与确定无法获取监控项项值的问题进行不同的处理。

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

另请参阅:检查不支持的值

预处理步骤批量更新更易用

之前的监控项批量更新表单的设计,并不足以明确预处理步骤更新是添加还是替换预处理步骤。在新的设计中,添加了“替换”和“全部删除”单选按钮,使用户能够清楚地知道预处理步骤批量更新的结果是什么:

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

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

请注意,在Zabbix 6.0中,已从监控项/监控项原型名称中移除了对用户宏的支持。 现在,该支持已恢复。现在还支持使用已解析的宏来搜索监控项名称,这在之前是不支持的。

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

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

已添加一个新的configuration syncer workerserver进程,负责解析和同步监控项名称中的用户宏值。

宏函数的扩展支持

宏函数中的宏函数现在支持所有类型的宏:

可以在支持宏的所有位置使用宏函数。 除非明确指定仅期望使用宏(例如,在配置主机宏 或低级别发现规则过滤器时)。

计划报表

计划报表 功能不再是实验性的。

多页报表

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

通知

在主动模式的 agents 上执行远程命令

现在可以在运行主动模式的版本 7.0 agent 上执行 remote commands。 一旦通过 operation 动作触发或手动 script 执行远程命令, 该命令将被包含在主动检查配置中,并在主动 agent 接收到它后执行一次。 请注意,较旧的主动 agents 将忽略主动检查配置中包含的任何远程命令。 更多信息,请参阅 Passive and active agent checks

内部事件支持标签处理

现在,webhook脚本返回的标签处理也支持内部事件

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

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

数据库

审核日志转换为TimescaleDB上的超表

在新安装中,auditlog表已转换为TimescaleDB上的超表,以从时间自动分区(默认为7天)和更佳性能中获益。

为了成功升级现有安装,请参阅升级TimescaleDB架构

另请参阅:支持的TimescaleDB版本

proxies的单独数据库表

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

同时,proxies的操作数据(如最后访问时间、版本、兼容性)已经从host_rtdata表中移出,现在存储在新的proxy_rtdata表中。

进程

多线程

在过渡到多线程架构的过程中,进行了以下一些更改:

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

服务器环境加固

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

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

配置文件验证

已经在Zabbix的serverproxyagentagent 2web service的维护命令中添加了配置文件验证的功能。

可以使用-T --test-config选项进行验证。

如果验证成功,退出码将为“0”;否则,组件将以非零退出码和相应的错误消息退出。警告(例如,在参数已弃用的情况下)不会影响成功的退出码。

在运行时检测cURL库特性

以前,Zabbix server、proxy或agent在构建时会检测cURL库的特性。如果cURL的特性得到了升级,为了使用这些特性,需要重新编译相应的Zabbix组件。

现在,只需要重启Zabbix,就可以在Zabbix中使用升级的cURL库特性了。不再需要重新编译。这适用于Zabbix server、proxy或agent。

另请参阅升级说明

Agent2配置

缓冲区大小

Zabbix agent 2的BufferSize配置参数的默认值已从100增加到1000。

允许空值

现在,Zabbix agent 2上与插件相关的配置参数允许为空值。

设置 Windows agent 服务启动类型

已添加设置 Zabbix agent/agent 2 Windows 服务启动类型的选项 (-S --startup-type)。 此选项允许配置 agent/agent 2 服务在 Windows 启动时自动启动 (automatic),在自动启动的服务完成启动后启动 (delayed),由用户或应用程序手动启动 (manual) 或完全禁用服务 (disabled)。

在执行 从 MSI 安装 Windows agent 时,如果未在 STARTUPTYPE 命令行参数 中另行指定,Windows Server 2008/Vista 及更高版本的默认启动类型现在为 delayed。 这提高了 Zabbix agent/agent 2 Windows 服务的可靠性和性能,特别是在系统重启期间。

不再支持旧的数值类型

由于现在使用了更大范围的数值,以前弃用的浮点数旧格式不再被支持。

在配置文件中添加了Vault前缀参数

配置文件zabbix_server.confzabbix_proxy.conf已补充了一个新的可选参数Vault Prefixzabbix.conf.php已补充了选项$DB['VAULT_PREFIX'],并且已相应地更新了setup.php

因此,CyberArkHashiCorp的vault路径不再是硬编码的,以便允许使用非标准路径进行vault部署。

自动发现

网络发现中的并发

在先前的版本中,每个网络发现规则都由一个发现进程处理。因此,规则内的所有服务检查只能按顺序执行。

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

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

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

StartDiscoverers 参数现在确定用于发现的可用发现工作者总数。StartDiscoverers的默认数量已从1增加到5,范围从0-250扩展到0-1000。 先前Zabbix版本中的 discoverer 进程已被移除。

此外:

  • 所有服务检查现在都是异步执行,除了LDAP检查;
  • 每种服务检查类型的同时异步检查数量(或所有同步服务检查的可用工作者数量)现在可以在 前端 中配置(参见 每种类型的最大并发检查)。此参数是可选的。
  • HTTP服务检查以前与TCP检查相同。现在,HTTP/HTTPS检查通过libcurl进行。如果Zabbix server/proxy编译时没有libcurl,那么HTTP检查将像以前一样工作(即,作为TCP检查),但HTTPS检查将无法工作。
  • 网络发现过程中的错误现在将在前端显示(在 数据收集 -> 发现 中),例如:
    • fping错误;
    • 错误的SNMP OID;
    • 项目超时宏错误;
    • 地址范围错误。

在发现和自动注册期间添加主机标签

现在,发现和自动注册事件可以进行以下额外操作:

  • 添加主机标签
  • 删除主机标签

共享已发现的主机组

现在,低级别发现规则可以将已经发现和现有的主机组链接到由相同的低级别发现规则创建的主机。

这会影响基于指定的主机原型通过其他低级别发现规则之前发现和创建的主机组。

连接器

数据流功能不再处于实验阶段。

流式传输选择的数据和配置尝试间隔

当从Zabbix向外部系统流式传输监控项值时,现在可以基于信息的类型(数字(无符号)、数字(浮点)、字符等)配置连接器应流式传输哪些监控项值。

此外,为了避免流式传输监控项值或事件的不成功(例如,HTTP端点繁忙或速率限制等原因),现在还可以配置尝试间隔 - 即连接器在尝试流式传输数据失败后应等待多长时间。

现在,连接器也将201、202、203和204 HTTP响应代码视为成功(以前仅200)。

将数据流式传输到Apache Kafka

现在提供了一个新的流式传输数据到外部系统的工具 - Zabbix server的Kafka连接器。 Kafka连接器是一个用Go编写的轻量级服务器,旨在将监控项值和事件从Zabbix server转发到Kafka broker。

模板

对于新模板和对现有模板的更改,请参见模板更改

前端

多因子认证

现在可以使用基于时间的一次性密码(TOTP)或Duo通用提示身份验证方法的多因子认证(MFA)登录Zabbix,为用户提供除用户名和密码之外的额外安全层。

美国时间格式

当使用默认(en_US)前端语言时,前端的时间和日期显示将遵循美国标准的显示方式。

以前 现在

简化克隆操作

之前,可以克隆完全克隆主机模板地图

现在,已经移除了克隆选项,并将完全克隆选项重命名为克隆,同时保留了完全克隆的所有先前功能。

图标替换为字体

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

Modal表单

现在,几个前端表单在Modal(弹出)窗口中打开:

可折叠的高级配置

高级配置复选框,用于显示高级配置选项,现在已经被可折叠区块所取代(例如,连接器配置服务配置时钟部件配置等)。 这改善了用户体验,因为折叠这些区块并保存配置将不再将已配置的高级选项重置为其默认值。

Top触发器的改进的菜单

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

配置字段的字符限制增加

URL字段

现在,所有URL字段的字符限制为2048个字符。 包括: Tile URL 用于设置 地理地图Frontend URL 用于配置各种 前端参数URLs 用于网络地图网络地图元素URL A-C 用于主机清单字段, 以及URL仪表板小部件URL

认证字段

现在,认证字段User/User namePassword的字符限制为255个字符。 这适用于配置HTTP agent监控项、Web场景连接器的HTTP认证,以及配置简单检查ODBC监控SSH检查Telnet检查JMX监控的认证。

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

测试监控项测试预处理步骤时,从主机获取的值和测试结果现在会在发送到前端时截断为最大512KB的大小。 请注意,大于512KB的数据仍会由Zabbix服务器完全处理。

主机仪表盘标签

现在,所有为选定主机配置的主机仪表盘都将作为标签显示在主机仪表盘页面的标题下,取代了之前右上角的下拉菜单。 这允许轻松地在各种主机仪表盘之间切换,并改善了通过监控数据进行导航的体验。

审计日志

管理审计日志,现在您可以启用/禁用由服务器(系统用户)执行的低级别发现、网络发现和自动注册的审计日志。

审计日志记录在被管家删除之前的默认存储期限已从365天更改为31天。

最新数据过滤器

监控最新数据 中,如果未设置过滤器,则默认情况下不再显示子过滤器和数据。

如果从之前的Zabbix版本进行升级,请参见:7.0.0版本升级说明

所需最低PHP版本

所需的最低PHP版本已从7.4.0提升至8.0.0。

重命名元素

  • 一些仪表盘小部件的参数标签从Tags更改为更清晰的名称: 监控项标签(用于数据概览小部件),场景标签(用于Web监控小部件); 问题标签(用于图表问题主机问题按严重性的问题触发器概览小部件);
  • 监控拓扑图部分的拓扑图列表中,用于编辑拓扑图内容的行动链接已从构造器重命名为编辑
  • 监控项监控项原型配置表单中,用于设置历史和趋势存储周期的字段已重命名;
  • Top 主机小部件配置中,字段排序列主机数量已重命名为按...排序主机限制,以更准确地描述其功能。
  • 图表小部件配置中,图例字段显示最小值/最大值/平均值已重命名为显示最小值/平均值/最大值,并且数据集字段主机模式监控项模式已重命名为主机模式监控项模式
  • 用户配置文件设置中,消息选项卡已重命名为前端通知,其中前端消息选项也已重命名为前端通知

其他

  • 主菜单的图标已更新;
  • 指示没有数据或未设置过滤器(在没有数据可显示的部件或弹出过滤器中)的消息已更新。 此外,在没有数据可显示或过滤(或使用全局搜索)结果为空的情况下,已删除“显示0个已找到的0个”页脚;
  • Zabbix前端和Zabbix server的版本号现在可以在系统信息页面上查看;
  • 现在,在媒介类型列表(用于动作列)中显示了所有使用媒体类型的动作。以前,在动作操作配置中仅发送给 选项为“全部”的动作不包括在媒体类型的用于动作列中;
  • 已向最新数据部分添加了新的过滤选项:现在允许您根据状态(受支持/不受支持)过滤监控项;
  • 已向问题部分添加了新的确认状态过滤选项:现在允许您根据状态(未确认/已确认/我确认的)过滤问题;
  • 用于配置和批量更新地图元素和形状的弹出窗口已添加标准窗口关闭按钮;
  • 已经对用户组权限和用于过滤可见问题的标签的配置进行了优化。 现在,可以一次选择多个主机/模板组,以便为它们分配相同的权限。
  • 在单个浏览器中暂停全局通知后,现在将在用户登录的所有浏览器/设备上暂停这些通知。
  • 为了改善易用性,已将监控项值部件中的覆盖主机参数移动到高级配置部分之前。

插件

Ember+

Zabbix agent 2已经添加了一个用于直接监控Ember+的新插件。

更多信息,请参见:

安装

RHEL衍生版本的独立安装包

针对AlmaLinux、CentOS Stream、Oracle Linux和Rocky Linux的8和9版本,提供了专用的安装包。之前,为RHEL和基于RHEL的发行版提供了单一安装包。 现在,为了避免潜在的二进制不兼容问题,RHEL和上述每个衍生版本都使用了独立的安装包。

支持ARM64/AArch64

现在,Debian、RHEL 8、9及其衍生版本,以及SLES/OpenSUSE Leap 15均提供了ARM64/AArch64安装包。