2 Zabbix 8.0 的新增内容

Zabbix 8.0.0 延续自 Zabbix 7.4.0,新增了新功能和增强改进。

请参见此版本的重大变更

散点图部件

Scatter plot 部件已添加到仪表板部件中。 它通过沿 X 轴和 Y 轴绘制单个数据点来显示两个指标之间的关系。 这有助于揭示数据集中的模式、聚类、相关性和离群值。

图形小部件的 Y 轴反转

Graph 小部件中的图形现在可以显示反转的 Y 轴值。新的 反转值 设置允许您将 Y 轴值乘以 −1,而无需更改原始数据。

另请参见:图形小部件增强

模板

新模板

已更新的模板

监控项

JSON 数据类型

Zabbix 现在支持将 JSON 作为监控项值的数据类型

此前,JSON 值由文本监控项采集,并以字符串形式存储,大小限制为 64KB。 现在,Zabbix 可以原生存储 JSON 值,大小限制为 128MiB,同时还能拒绝无效的 JSON 值(例如包含未加引号的键、尾随逗号、括号不匹配等)。

JSON 数据类型受所有监控项类型和监控项原型支持(Calculated 除外),并可用于实时数据导出连接器。 JSON 值可存储在所有受支持的数据库Elasticsearch 中。 如果您使用的是 TimescaleDB,请参阅升级说明

请注意,JSON 监控项不能用于触发器;不过,您可以使用具有非 JSON 数据类型的依赖监控项提取 JSON 字段,并在触发器中使用这些字段。

返回 JSON 字符串的监控项(net.if.discoveryvfs.file.get 等)仍然是文本监控项;不过,如有需要,您可以将其更改为 JSON 类型。

更多详细信息及 JSON 数据限制,请参阅监控项配置

S.M.A.R.T 磁盘发现的 type 参数

smart.disk.discovery 监控项(Zabbix agent 2 S.M.A.R.T. 插件)现在接受一个可选的 type 参数,用于指定扫描磁盘时要查找的值。

插件

Ceph 插件

该插件现在以两种模式运行:

  • native - 此模式使用 go-ceph 库,通过原生 Ceph API(msgr2 协议)直接与 Ceph 集群通信。
    这是现代 Ceph 安装环境的推荐模式,但仅在 Linux 上受支持,且要求 Ceph 16 及以上版本。
  • restful(已弃用)- 此模式使用 Ceph RESTful API 进行通信。
    这是为保持向后兼容性的默认模式,但由于 mgr/restful 模块已被移除,因此在 Ceph 20(Tentacle)及更新版本中将无法使用。

使用哪种模式由 mode 参数(native/restful)的值决定:

  • Plugins.Ceph.Default.Mode=native - 为插件设置 native 模式
  • Plugins.Ceph.Sessions.<SessionName>.Mode=native - 为指定名称的会话设置 native 模式

请注意,每种模式使用的用户凭据集不同,二者彼此不兼容。
在 native 模式下,Plugins.Ceph.InsecureSkipVerify 参数会被忽略,因为连接安全性由 msgr2 协议在 Ceph 集群端定义(默认安全)。

请注意,Zabbix agent 2 的 Ceph 插件现已成为可加载插件,并且需要额外的安装步骤。
这是由于需要 librados 软件包(用于 native 模式)。
详情请参见 Ceph 插件的 readme

MongoDB 插件

Zabbix agent 2 MongoDB 插件 提供了多项增强功能:

  • 完全支持传统 MongoDB URI 解析,同时支持 mongodb://mongodb+srv:// 方案。
  • 自动发现 MongoDB 副本集节点,增强了对 MongoDB 集群的监控能力。
  • 支持 x509 身份验证,可使用客户端证书安全地连接到 MongoDB。

Oracle 插件

Zabbix agent 2 的 Oracle 插件 现在支持使用 TCPS (TLS) 协议与 Oracle 数据库建立加密连接。
这增加了通过 TLS 保护的套接字监控 Oracle 实例的能力,从而提高了远程监控的安全性。

