博文|使用Zabbix官方安装包时几个易混淆的点

举报
Zabbix中国 发表于 2021/06/15 18:12:00 2021/06/15
【摘要】 众所周知,Zabbix官方维护了多个GNU/Linux发行版的安装包存储库,使用户可以以最便捷的方法执行软件软件或更新至最新版本。应遵循官网上的建议安装指南,即可使用Zabbix官方安装包,完成部署。本文分享用户在使用Zabbix安装包时遇到的一些常见的混淆点。 一  为哪个操作系统提供哪些安装包? 我们创建了一个表,让用户通过操作系统对安装包的可用性一目了然。此外,会阐明某些具体问题来消除...

众所周知,Zabbix官方维护了多个GNU/Linux发行版的安装包存储库,使用户可以以最便捷的方法执行软件软件或更新至最新版本。应遵循官网上的建议安装指南,即可使用Zabbix官方安装包,完成部署。本文分享用户在使用Zabbix安装包时遇到的一些常见的混淆点。

 一  为哪个操作系统提供哪些安装包? 

我们创建了一个让用户通过操作系统对安装包的可用性一目了然。此外,会阐明某些具体问题来消除任何可能存在的误解。特别是关于“不再为某些操作系统提供安装包”的问题。

图片

平台支持,点击查看完整版


Zabbix安装包依赖于操作系统提供的其他安装包,这一点是非常重要的。无论是前端所需的web server和PHP安装包,还是所有其他Zabbix组件所需的OpenSSL安装包,Zabbix都受限于操作系统附带的这些安装包的版本或版本的更新程度。

任何专业系统管理员都明白安装最新安全更新的必要性,这是保持系统安全的核心措施之一。除非系统提供必要的安全更新,否则不应使用该系统。但是,除了安全之外,还有其他方面需要考虑。

举个具体案例:Red Hat Enterprise Linux 7。实际上,RHEL/CentOS 7构成了Zabbix安装的一大块内容。


敲黑板!RHEL、CentOS和Oracle Linux使用相同的安装包,因此当提到RHEL时,也指的是CentOS。


图片

 二  为什么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"


RHEL8完全支持TLS 1.3。


HashiCorp 保险库的使用也可能受到低版本OpenSSL版本的影响。


此外,可能还有一些尚未被发现的潜在问题。由于RHEL7上低版本安装包的性质,很难完全预测会出什么问题。

三 总结 

考虑到以上所有因素,决定不为RHEL7提供Zabbix5.2 server组件和前端组件的安装包。尽管对某些用户来说非常不方便,但这迟早要做。它也可以在Zabbix5.4或Zabbix6.0中才做,但也只是将它清除更彻底而已。这是一个痛苦但必要的改变。


哦,对了!我们还是在这些Linux分发版的存储库中,提供了Zabbix 5.2 proxy的安装包以保持某些向后兼容性。但请记住,许多新功能在这些包中并不支持,包括:

  • 不支持TLS 1.3

  • 不支持与加密数据库连接

最重要的是,到Zabbix 5.4,将移除在RHEL7上部署proxy的支持。


注意:

RHEL7仍将为现有的Zabbix客户提供支持。


简而言之,请升级到RHEL 8,这是迟早要做。升级然后忘了这些曾经存在的问题吧。


注意:

我们知道CentOS 8生命周期最近的变化,并正在调查它对Zabbix安装包的影响。

 其他升级方式 

当然,RHEL升级的成本可能会过高。那如果由于某种原因无法升级,有哪些可选项?


  • 使用容器镜像实施部署。这可能是最先进的方案。Zabbix有很棒的容器镜像。如果使用Zabbix 5.2有障碍,请考虑使用它们。


  • 改用Zabbix5.0 LTS。为RHEL7 提供Zabbix5.0安装包,并在一段时间内支持。尽管存在上述已知问题,但这仍是个很好的选择。


  • 从源码编译。当然,这是一条艰难的路。获取源码,开始编译。如果您选择走这条路,那么您必须考虑到系统上的旧安装包可能导致的潜在问题。


最后,我们建议将此作为升级的动力。如果您真的需要Zabbix的新功能,可以考虑使用最新的操作系统。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。