概述

如果你从官方提供的安装包完成了Zabbix 5.0的干净的安装, 使用yum搜索Zabbix时,您可能会注意到缺少前端包。.

这是因为前端包被移动到了一个专用的前端子目录 .
然而, Zabbix前端是可以被安装的,前提是PHP 7.2依赖条件已经提供.

为了方便起见,已经从主zabbix-web包中删除了对PHP的任何直接依赖。这为解决PHP7.2依赖关系的方法提供了更大的灵活性。

建议使用Red Hat软件集合中的PHP包。 Red Hat Software Collections.
启用PHP包,执行:

在RHEL环境下

  1. # yum-config-manager --enable rhel-server-rhscl-7-rpms

在CentOS环境下

  1. # sudo yum install centos-release-scl

在Oracle Linux环境下

  1. # yum install scl-utils
  2. # yum install oraclelinux-release-el7
  3. # /usr/bin/ol_yum_configure.sh
  4. # yum-config-manager --enable software_collections
  5. # yum-config-manager --enable ol7_latest ol7_optional_latest

此时,执行

  1. # yum list rh-php7\*

会返回显示新的rh-php7*列表.

然后, 编辑 /etc/yum.repos.d/zabbix.repo 文件 (如果没有此文件, 先安装 ). 打开 zabbix-frontend 存储库.

  1. [zabbix-frontend]
  2. ...
  3. enabled=1
  4. ...

enabled=0 替代成 enabled=1.

在此阶段,通过yum搜索Zabbix将返回zabbix-web包和四个新包。 这四个包是:

  1. zabbix-nginx-conf-scl.noarch : NginxZabbix前端配置 (scl 版本)
  2. zabbix-web-deps-scl.noarch : 用于从redhat软件集合安装zabbix-web包所需PHP依赖项的便利包
  3. zabbix-web-mysql-scl.noarch : 用于MySQL数据库的Zabbix web前端包 (scl 版本)

在安装MySQL数据库所需的zabbix-web-mysql-scl或者 PostgreSQL数据库所需的zabbix-web-pgsql-scl. 取决于Web服务器的需要,也请安装zabbix-apache-conf-scl 或者 zabbix-nginx-conf-scl.

在Zabbix 4.4版本中,已经加入了对Nginx的支持, 但是官方的RHEL/CentOS 7存储库中没有可用的web服务器. 因此, 它必须通过第三方仓库提供, 由用户安装。尤其是 epel. 在Zabbix 5.0, 如果您选择使用Red Hat软件集合, 无需使用任何第三方存储库,因为SCL中提供Nginx. 只需安装zabbix-nginx-conf-scl包.

新包的技术细节

zabbix-web-deps-scl

这个包用于从Red Hat软件集合中提取Zabbix前端的常见PHP依赖项。.

  1. # repoquery --requires zabbix-web-deps-scl
  2. rh-php72
  3. rh-php72-php-bcmath
  4. rh-php72-php-fpm
  5. rh-php72-php-ldap
  6. rh-php72-php-mbstring
  7. rh-php72-php-xml

它还包含用于Zabbix的php fpm池,因为在这种配置中,前端可以通过fastcgi与Apache和Nginx一起工作。
配置文件位于/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf.

zabbix-web-mysql-scl

  1. # repoquery --requires zabbix-web-mysql-scl
  2. rh-php72-php-mysqlnd
  3. zabbix-web
  4. zabbix-web-deps-scl

zabbix-web-pgsql-scl

元软件包用于获取zabbix-web包、PHP对PostgreSQL数据库模块的支持以及常见的PHP依赖项。

zabbix-apache-conf-scl

这个包用于获取apache并包含/etc/httpd/cond.d/zabbix.conf 文件.

  1. # repoquery --requires zabbix-apache-conf-scl
  2. httpd
  3. zabbix-web-deps-scl

zabbix-nginx-conf-scl

