2022 Zabbix中国峰会
2022 Zabbix中国峰会
Table of Contents

5 Zabbix 7.0.0新功能

参阅此版本的重大变更

AGPL-3.0许可证

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

软件更新检查

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

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

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

Oracle DB已弃用

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

通过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秒的延迟。

通过多个进程(escalator和escalation initiator,escalator和alerter,preprocessing manager和history syncer)之间的进程间通信(IPC)机制,可以降低延迟。

server环境加固

现在可以通过限制一些Zabbix功能来加固server环境的安全性:

  • 通过在server配置中设置EnableGlobalScripts=0,可以禁用Zabbix server上的全局脚本执行。对于新安装,Zabbix server上的全局脚本执行默认已禁用。
  • 通过在前端配置文件(zabbix.conf.php)中设置$ALLOW_HTTP_AUTH=false,可以禁用用户HTTP身份认证。

配置文件验证

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

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

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

设置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服务的可靠性和性能,特别是在系统重启期间。

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

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

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

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

将数据流式传输到Apache Kafka

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

异步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 检查中。

Proxy负载均衡和高可用

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

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

多线程

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

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

在运行时检测cURL库特性

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

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

另请参阅升级说明

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

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

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

Agent2配置

缓冲区大小

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

允许空值

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

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 为用户提供了更多灵活的配置:

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

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

被动agent检查的JSON协议

已经为被动 agent 检查实现了基于 JSON 的协议。

为了与旧版 agent 兼容,添加了一个回退到 plaintext 协议的功能。如果 agent 返回 "ZBX_NOTSUPPORTED",Zabbix 将该接口缓存为旧版协议,并通过仅发送 plaintext 监控项键来重试检查。

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

  • auto - 使用 JSON 协议连接,回退和重试使用 plaintext 协议(默认);
  • json - 使用 JSON 协议连接;
  • plaintext - 使用 plaintext 协议连接,该协议仅发送监控项的键。

统一的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)在主动检查中都支持灵活/调度间隔。

网络发现的并发性

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

在新版本中,网络发现进程已重新设计,以允许服务检查之间的并发性。 已添加一个新的发现管理器进程,以及可配置数量的发现工作进程(或线程)。

发现管理器处理发现规则,并为每个规则创建一个包含任务(服务检查)的发现作业。 服务检查由发现工作进程接收并执行。只有那些具有相同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; - 项目超时的宏不正确; - 地址范围错误。

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

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

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

共享已发现的主机组

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

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

连接器

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

模板

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

更新的函数

已对几个函数进行了更新:

  • 聚合函数现在支持非数字类型的计算。例如,对于 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值。

浏览器监控

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

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

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

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

内部监控项

已添加内部监控项以监控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名称;
  • "process" 和 "summary" 模式下的 proc.get 监控项现在也在Linux上返回PSS(比例大小)内存;
  • system.sw.packagessystem.sw.packages.get 监控项现在支持Gentoo Linux;
  • system.hostname 监控项现在如果type参数中指定了新的 fqdn 选项,则可以返回完全限定域名FQDN;
  • 与Zabbix agent 2一起使用的wmi.getwmi.getall 监控项现在返回JSON,其中的布尔值以字符串形式表示(例如,"RealTimeProtectionEnabled": "True"而不是以前返回的"RealTimeProtectionEnabled": true),以匹配Zabbix agent上这些监控项的输出格式;
  • oracle.ts.discovery Zabbix agent 2监控项现在返回一个新的{#CON_NAME} LLD宏,其中包含容器名称;
  • oracle.ts.stats Zabbix agent 2监控项具有新的conname参数,用于指定目标容器名称。
    返回数据的JSON格式已更新。
    如果在键参数中未指定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的检测工作。

在主动agent上执行远程命令

现在,可以在以主动模式运行的 7.0 版本的 agent 上执行远程命令。 一旦某个动作操作或手动脚本的执行触发了远程命令的执行, 该命令将被包含在主动检查配置中,并在主动 agent 收到它时执行。 请注意,较旧的主动 agent 将忽略包含在主动检查配置中的任何远程命令。 有关更多信息,请参阅被动和主动 agent 检查

内部事件支持标签处理

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

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

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

数据库

TimescaleDB上的Auditlog转换为超表

在新安装中,auditlog表已转换为TimescaleDB上的超表,以利用时间自动分区(默认7天)并提升性能。

为了成功升级现有安装:

  1. 启动Zabbix server;这将升级现有的数据库。
  2. 检查server日志文件以确认数据库升级是否成功;如果成功,停止Zabbix server,然后进行下一步。
  3. 运行postgresql/timescaledb/schema.sql脚本(从Zabbix 7.0.0开始,脚本的位置和名称已从postgresql/timescaledb.sql更改为postgresql/timescaledb/schema.sql)。 请注意,如果没有运行此脚本而启动Zabbix server,将记录一条警告。

另请参阅:

proxies的单独数据库表

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

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

进程

配置字段的字符限制增加

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监控 部件); 问题标签(对于 图形问题主机问题按严重性问题触发器概览 部件);
  • 监控拓扑图 部分中,图形列表中的图形内容编辑动作链接已从 Constructor 重命名为 Edit
  • 监控项监控项原型配置表单中的设置历史和趋势存储周期字段已进行重命名;
  • Top hosts 部件的配置中,字段 Order columnHost count 已分别重命名为 Order byHost limit,以更好地描述其功能。
  • Graph 部件配置中,图例字段 Display min/max/avg 已重命名为 Display min/avg/max,并且数据集字段 host patternitem pattern 已分别重命名为 host patternsitem patterns
  • 用户配置文件设置中,将 Messaging 选项卡重命名为 Frontend notifications,并将其中的 Frontend messaging 选项也重命名为 Frontend notifications

Modal表单

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

Top触发器的改进的菜单

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

不再支持旧的数值类型

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

自动发现

简化克隆操作

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

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

部件

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

仪表盘

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

饼图

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

  • 饼图
  • 环形图

饼图。

环形图。

更多信息,请参见 饼图

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

Top触发器

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

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

蜂窝图

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

更多信息,请参见蜂窝图

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

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

监控项历史和纯文本

新的 监控项历史 仪表盘部件 已替换了 纯文本 部件,并提供了多项改进。

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

更多信息,请参见 监控项历史。 关于 纯文本 部件的替换详情,请参见 7.0.0升级说明

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

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

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

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

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

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

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

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

Top主机部件中的排序扩展

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

函数

新功能

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

另请参阅:字符串函数

可折叠的高级配置

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

前端

多因子认证

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

美国时间格式

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

以前 现在

仪表盘部件的通信框架

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

此功能引入了以下更改:

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

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

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

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

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

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

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

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

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

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

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

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

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

自动禁用丢失的资源

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

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

在同一版本中,将Keep lost resources period参数重命名为Delete lost resources,提供了立即删除、在指定时间段后删除或从不删除的选项。

脚本的手动用户输入

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

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

启用手动用户输入:

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

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

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

预处理

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

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

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

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

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

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

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

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

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

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

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

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

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

宏函数的扩展支持

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

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

计划报表

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

多页报表

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

通知

图标替换为字体

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

其他

  • 主菜单的图标已更新;
  • 指示没有数据或未设置过滤器(在没有数据可显示的部件或弹出过滤器中)的消息已更新。 此外,在没有数据可显示或过滤(或使用全局搜索)结果为空的情况下,已删除“显示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安装包。