10 6.0.0 版本升级注意事项

本文档适用于从Zabbix 5.4.x升级至Zabbix 6.0.0的说明。所有注意事项分为以下两类:

  • Critical - 与升级过程及Zabbix功能变更相关的最关键信息

  • Informational - 描述变更的所有其他补充信息

    in Zabbix functionality

支持从早于Zabbix 5.4.0的版本升级至Zabbix 6.0.0。有关从历史版本升级的所有相关信息,请参阅upgrade procedure章节。

严重

要在MySQL和mariadb上成功完成Zabbix server升级,如果启用了二进制日志记录且没有超级用户权限,同时MySQL配置file中未设置log_bin_trust_function_creators = 1,则可能需要在MySQL中设置GLOBAL log_bin_trust_function_creators = 1

要通过MySQL控制台设置该变量,请run:

mysql> SET GLOBAL log_bin_trust_function_creators = 1;

升级成功完成后,可以禁用log_bin_trust_function_creators

mysql> SET GLOBAL log_bin_trust_function_creators = 0;

数据库

为create最佳用户体验并确保Zabbix在各种生产环境中获得最优性能,我们停止了对部分旧版数据库的支持。这主要适用于即将终止服务周期的数据库版本以及存在未修复问题可能影响正常性能的版本。

从Zabbix 6.0开始,官方支持以下所需软件版本:

  • MySQL/Percona 8.0.X
  • mariadb 10.5.X - 10.6.X
  • PostgreSQL 13.X
  • Oracle 19c - 21c
  • TimescaleDB 2.0.1-2.3
  • SQLite 3.3.5-3.34.X

默认情况下,当检测到不受支持的数据库version时,Zabbix server和proxy将不会启动。不过现在可以通过修改serverproxy的AllowUnsupportedDBVersions配置参数来关闭数据库version检查(尽管不建议这样做)。

主键

新安装的Zabbix系统中所有表(包括历史数据表)现在均采用主键设计。

现有系统不会自动升级为主键结构。 针对手动升级历史数据表为主键的操作指南,适用于以下版本: mysqlpostgresqlpostgresql-timescaledbpostgresql-timescaledb, 以及oracle

PCRE2 支持

已添加对PCRE2的支持。PCRE仍受支持,但Zabbix只能选择PCRE或PCRE2其中一个库进行编译,两者不能同时使用。

以下Zabbix安装包已更新并开始使用PCRE2:

  • RHEL 7及更新版本
  • SLES(所有版本)
  • Debian 9及更新版本
  • Ubuntu 16.04及更新版本

请注意,切换到PCRE2后,您可能需要update某些正则表达式。特别是模式 ^[\w-\.] needs to be changed to ^[-\\w\\.] 需要调整才能继续正常工作 - 详见切换到pcre2后无效的正则表达式获取更详细的说明。

ODBC 检查的独立处理

ODBC检查现在由独立的server/proxy进程odbc轮询器处理。先前,ODBC检查由常规轮询器执行,这些轮询器同时也处理Zabbix agent监控项、SSH检查等任务。

新增了一个配置参数StartODBCPollers到Zabbix serverproxy配置文件中,默认值为1。该参数可能需要根据server 或 proxy执行的ODBC检查数量进行调整。您可能还需要相应减少由StartPollers参数设置的常规轮询器数量。

内部 监控项 zabbix[process,<type>] 可用于监控 ODBC 轮询器负载。

审计日志

为了完善Zabbix的审计日志功能并确保审计日志的完整性和可靠性,我们重构了原有的数据库结构。升级过程中,数据库表auditlogauditlog_details将被格式不同的新表auditlog替代。旧的审计记录将不被保留。

新增 审计日志 审计日志功能已添加到管理→常规菜单中,允许启用(默认)或禁用审计日志记录。原先位于管家菜单下的审计清理设置也已迁移至新的审计日志版块,现有清理设置将被保留。

API 变更

查看Zabbix 6.0.0中的API changes列表

监控 → 概览已移除

监控菜单中的概览部分已被完全移除。 相同功能仍可通过数据概览触发器概览仪表盘widgets访问。

禁用继承触发器的依赖关系变更

现在已禁用修改从模板继承的触发器依赖关系的功能。 原因是当更新模板触发器的依赖关系时,继承触发器的依赖关系会被覆盖。 因此更可靠的做法是始终仅在根模板层级设置触发器依赖关系。

位置宏不再受支持

Zabbix 4.0起已弃用的位置宏($1, $2...$9)在监控项名称中的支持已被完全移除。

监控项 名称中的用户宏不再受支持

Zabbix 4.0起已弃用的在监控项名称(包括自动发现规则名称)中使用用户宏的功能现已被完全移除。

简单宏替换为表达式宏

简单宏的功能已简单宏替换为表达式宏为表达式宏。现有的简单宏将在升级过程中转换为表达式宏。若转换后超出长度限制而无法转换的宏将不会被转换,并在日志file中打印警告信息。

信息类

废弃的内部 监控项 用于历史数据/趋势数据

以下内部监控项现已弃用,并将在未来的主要版本中移除:

  • zabbix[history]
  • zabbix[history_log]
  • zabbix[history_str]
  • zabbix[history_text]
  • zabbix[history_uint]
  • zabbix[trends]
  • zabbix[trends_uint]
Zabbix agent 2 插件

每个Zabbix agent 2插件现在都有独立的configuration file。默认情况下,这些 文件位于./zabbix_agent2.d/plugins.d/目录中。该 路径在agent 2配置file的Include参数中指定,可以是相对于 zabbix_agent2.confzabbix_agent2.win.conf file位置的相对路径。

用户密码

过去,在用户配置表单和登录表单中,用户密码中的空格会被自动去除。在引入可配置的密码要求后, 密码中的空格不再被去除。因此,那些认为自己密码中包含空格的用户将无法像往常一样登录, 必须输入不含空格的"旧"密码。若要继续使用带空格的密码,用户需要重新创建密码。

Prometheus 指标批量处理

由于Prometheus指标的预处理队列中引入了依赖监控项的批量处理机制,依赖监控项将不再并行处理,这可能会影响其处理速度。

运行时命令传输

Zabbix server 和 proxy 运行时命令现在通过套接字而非Unix信号发送。这一变更改进了运行时控制选项的用户体验:

  • 命令执行结果现在会输出到控制台
  • 可以发送更长的输入参数,例如HA节点名称而非节点编号
不再支持收藏的自定义图表

监控 -> 主机 -> 图表中不再支持将自定义图表添加至收藏夹。升级后,所有现有的自定义图表将从收藏夹中移除。

服务监控

针对服务监控功能进行了多项服务。现有服务树配置在升级时将按以下方式变更:

  • 问题与服务间基于触发器的依赖关系将被基于标签的服务问题映射所取代。已关联服务的触发器将get新标签ServiceLink:<trigger ID>:<trigger name>(标签值将被截断至32字符)。关联服务将get相同的问题标签

  • 硬依赖与软依赖不再存在。取而代之的是,服务将拥有多个父级服务。

  • "状态计算算法"将按以下规则升级:

    • Do not calculate → Set status to OK
    • Problem, if at least one child has a problem → Most critical of child services
    • Problem, if all children have problems → Most critical if all children have problems
  • SLA不再是服务属性,而是可分配给多个服务的独立实体。升级过程中,相同的SLA将被分组并为每组创建一个SLA。服务将get新的服务标签SLA:<ID>用于匹配。

另请参阅: