2022 Zabbix中国峰会
2022 Zabbix中国峰会

9 3.4.0 升级日志

Zabbix 3.4.0 尚未发布。

以下是从Zabbix 3.2.x升级到Zabbix 3.4.0的升级日志。

对于Zabbix 3.2.0以前的版本,也可以升级到Zabbix 3.4.0,访问升级过程 版块查看所有关于从Zabbix旧版本升级的相关信息。

额外依赖

IPMI监控目前需要安装libevent库(1.4或以后的版本)。

区分大小写的MySQL数据库

区分大小写的MySQL数据库需要特定的数据库网络支持。建议在新安装过程中,创建一个区分大小写的MySQL数据库。如果之前你创建了一个使用utf8字符集的MySQL数据库,为了使存储的数据支持大小写敏感,你需要将字符集转换成utf8_bin。

配置参数变更

在Zabbix server和proxy的配置中,新增了一个新的配置参数:SocketDir。这个参数指定了Zabbix内部socket文件存放的路径(默认为/tmp)。如果一个服务器上同时运行了一个server和一个proxy,由于server和proxy使用不同的socket文件名,因此对server和proxy使用相同的SocketDir参数值是安全的。但是,如果在一个服务器上运行了多个server或者proxy,需要使用不同的SocketDir配置。

监控项值的预处理选项

监控项值的预处理选项已经进行了统一整合,并在监控项管理中展开成单独的一个版块。因此,之前在监控项/监控项原型下的多个单独的预处理参数被废弃了:

  • 数据类型(Data type), 使用自定义系数(Use custom multiplier) and 存储值(Store value) 栏位
  • API:data_type, multiplierdelta
  • XML导出:data_type, multiplierdelta 标签

在升级期间,所有监控项/监控项远行中的上述属性会自动转换成新的预处理参数。同样的,当导入旧版本的XML文件时,这些选项也会被自动转换成对应的预处理选项。

选择嵌入主机组的语法

如果从Zabbix 3.2.0和3.2.1版本升级,请留意包含嵌入子组(nested subgroups)的语法进行了更改。

在Zabbix 3.2.0和3.2.1版本中,父主机组包含了嵌入式主机组,父组以hostgroup/*进行指定。从Zabbix 3.2.2及Zabbix 3.4.0起, 废弃了'/*'的语法。简单的使用具体的父主机组名称,即可以包含嵌入的主机组。这意味着:如果指定了一个主机组,比如在动作条件(action conditions)中,将会静默地包含所有嵌入的主机组。

协议变更

前端站点和server之间的通信协议进行了改变。脚本执行时,前端到server的请求中添加一个新的参数:“sid”。这个参数获得会话的ID(认证令牌),并用它来检查用户执行脚本的权限。另外,脚本对于主机权限(读/写,只读和拒绝)的额外检查也被添加到了请求中。如果缺少访问主机的必要权限,server会返回拒绝执行脚本的提示。

API变更

废弃了 isreadable()iswritable() 方法,同时也移除了 proxy.interfaces 参数。

执行命令/脚本的变更

在Zabbix 3.4种,由于引入了命令/脚本的退出代码的检查。如果退出代码不为0,告警脚本可以被多次执行。虽然拥有“nowait”标签的监控项的行为没有变化,但是,由于对于退出代码的额外检查,之前通过Zabbix server执行的使用用户变量配置的监控项,外部检查监控项,以及system.run监控项,这些退出代码不为0,因此可能会成为“Not supported”状态。