Redis 插件——TLS 支持和启动时验证

已为 Zabbix agent 2 的 Redis 插件 添加了 TLS 支持。

已实现对插件 TLS 配置的启动时验证,并改进了验证/错误消息。
无效的配置逻辑(例如:在未指定 TLSCAFile 的情况下使用连接类型 verify_full)可能会导致 Zabbix agent 2 无法启动。

可加载插件的测试执行模式

现在可以使用 -t (--test) 标志以测试模式启动可加载插件,并将监控项键值作为参数传递。 在此模式下,插件会为了调试和开发目的而运行,并且会忽略插件配置文件。

低级发现

发现表单中的“转换为 JSON”复选框

在低级别发现规则表单和发现原型表单中新增了一个 转换为 JSON 复选框;当在 类型 下拉列表中选择“HTTP agent”时,该复选框会显示。 此选项允许将获取到的数据标记为在进一步处理之前自动转换为 JSON。

嵌套低级别发现中的宏支持

现在,嵌套低级别发现规则已支持低级别发现宏,可用于:

由低级发现创建的触发器的可编辑标签

现在,可以为从触发器原型创建的触发器手动添加标签。 从触发器原型继承的标签仍会自动应用。 手动添加的标签可以在已发现的触发器上进行修改,并将包含在事件标签数组中,同时可用于支持标签的功能,例如过滤器、仪表板小部件和通知宏。

进程

SNMPv3 EngineID 缓存与复用

Zabbix 现在会缓存 SNMPv3 EngineID → IP 映射,并会在后续的 SNMPv3 检查中尝试复用已缓存的 EngineID,从而减少探测流量并提升轮询器性能。 如果复用的 EngineID 没有响应,轮询器会回退到 EngineID 探测;在接口变更或持续失败后,还可能会移除过期条目。

历史缓存恢复期间更精细的 proxy 限流

已优化 proxy 的限流逻辑,以提高历史缓存恢复期间服务器的稳定性。
当历史缓存使用率达到限流阈值时,服务器将继续像以前一样停止接收 proxy 数据。
当缓存使用率降至 60% 时,服务器会开始处理限流列表,但对于包含超大批次(约超过 10k 条记录)的 proxy 上传,仍可能继续拒绝,直到缓存压力进一步降低。
此更改可在服务器恢复期间降低缓存反复过载的风险。

zabbix_get 和 zabbix_js 的最大超时时间已提高

zabbix_getzabbix_js 命令行工具的 timeout 参数最大值已提高到 600 秒。

优化的 housekeeping

Housekeeping 已通过将 housekeeper 任务的创建移至数据库触发器而得到优化。
当删除监控项(包括低级别发现规则)、触发器、服务或网络发现规则时,现在由数据库触发器(而不是显式的应用层调用)将清理任务填充到 housekeeper 表中。
有关详细信息,请参见 housekeeping procedure

housekeeper 现在还会删除由随后已被删除的已发现主机或服务生成的网络发现事件,以及与随后已被删除的触发器问题相关的所有事件(此前,仅删除问题本身;相关事件只有在 housekeeper 的 Trigger data storage period 到期后才会被删除)。

手动关闭——恢复事件继承触发器标签

手动关闭后创建的恢复事件,除监控项标签和主机标签外,还会继承触发器标签。
这些标签存在于事件标签数组中,并可用于通知宏,例如 {EVENT.RECOVERY.TAGS}{EVENT.RECOVERY.TAGSJSON}

Zabbix 守护进程的 DNS 查询缓存

当使用 --with-ares 构建 Zabbix 时,Zabbix 服务器、Zabbix proxy 和 Zabbix agent 已支持对所有 DNS 请求使用 c-ares 解析器,从而提供 DNS 查询缓存,并改进解析器故障切换能力。
DNS 查询缓存需要 c-ares 1.26.0 或更高版本。

在 Windows 上构建对 c-ares 的支持

