Zabbix安装包依赖于操作系统提供的其他安装包,这一点是非常重要的。无论是前端所需的web server和PHP安装包,还是所有其他Zabbix组件所需的OpenSSL安装包,Zabbix都受限于操作系统附带的这些安装包的版本或版本的更新程度。
任何专业系统管理员都明白安装最新安全更新的必要性,这是保持系统安全的核心措施之一。除非系统提供必要的安全更新,否则不应使用该系统。但是,除了安全之外,还有其他方面需要考虑。
举个具体案例:Red Hat Enterprise Linux 7。实际上,RHEL/CentOS 7构成了Zabbix安装的一大块内容。 敲黑板!RHEL、CentOS和Oracle Linux使用相同的安装包,因此当提到RHEL时,也指的是CentOS。
[attach]58502[/attach]
二 为什么Zabbix5.2只为RHEL提供 zabbix-agent,zabbix-sender,zabbix-get?
很多人可能已经注意到,当Zabbix5.2发布时,只为RHEL7提供了zabbix-agent, zabbix-sender 和 zabbix-get。这是什么原因?
Red Hat backposts 为旧的安装包提供安全修复,这是非常有用的。但是,Zabbix用作依赖项的基本安装包相当陈旧。
例如,RHEL 7的官方更新源中,提供以下安装包:
PHP 5.4.16
MariaDB 5.5.68 & PostgreSQL 9.2.24
OpenSSL 1.0.2k
让我们看看这些版本的安装包作为Zabbix的依赖,具体有些什么问题。
PHP 5.4
从Zabbix5.0开始,前端组件需要依赖PHP 7.2或更高版本。简单地说,我们的前端开发人员需要利用新的PHP特性来改善用户体验。此外,7.2是上游版本中最老的受支持版本。
可想而知,由于随系统分发的是PHP 5.4版本,这让在RHEL7上使用Zabbix安装包时会导致一些问题,这是由于发行了PHP 5.4版本。原本打算完全放弃对RHEL7上Zabbix5.0前端的支持,但在与支持团队协商后,决定设法继续提供这些安装包。
Red Hat Software Collections 中,Zabbix5.0前端安装包是基于PHP 7.2的RH SCL。虽然保留下来了,但这仍然不是最明确的解决办法。很多事情不得不改变通常的做法。必须对配置文件和用户说明进行更改。更改了存储库结构,并重命名了与前端相关的安装包,以包含“scl”后缀来显示已更改。结果就是这些更改使得维护安装包相当困难。此外,在安装这些安装包时,尤其是从以前的版本升级时,用户需要特别注意。
顺带提一下,有相同问题的基于Debian的发行版,前端安装包已完全不支持。
旧数据库和OpenSSL
与数据库的安全连接是在Zabbix5.0的新功能,但是它在RHEL7上不能实现。
实操一下。将DBTLSConnect=required选项放入/etc/zabbix/zabbix_server.conf文件并尝试重新启动Zabbix server。将出现以下错误告知失败:
"DBTLSConnect" configuration parameter cannot be used: Zabbix server was compiled without PostgreSQL or MySQL library version that support TLS
失败的原因是RHEL7提供旧的数据库安装包。虽然使用RH-SCL是可选的方案,但实施RH-SCL比直接调试Zabbix5.0前端组件至让其正常工作所耗费的精力更多。考虑到RHEL7即将退出,实现和支持它需要付出太多的努力。
另一个问题是低版本的OpenSSL安装包不支持使用TLS 1.3等特性。
例如,将TLSCipherPSK13=TLS_AES_128_GCM_SHA256 设置添加到/etc/zabbix/zabbix_proxy.conf,然后重启server。proxy日志文件中会出现以下错误。
cannot set list of TLS 1.3 PSK ciphersuites: compiled with OpenSSL version older than 1.1.1. Consider not using parameters "TLSCipherPSK13" or "--tls-cipher13"