这些说明适用于从 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 升级到 7.0.1(或更高版本)并使用 TimescaleDB 会导致服务器崩溃。 此问题是由 Zabbix 7.0 中审计日志表压缩作业问题的变通方法引起的,该方法不可逆地改变了审计日志表的压缩策略。
请参阅 已知问题 以了解手动修复审计日志表的详细信息。
如果您尚未升级到 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,需要注意的是,从 7.0 之前的 Zabbix 版本升级至 7.0.5 不应存在此类问题。 有关升级说明,请参阅 升级 TimescaleDB 架构。
在历史函数的字符串参数中,已添加了对反斜杠的正确转义。
由于从Zabbix 7.0之前的版本升级时会额外添加反斜杠,这会导致参数变长,如果参数长度超过255个字符的最大数据大小限制,可能会导致触发器函数损坏。
为了避免这个问题,建议在升级前手动将过长的参数移至用户宏中。
请注意,自Zabbix 7.0.11版本起,已为从Zabbix 7.0之前的版本升级时添加了对结果参数长度的额外检查。如果结果长度超过最大大小限制,这些参数不会被升级,同时在日志中打印警告,要求用户手动修复列出的参数。
另请参阅与转义相关的升级问题。
最低要求的 PHP 版本已从 7.4.0 提升至 8.0.0。
Zabbix agent 在 Windows 上查找配置文件的默认位置已更改。现在,agent 会在agent 二进制文件 zabbix_agentd.exe 所在的目录中查找配置文件(而不是之前的 C:\zabbix_agentd.conf
)。
Windows 上的 Zabbix agent 2 以前已经在二进制文件 zabbix_agent2.exe 所在的目录中查找默认配置文件。然而,在新版本中,agent2 期望配置文件名为 zabbix_agent2.conf
(而不是 zabbix_agent2.win.conf
)。
另请参阅:在 Windows 上安装 Zabbix agent。
现在,在 Zabbix agent 2 的插件相关配置参数中允许空值。
TimescaleDB 1.x 的支持已移除
在升级到Zabbix 7.0.0之前,如果使用TimescaleDB并启用了压缩,则需要手动升级TimescaleDB以使用双精度数据类型。 可以通过系统信息前端部分或Zabbix服务器日志中的警告来判断TimescaleDB是否未使用双精度数据类型: "数据库尚未升级以使用双精度值。在未来的版本中,将移除对旧数值类型的支持。"
更多信息,请参阅升级到扩展范围的数值。
在新安装中,auditlog
表已转换为TimescaleDB上的超表,以从时间上的自动分区(默认为7天)和更佳性能中获益。
为了成功升级现有安装,请参阅升级TimescaleDB架构。
另请参阅:支持的TimescaleDB版本
代理记录已从 hosts
表中移出,并现在存储在新的 proxy
表中。
此外,代理的运行数据(如上次访问时间、版本、兼容性)已从 host_rtdata
表中移出,现在存储在新的 proxy_rtdata
表中。
API 中也新增了一个新的 proxy 对象。所有与代理相关的操作都应更新为通过这个新的代理对象进行。
根据item超时配置的更改,对于数据库监控项,ODBC登录超时和查询执行超时现在都限制为在item配置表单中设置的超时参数值。
wmi.get
和 wmi.getall
现在返回一个JSON,其中布尔值被表示为字符串(例如,"RealTimeProtectionEnabled": "True"
,而不是之前返回的 "RealTimeProtectionEnabled": true
),以匹配这些项在Zabbix agent上的输出格式;oracle.ts.stats
新增了一个conname参数,用于指定目标容器名称。返回数据的JSON格式已更新。当在键参数中未指定tablespace、type或conname时,返回的数据将包含一个额外的JSON级别,其中包含容器名称,允许区分不同的容器。net.dns.*
项。虽然name参数一直被列为强制的,但如果省略,它以前会解析为一个默认值(zabbix.com),但现在不再是这样。有关不会破坏兼容性的监控项更改列表,请参阅Zabbix 7.0.0的新功能。
现在,Zabbix在高可用性设置中切换活动节点时可以从正确位置读取SNMP trap文件。
但是,为了使此功能正常工作,需要将所有bash、perl和SNMPTT脚本中的时间格式更新为"%Y-%m-%dT%H:%M:%S%z"(例如2024-01-10T11:56:14+0300
)。
所有小部件的默认宽度已增加了3倍。请注意,如果您使用自定义小部件,可能需要更新manifest.json文件的相应参数(例如,在配置自定义时钟小部件时,width
需要从4
更改为12
)。
现在,一个小部件的宽度最多可以达到72列(之前为24列),高度可以为1至64行(之前为2至32行)。因此,仪表板现在可以横向容纳多达72个小部件。
全新的 监控项历史 仪表盘小部件已取代了 纯文本 小部件,提供了多项改进。
与仅以纯文本形式显示最新监控项数据的 纯文本 小部件不同,监控项历史 小部件支持多种显示选项,适用于多种监控项类型(数值、字符、日志、文本和二进制)。 例如,它可以显示进度条或指示器,为二进制数据类型显示图像(对于 浏览器监控项 非常有用),以及突出显示文本值(对于 日志文件监控 非常有用)。
升级后,所有先前配置的 纯文本 小部件将自动替换为 监控项历史 小部件,保留相同的配置设置。 但是,任何API脚本 引用 纯文本 小部件的必须手动更新。
在 Zabbix 7.0.4 中,宏 {HOST.CONN}
, {HOST.DNS}
, {HOST.IP}
, {EVENT.CAUSE.*}
, {EVENT.TAGS.*}
, 和 {EVENT.SYMPTOMS}
的解析行为已修正,以保持与其他内置宏的一致性。现在,如果在评估它们的值时发生错误,它们将解析为 *UNKNOWN*
。
由于这一变更,为了确保功能的正确性,需要更新以下集成的媒体类型:iTop, Jira Service Desk, ManageEngine ServiceDesk, SolarWinds Service Desk。
这一变更也可能影响使用上述宏的任何自定义脚本或集成。
查看Zabbix 7.0.0中的API变更列表。
自 Zabbix 7.0 起,对 Oracle 作为后端数据库的支持已经被废弃,并预计在未来版本中将被完全移除。
现在,新安装和现有安装都默认添加了软件更新检查功能 - Zabbix 前端将与公共 Zabbix 端点通信,以检查更新。
您可以通过在服务器配置中设置 AllowSoftwareUpdateCheck=0 来禁用此检查。
现在,如果接收到一个无符号整数项的浮点值,该值将从小数部分修剪并保存为整数。之前,浮点值会使整数项变为不受支持的。
当使用默认(en_US)前端语言时,前端中的时间和日期显示现在符合美国标准的时间/日期显示格式。
之前 | 现在 |
---|---|
![]() |
![]() |
升级后,所有代理、HTTP代理和 walk[OID]
SNMP 检查将被移动到异步轮询器。
以前,Zabbix server、proxy或agent的 cURL 库功能是在构建时检测的。如果 cURL 功能被升级,为了利用它们,必须重新编译相应的 Zabbix 组件。
现在,只需重新启动即可使升级后的 cURL 库功能在 Zabbix 中生效,不再需要重新编译。这对于 Zabbix server、proxy或agent都是如此。
另外:
升级后,所有支持的监控项类型的全局超时将根据服务器配置文件中的 Timeout
参数值设置。 如果配置了proxy,则默认情况下,它将使用服务器的全局超时设置。
当使用升级后的server(版本为 7.0.0 或更新版本)与较旧的proxy或agent时,proxy或agent将像以前一样工作:
已从Modbus和MQTT插件的配置文件中删除了超时参数。 现在可以使用监控项配置表单设置请求执行超时。
Zabbix 新增了一种新的监控项类型 - 浏览器监控项,可以使用浏览器监控复杂的网站和 Web 应用程序。 浏览器监控项允许执行用户定义的 JavaScript 代码,模拟浏览器相关操作,如点击、输入文本、浏览网页等。
此外,此功能还增加了以下更改:
StartBrowserPollers
和 WebDriverURL
Zabbix 服务器/代理 配置文件参数;-w <webdriver url>
命令行参数以启用浏览器监控到 zabbix_js
命令行实用工具。新版本中重新设计了网络发现过程,允许在服务检查之间实现并发性。 新增了一个发现管理器进程以及可配置数量的发现工作线程(或线程)。发现管理器进程处理发现规则,并为每个规则创建一个带有任务(服务检查)的发现作业。服务检查由发现工作线程接收并执行。
StartDiscoverers 参数现在确定了用于发现的总可用发现工作线程数。 StartDiscoverers 的默认值从 1 提高到 5,并且范围从 0-250 提高到 0-1000。从之前 Zabbix 版本中的 discoverer
进程已被删除。
此外,现在可以在前端配置每个规则的可用工作线程数。此参数为可选参数。 在升级过程中,它将被设置为前面 Zabbix 版本中的 "One"。
前端中的所有图标都已从图标图像表单切换为字体。
在监控 → 最新数据中,默认情况下,如果未设置筛选器,则不再显示子筛选器和数据。 但请注意,以前使用仅子筛选器设置的保存的筛选器不受影响。 在这种情况下,子筛选器将保持可见,并且即使没有设置主筛选器,数据也将显示出来。
以下几个配置参数的默认值已更改:
Plugins.<PluginName>.Capacity
已被完全移除;这些更改不会影响已显式设置了这些参数的现有安装。
多个聚合函数已经更新。现在:
自Zabbix 5.0起,数值(浮点)数据类型支持大约15位数的精度,范围大约从-1.79E+308到1.79E+308。 旧的数值类型虽已禁用但仍受支持。到了Zabbix 6.4,它被标记为已废弃,并且从Zabbix 7.0开始,它已被完全移除。
如果您的安装尚未升级以使用扩展范围的数值,则在报表 → 系统信息中会显示以下警告: "数据库历史表已升级:否。对旧的数值类型的支持已废弃。请升级到扩展范围的数值。"
在升级到Zabbix 7.0时,以下数据库会自动升级:
但是,对于Oracle、旧版MySQL以及大型安装,建议在升级到Zabbix 7.0之前手动升级数据类型。
对于TimescaleDB带压缩的数据库,必须手动升级。
有关升级详情,请参阅升级到扩展范围的数值。
已添加设置 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并准备数据库模式时,数据库相关文件的位置已更改,以更好地对应源代码中的文件结构:
schema.sql
,data.sql
,images.sql
)位于数据库目录的根目录。option-patches
目录。tsdb
已被timescaledb
替换。option-patches
目录包括with-compression
和without-compression
子目录; 这些包含可选文件/补丁用于升级数据库表取决于TimescaleDB压缩设置。database/postgresql/timescaledb/schema.sql
。此外,请注意以下更改:
history_pk_*.sql
文件已重命名为history_upgrade_*.sql
,并添加了一个trends_upgrade.sql
文件以改进数据库升级脚本。double.sql
文件已被删除,因为旧的数值(浮点)值类型已被移除。下面是MySQL和PostgreSQL数据库的先前和当前目录结构的比较。
# 以前: # 当前:
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
└── ...
如果您的脚本中包含对先前目录结构或文件的引用,请更新您的脚本。
已实现基于JSON的协议用于被动agent检查。
为了与旧版agent保持兼容,已添加回退到旧版纯文本协议的功能。如果agent返回"ZBX_NOTSUPPORTED",Zabbix将缓存接口为旧协议,并通过仅发送纯文本item键来重试检查。
Zabbix get现在可以使用新的选项-P --protocol <value>
运行,其中"value"可以是:
如果item键不受支持,Zabbix get现在将返回退出代码1
,而不是0
。