现在可以在 Microsoft Windows 上使用 c-ares 解析器来构建 Zabbix agent。 c-ares 可通过 vcpkg 安装,agent 构建支持使用 ARES=<vcpkg prefix>,或分别使用 ARESINCDIR/ARESLIBDIR 路径来指定头文件目录和库目录。

身份验证

用于单点登录的可导入 SAML 证书

Super admin 用户现在可以直接在前端中导入证书和私钥,用于配置 SAML。 在 Administration > Authentication > SAML 中新增了三个字段:

  • IdP 证书 - 身份提供商提供的 X.509 证书
  • SP 证书 - 用于 SAML 交换的服务提供商证书
  • SP 私钥 - 与 SP 证书对应的私钥

这些控件允许在 SAML 设置选项卡中添加新值或修改现有值。 证书和私钥在保存到所选存储后端之前会经过验证;无效或格式错误的值将被拒绝,并显示说明性错误信息。

小部件

Geomap 主机标记聚类

Geomap 部件现已支持 Clustering 参数,用于控制如何将彼此接近的主机标记合并为一个带计数的单个标记。
通过为聚类设置地图缩放级别,您可以在大型地图上保持良好的可读性,并在放大时维持精确的可见性。

Top items 中的聚合列

Top items 小部件现在可以将监控项模式分组到单个聚合列或行中,从而便于展示组合后的指标(例如:某个主机所有网络接口的总入站流量)。 在配置监控项列时,新增了三个选项:聚合列列聚合函数组合列名称

图形部件增强

图形部件提供了多项可用性增强:

  • 在鼠标悬停于图形上时显示的图形数据提示框中,监控项按值从高到低排序。
  • 在提示框中将鼠标悬停于某个监控项上时,会高亮其图形并淡化其他图形。
  • 在提示框中选择某个监控项时,会将其数据广播给支持监听该数据的其他部件。
  • 已移除提示框中显示的监控项数量限制。
  • 新增 标签中显示主机名 设置,可用于选择是否在提示框和图形图例中显示主机名。

  • 新增 反转值 设置,可用于翻转图形。

前端

新增和嵌入式字体

Zabbix 现已包含新的嵌入式字体,可提升可读性、加快加载速度,并以尽量减少布局影响的方式渲染更多前端语言。 由于这些字体为嵌入式字体,它们还能确保在不同系统之间保持一致的外观。

新字体:
旧版字体:

新字体已用于几乎所有主题。 如有需要,可使用新添加的 Blue (classic)Dark (classic) 主题,它们采用旧版字体。

等宽内容和图形所使用的字体族保持不变。

内联验证

前端中的以下表单已加入支持内联验证的表单集合:

输入错误会在填写字段后立即显示,从而提升可用性并减少配置错误。

模态表单

在低级别发现设置中,主机原型配置表单 现在会在模态(弹出)窗口中打开。

在主机、模板、监控项和触发器中可见的继承标签

现在,继承标签会在模板、主机、监控项、Web 场景和触发器中一致地显示并返回。 从模板/主机链继承的标签可在 监控 > 最新数据 中查看。 凡是支持按标签过滤的地方,现在都可以按继承标签进行过滤——包括 监控 > 最新数据数据采集 部分,以及所有允许按主机、监控项、触发器或 Web 场景标签进行过滤的仪表板小部件——因此,无论标签是在何处定义的,基于标签的选择和子过滤行为都保持一致。

模板、主机和主机原型配置表单中的 标签 选项卡现在提供了一个单选元素,用于选择标签的显示方式:模板显示 模板标签 / 继承标签和模板标签主机 和主机原型显示 主机标签 / 继承标签和主机标签。 继承标签会通过标签名称旁边新增的轮廓文档图标进行视觉区分。

图形饼图 小部件新增了 监控项标签 设置。

工具提示定位

现在可以通过拖动工具提示将其重新定位到新位置。 例如,这适用于 Graph 的工具提示,以及 Latest DataProblems 部分中带有描述的工具提示。

文档

次要版本的合并文档页面

现在,同一 Zabbix 主版本下各次要版本的发布文档将分别汇总到单独的文档页面中,即新功能升级说明