这个包用于从Red Hat软件集合中提取Nginx.

  1. # repoquery --requires zabbix-nginx-conf-scl
  2. rh-nginx116-nginx
  3. zabbix-web

它还包含Nginx服务器所需的Zabbix配置文件,文件在 /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf.

如果由于某些原因不能够使用Red Hat软件集合, 可以用以下的替代办法:

  • 使用任何可以提供PHP的第三方存储库。

  • 从源代码构建PHP。

Zabbix前端所需的PHP模块是php-gd, php-bcmath, php-mbstring, php-xml, php-ldapphp-json.

从旧版本Zabbix升级至Zabbix 5.0版本

在旧版本升级至Zabbix 5.0版本时,需要特别注意一些事项。

请查看通用升级指引.

Red Hat软件集合中的包旨在避免与主存储库中的文件冲突.
每一个特定的包都被安装到一个单独的环境中,专门用于它的组.
例如, 来自rh-php72-php*组的 在 /etc/opt/rh/rh-php72/ 目录下会有对应的配置文件, 日志会生成在 /var/opt/rh/rh-php72/log/ 目录下, 等等. 这些包提供的服务具有不寻常的名称,如rh-php72-php-fpm or rh-nginx116-nginx

官方的zabbix5.0前端包将php-fpm与Apache和Nginx结合使用

在Apache环境下的升级进程

本章节提供了有关将Zabbix前端和服务端从4.0版本或4.4版本升级到5.0版本,与Apache相关的特定说明. 与Nginx相关的指引请参见在Nginx环境下的升级进程.
下面的说明是针对已经安装MySQL支持的Zabbix服务。将命令中的“mysql”替换为“pgsql”可以适用于PostgreSQL数据库

下面假设Zabbix前端和Zabbix服务安装在同一台服务器上。如果您的Zabbix相关服务安装与之不同,请根据实际情况调整。

清除旧的Zabbix前端

  1. yum remove zabbix-web-*

安装 SCL 存储库

RHEL环境下执行

  1. yum-config-manager --enable rhel-server-rhscl-7-rpms

CentOS环境下执行

    在 环境下执行

    1. yum install scl-utils
    2. yum install oraclelinux-release-el7
    3. /usr/bin/ol_yum_configure.sh
    4. yum-config-manager --enable software_collections
    5. yum-config-manager --enable ol7_latest ol7_optional_latest

    安装Zabbix 5.0发行包并启用Zabbix前端存储库

    安装 zabbix-release-5.0 包.

    1. rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
    2. yum clean all

    编辑 /etc/yum.repos.d/zabbix.repo file. 把 enabled=0 替换成 enabled=1.

    1. [zabbix-frontend]
    2. ...
    3. enabled=1
    4. ...

    安装新的前端包

    官方Zabbix 5.0前端包使用php-fpm. 在/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf文件中更新时区.

    更新剩余的包并重启Zabbix server

    1. yum update zabbix-*

    重启Zabbix server 将会升级数据库. 请确保数据库已经备份.

    1. systemctl restart zabbix-server

    更新剩余的服务

    启用并开启php-fpm服务。

    1. systemctl start rh-php72-php-fpm
    2. systemctl enable rh-php72-php-fpm

    重启Apache.

    1. systemctl restart httpd

    在Nginx环境下的升级进程

    遵循上面描述的apache升级过程,但做一些调整.
    以下几个步骤需要执行:

    在升级之前,请确保停止并禁用旧的Nginx和php-fpm。执行:

    1. systemctl stop nginx php-fpm
    2. systemctl disable nginx php-fpm

    为php-fpm编辑zabbix.conf 文件时, 添加用户nginxlisten.acl_users

    1. listen.acl_users = apache,nginx

    确保zabbix-nginx-conf-scl 包已经被安装,而不是zabbix-apache-conf-scl包被安装.

    1. yum install zabbix-nginx-conf-scl
    1. # listen 80;

    启动并启用 Nginx和php-fpm