这些说明适用于从 Zabbix 6.4.x 升级到 Zabbix 7.0.0。
所有说明分为以下几类:
另请参阅:
在对 MySQL/mariadb 上的 Zabbix server 进行成功升级时,如果启用了二进制日志记录,且没有超级用户权限,同时 MySQL 配置文件中未设置 log_bin_trust_function_creators = 1
,则可能需要在 MySQL 中设置 GLOBAL log_bin_trust_function_creators = 1
。
要通过 MySQL 控制台设置该变量,请运行以下命令:
升级成功完成后,可以禁用此选项:
从 Zabbix 7.0.0 升级到 Zabbix 7.0.1(或更高版本)并使用 TimescaleDB 会导致服务器崩溃。 这是由于在Zabbix 7.0中对auditlog表的压缩作业问题采用了一种变通方法,该方法不可逆地更改了auditlog表的压缩策略而导致的问题。
有关手动修复审计日志表的详细信息,请参见已知问题 问题。
如果您尚未升级到 Zabbix 7.0.0,请注意,从旧于 7.0 版本的 Zabbix 升级到 7.0.1 时,不应存在此类 问题。 有关升级说明,请参见 升级timescaledb架构。
使用pg_restore
还原Zabbix 7.0.0-7.0.4创建的PostgreSQL或TimescaleDB备份时,将导致缺少base36_decode
函数错误,从而使还原操作失败。
在使用pg_dump
创建的备份进行还原时会出现此错误。
有关在创建备份之前手动修复此问题的详细信息,请参见已知问题。
如果您尚未升级到Zabbix 7.0.0,请注意从Zabbix 7.0之前的版本升级到7.0.5时不应出现此类问题。
有关升级说明,请参见升级timescaledb架构。
历史函数string参数中已添加对反斜杠的正确转义。
在从旧于7.0版本的Zabbix升级过程中,由于额外添加了反斜杠,这会导致参数变长。如果参数长度超过最大数据大小255个字符,可能会导致触发器函数异常。
为了避免这个问题,建议在升级前将较长的参数手动移至用户宏中。
请注意,自Zabbix 7.0.11起,针对从旧于7.0版本的Zabbix升级,已新增对最终参数长度的检查。如果最终长度超过最大限制,则不会升级这些参数,并在日志中打印警告信息,提示用户手动修复列出的参数。
另请参阅escaping-related upgrade issues。
PHP 所需的最低 version 已从 7.4.0 提高到 8.0.0。
在 Windows 上,Zabbix agent 查找配置 file 的默认位置已更改。现在 agent 会在 agent 二进制文件 zabbix_agentd.exe 所在的目录中查找该配置(之前是在 C:\zabbix_agentd.conf
中)。
在 Windows 上,Zabbix agent 2 已经会在二进制文件 zabbix_agent2.exe 所在的目录中查找默认配置 file。然而,在新的 version 中,agent 2 期望配置 file 的名称为 zabbix_agent2.conf
(而不是 zabbix_agent2.win.conf
)。
另请参阅:Installing Zabbix agent on Windows。
现在允许在与插件相关的配置参数中使用空值,适用于Zabbix agent 2。
不再支持 TimescaleDB 1.x。
升级到 Zabbix 7.0.0 之前,如果使用了 TimescaleDB 并启用了压缩功能,必须手动将 TimescaleDB 升级为使用双精度数据类型。 如果 TimescaleDB 未使用双精度数据类型,可以通过 System information 前端部分或 Zabbix server 日志中的警告判断: "Database is not upgraded to use double precision values. Support for the old numeric type will be removed in future versions."
有关更多信息,请参阅 Upgrading to numeric values of extended range。
auditlog
表在新安装中已转换为 TimescaleDB 上的超表(hypertable),以受益于基于时间的自动分区(默认为 7
天)和更好的性能。
要成功升级现有安装,请参见 升级timescaledb架构。
另请参见:第三方外部配套软件
Proxy 记录已移出 hosts
表,现在存储在新的 proxy
表中。
此外,proxies 的操作数据(如上次访问时间、版本、兼容性)也已移出 host_rtdata
表,现在存储在新的 proxy_rtdata
表中。
在 API 中还新增了一个 proxy object。所有与 proxies 相关的操作都应更新为通过这个新的 proxy object 来完成。
根据对监控项 超时配置的更改,现在通过ODBC login 超时以及针对 zabbix前端中的监控项配置 监控项 的 query 执行超时均受限于在 配置 表单中设置的 Timeout 参数值。
wmi.get
和 wmi.getall
在与 Zabbix agent 2 一起使用时,现在返回的 JSON 中将 boolean 值表示为字符串(例如,使用 "RealTimeProtectionEnabled": "True"
"RealTimeProtectionEnabled": true
),以匹配这些 监控项 在 Zabbix agent 上的输出格式;oracle.ts.stats
新增 conname 参数用于指定net.dns.*
监控项 现在无法在不配置 name 参数的情况下使用。有关不破坏兼容性的 监控项 变更列表,请参见 监控项。
在高可用性设置中,如果活动节点发生切换,Zabbix 现在可以从正确的位置读取 SNMP trap 文件。
但是,要使此功能正常工作,必须将任何 bash、perl 和 SNMPTT 脚本中的时间格式 update 为 "%Y-%m-%dT%H:%M:%S%z"(例如:2024-01-10T11:56:14+0300
)。
所有小部件的默认宽度已增加 3 倍。请注意,如果您使用的是自定义小部件,则可能需要 update manifest.json 文件的相应 仪表盘 file(例如,在配置自定义的 配置时钟部件 小部件时,需将 width
从 4
更改为 12
)。
一个 widget 现在可以宽达 72 列(之前为 24),并且高度可以在 1 到 64 行之间(之前为 2 到 32)。因此,仪表板现在可以在水平方向上容纳多达 72 个小部件。
新的 Item history 仪表板 widget 已取代 纯文本 小部件,提供了多项改进功能。
与仅以纯文本形式显示最新 监控项 数据的 纯文本 小部件不同,监控项 历史记录 widget 支持多种 监控项 类型(数值、字符、日志、文本和二进制)的多种显示选项。 例如,它可以显示进度条或指示器、二进制数据类型的图像(适用于 browser items),以及高亮显示文本值(适用于 log file monitoring)。
升级后,所有先前配置的 纯文本 小部件将自动替换为 监控项 历史记录 小部件,并保留相同的配置设置。 但是,任何 API 脚本 仪表盘 widget 必须手动更新。
在 Zabbix 7.0.4 中,宏 {HOST.CONN}
、{HOST.DNS}
、{HOST.IP}
、{EVENT.CAUSE.*}
、{EVENT.TAGS.*}
和 {EVENT.SYMPTOMS}
的解析行为已得到修正,以与其他内置宏保持一致。现在,如果在解析其值时发生错误,它们将解析为 *UNKNOWN*
。
由于此更改,为了确保功能正常,必须 update 以下集成的媒介类型:iTop、Jira Service Desk、ManageEngine ServiceDesk、SolarWinds Service Desk。
此更改还可能影响使用上述宏的任何自定义脚本或集成。
请参阅 Zabbix 中的API changes列表。7.0.0。
自 Zabbix 7.0 起,Oracle 作为后端数据库的支持已被弃用,并预计在未来的版本中完全移除。
{HEADER_10271072}
现在,默认情况下会在新安装和现有安装中添加软件 update 检查 — Zabbix 前端将与公共 Zabbix 端点通信以检查更新。
您可以通过在服务器 允许软件更新检查 中设置 AllowSoftwareUpdateCheck=0 来禁用此检查。
现在,如果接收到浮点数值用于无符号的 整数监控项, 该数值的小数部分将被截断,并作为 integer 保存。 此前,浮点数值会使 整数监控项 变为不支持的状态。
当使用默认(en_US)前端语言时,前端中的时间和日期显示现在符合美国标准的时间/日期显示格式。
之前 | 当前 |
---|---|
![]() |
![]() |
升级后,所有 agent、HTTP agent 和 walk[OID]
SNMP 检查将被移至 异步轮询器。
此前,在构建 Zabbix server、proxy 或 agent 时会检测 cURL 库的功能。如果升级了 cURL 功能,则必须重新编译相应的 Zabbix 组件才能使用这些新功能。
现在,升级 cURL 库功能后只需重启 Zabbix 即可使用这些功能,不再需要重新编译。此改进适用于 Zabbix server、proxy 和 agent。
此外:
升级后,所有受支持的 监控项 类型的 超时 将根据服务器配置文件中的 Timeout
参数值进行设置。 如果配置了 proxy,则默认情况下,它将使用服务器的全局超时设置。
当使用升级后的服务器(version 7.0.0 或更新版本)与较旧的 proxy 或 agent 时,该 proxy 或 agent 将像以前一样工作:
超时参数已从 Modbus 和 MQTT 插件的配置文件中移除。 现在可以使用配置表单设置请求执行超时时间。
一种新的 监控项 类型 - Browser item - 已添加到 Zabbix,可以使用浏览器监控复杂的网站和 Web 应用程序。 浏览器 监控项 允许执行用户定义的 JavaScript 代码,以模拟与浏览器相关的操作,例如点击、输入文本、浏览网页等。
此外,此功能还添加了以下更改:
StartBrowserPollers
和 WebDriverURL
Zabbix webdriverurl/webdriverurl 配置 file 参数已添加;-w <webdriver url>
命令行参数添加到 zabbix_js
command-line utility。在新的 version 中,网络发现流程已被重构,以支持服务检查之间的并发性。
新增了一个发现管理器进程以及可配置数量的发现工作进程(或线程)。发现管理器处理发现规则,并为每条规则创建一个包含任务(服务检查)的发现作业。服务检查由发现工作进程拾取并执行。
启动发现进程 参数现在用于确定发现可用的总发现工作进程数。
默认的 StartDiscoverers 数量已从 1 提升至 5,范围也从 0-250 扩展至 0-1000。旧版本 Zabbix 中的 discoverer
进程已被移除。
此外,每条规则可用的工作进程数量现在可以在前端进行配置。该参数是可选的。
在升级过程中,该参数将默认设置为“一个”,与旧版本 Zabbix 一致。
前端中的所有图标已从图标图像集切换为字体。
在 监控 → Latest data 中,如果未设置过滤器,则子过滤器和数据将不再默认显示。
但是请注意,之前仅使用子过滤器设置的保存过滤器仍不受影响。
在这种情况下,即使未设置主过滤器,子过滤器仍将可见,并且数据也会显示。
以下配置参数的默认值已更改:
Plugins.<PluginName>.Capacity
在 Zabbix 6.0 中已被弃用,现已完全移除;这些更改不会影响已明确设置这些参数的现有安装。
若干聚合函数已更新。现在:
自 Zabbix 5.0 起,数值型(float)数据类型支持大约 15 位的精度,范围从大约 -1.79E+308 到 1.79E+308。
旧的数值类型已被禁用但仍受支持。从 Zabbix 6.4 开始,该类型被标记为弃用,并从 Zabbix 7.0 开始完全移除。
如果您的安装尚未升级以使用扩展范围的数值类型,则在 报告 → System information 中会显示以下警告:
“数据库历史表已升级:否。旧数值类型的支持已被弃用。请升级到扩展范围的数值类型”。
在升级到 Zabbix 7.0 时,以下数据库将自动升级:
然而,对于 Oracle、较旧的 MySQL 版本以及大型安装,建议在升级到 Zabbix 7.0 之前手动升级数据类型。
对于启用压缩的 TimescaleDB,数据库必须手动升级。
有关升级的详细信息,请参见 Upgrading to numeric values of extended range。
已添加设置 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 服务的可靠性与性能,特别是在系统重启期间。
有关新模板和现有模板的更改,请参阅模板更改。
当installing Zabbix from packages并准备数据库架构时,数据库相关文件的位置已发生变更,以更好地对应源代码中的file结构:
此外,请注意以下变更:
以下是MySQL和PostgreSQL数据库新旧目录结构的对比:
# Previous: # Current:
database database
├── mysql ├── mysql
│ ├── data.sql │ ├── option-patches
│ ├── double.sql │ │ └── history_upgrade_prepare.sql
│ ├── history_pk_prepare.sql │ ├── data.sql
│ ├── images.sql │ ├── images.sql
│ └── schema.sql │ └── schema.sql
│ │
│ │
├── postgresql ├── postgresql
│ ├── tsdb_history_pk_upgrade_no_compression │ ├── option-patches
│ │ ├── history_pk.sql │ │ └── history_upgrade_prepare.sql
│ │ ├── history_pk_log.sql │ ├── timescaledb
│ │ ├── history_pk_str.sql │ │ ├── option-patches
│ │ ├── history_pk_text.sql │ │ │ ├── with-compression
│ │ └── history_pk_uint.sql │ │ │ │ ├── history_upgrade.sql
│ ├── tsdb_history_pk_upgrade_with_compression │ │ │ │ ├── history_upgrade_log.sql
│ │ ├── history_pk.sql │ │ │ │ ├── history_upgrade_str.sql
│ │ ├── history_pk_log.sql │ │ │ │ ├── history_upgrade_text.sql
│ │ ├── history_pk_str.sql │ │ │ │ ├── history_upgrade_uint.sql
│ │ ├── history_pk_text.sql │ │ │ │ └── trends_upgrade.sql
│ │ └── history_pk_uint.sql │ │ │ └── without-compression
│ ├── data.sql │ │ │ ├── history_upgrade.sql
│ ├── double.sql │ │ │ ├── history_upgrade_log.sql
│ ├── history_pk_prepare.sql │ │ │ ├── history_upgrade_str.sql
│ ├── images.sql │ │ │ ├── history_upgrade_text.sql
│ ├── schema.sql │ │ │ ├── history_upgrade_uint.sql
│ └── timescaledb.sql │ │ │ └── trends_upgrade.sql
│ │ │ └── schema.sql
│ │ ├── data.sql
│ │ ├── images.sql
│ │ └── schema.sql
├── ... ├── ...
如果您的脚本中包含对旧目录结构或文件的引用,请update这些脚本。
已实现基于 JSON 的 被动检查 协议。
为了与旧版 agents 兼容,已添加回退到旧明文协议的功能。如果 agent 返回 "ZBX_NOTSUPPORTED",Zabbix 将缓存该接口为旧协议,并通过仅发送明文 监控项 键重试检查。
Zabbix get 现在可以在 run 时使用新选项 -P --protocol <value>
,其中 "value" 可以是以下值之一:
如果某个 监控项 键不受支持,Zabbix get 现在将返回退出码 1
,而不是 0
。