Sidebar

Zabbix Summit 2022
Register for Zabbix Summit 2022

6 Установка веб-интерфейса на RHEL/CentOS 7

Обзор

Начиная с версии 5.0 веб-интерфейс Zabbix требует наличия PHP версии 7.2 или выше. К сожалению, RHEL / CentOS 7 предоставляет только PHP 5.4. На этой странице описан предлагаемый метод установки Zabbix frontend 5.0 на RHEL / CentOS 7.

Использование PHP и Nginx из Red Hat Software Collections

Если вы выполняете чистую установку Zabbix 5.0 с использованием официальных пакетов отrepo.zabbix.com, вы можете заметить, что пакеты веб-интерфейса отсутствуют при поиске Zabbix с помощью yum.

zabbix-agent.x86_64 : Old Zabbix Agent
       zabbix-get.x86_64 : Zabbix Get
       zabbix-java-gateway.x86_64 : Zabbix java gateway
       zabbix-js.x86_64 : Zabbix JS
       zabbix-proxy-mysql.x86_64 : Zabbix proxy for MySQL or MariaDB database
       zabbix-proxy-pgsql.x86_64 : Zabbix proxy for PostgreSQL database
       zabbix-proxy-sqlite3.x86_64 : Zabbix proxy for SQLite3 database
       zabbix-release.noarch : Zabbix repository configuration
       zabbix-sender.x86_64 : Zabbix Sender
       zabbix-server-mysql.x86_64 : Zabbix server for MySQL or MariaDB database
       zabbix-server-pgsql.x86_64 : Zabbix server for PostgresSQL database

Это связано с тем, что пакеты веб-интерфейса были перемещены в отдельную вложенную папку frontend.
Однако их все еще можно установить, если предоставлены зависимости PHP 7.2.

Для вашего удобства прямая зависимость от PHP была удалена из основного пакета zabbix-web. Это дает большую гибкость в выборе способа решения вопроса зависимости PHP 7.2.

Рекомендуется использовать пакеты PHP из Red Hat Software Collections.
Чтобы активировать их, выполните:

На RHEL

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

На CentOS

# sudo yum install centos-release-scl

На Oracle Linux

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

После этого команда

# yum list rh-php7\*

Должна возвращать список новых пакетов rh-php7*.

Далее отредактируйте файл /etc/yum.repos.d/zabbix.repo (если такого файла нет, сначала установите zabbix-release). Активируйте репозиторий zabbix-frontend.

[zabbix-frontend]
       ...
       enabled=1
       ...

Замените enabled=0 на enabled=1.

На этом этапе поиск Zabbix с помощью yum должен вернуть пакет zabbix-web вместе с четырьмя новыми пакетами:

zabbix-nginx-conf-scl.noarch : Zabbix frontend configuration for Nginx (scl version)
       zabbix-web-deps-scl.noarch : Convenience package for installing PHP dependencies of zabbix-web package from redhat software collections
       zabbix-web-mysql-scl.noarch : Zabbix web frontend for MySQL (scl version)
       zabbix-web-pgsql-scl.noarch : Zabbix web frontend for PostgreSQL (scl version)

Установите пакет zabbix-web-mysql-scl для MySQL или пакет zabbix-web-pgsql-scl для PostgreSQL. Если вы используете Nginx, установите также zabbix-nginx-conf-scl.

В Zabbix 4.4 была добавлена ​​поддержка Nginx, но веб-сервер не был доступен в официальных репозиториях RHEL/CentOS 7. Таким образом, он должен был быть предоставлен пользователем через сторонние репозитории, в частности epel. В Zabbix 5.0, если вы используете Red Hat Software Collections, нет необходимости использовать какие-либо сторонние репозитории, поскольку Nginx доступен в SCL. Просто установите пакет zabbix-nginx-conf-scl.

Технические детали новых пакетов

zabbix-web-deps-scl

Этот пакет извлекает общие PHP-зависимости веб-интерфейса Zabbix из Red Hat Software Collections.

# repoquery --requires zabbix-web-deps-scl
       rh-php72
       rh-php72-php-bcmath
       rh-php72-php-fpm
       rh-php72-php-gd
       rh-php72-php-ldap
       rh-php72-php-mbstring
       rh-php72-php-xml

Он также содержит пул php-fpm для Zabbix, поскольку в этой конфигурации интерфейс работает через fastcgi как с Apache, так и с Nginx.
Файл конфигурации находится по адресу /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf.

zabbix-web-mysql-scl

Мета-пакет, который извлекает пакет zabbix-web и модуль MySQL для PHP вместе с общими зависимостями PHP.

# repoquery --requires zabbix-web-mysql-scl
       rh-php72-php-mysqlnd
       zabbix-web
       zabbix-web-deps-scl

zabbix-web-pgsql-scl

Мета-пакет, который извлекает пакет zabbix-web и модуль PostgreSQL для PHP вместе с общими зависимостями PHP.

# repoquery --requires zabbix-web-pgsql-scl
       rh-php72-php-pgsql
       zabbix-web
       zabbix-web-deps-scl

zabbix-nginx-conf-scl

Этот пакет извлекает Nginx из Red Hat Software Collections.

# repoquery --requires zabbix-nginx-conf-scl
       rh-nginx116-nginx
       zabbix-web

Он также содержит файл конфигурации Zabbix для сервера Nginx по адресу /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf.

Использование сторонних репозиториев PHP

Если по каким-либо причинам вы не можете использовать Red Hat Software Collectiions, доступны следующие альтернативные методы:

  • Использование любого стороннего репозитория, предоставляющего PHP.
  • Сборка PHP из исходников.

Модули PHP, необходимые для веб-интерфейса Zabbix: php-gd, php-bcmath, php-mbstring, php-xml, php-ldap и php-json.

Обновление до Zabbix 5.0 с более старых версий

Необходимо соблюдать особую осторожность при обновлении до Zabbix 5.0 с предыдущих версий.

Пакеты из Red Hat Software Collections предназначены для предотвращения конфликтов с файлами из основных репозиториев.
Каждый такой пакет устанавливается в отдельную среду, посвященную его группе.
Например, конфигурация пакетов из группы rh-php72-php* устанавливается в папку /etc/opt/rh/rh-php72/, журналы - в папку /var/opt/rh/rh-php72/log/, и т. д. Услуги, предоставляемые этими пакетами, имеют необычные названия, такие как rh-php72-php-fpm или rh-nginx116-nginx.

Официальные пакеты веб-интерфейса Zabbix 5.0 используют php-fpm как с Apache, так и с Nginx.

Процесс обновления с Apache

В этом разделе представлены инструкции для Apache по обновлению веб-интерфейса и сервера Zabbix с версии 4.0 или 4.4 до 5.0.
Ниже приведены инструкции по установке Zabbix с поддержкой MySQL. Замените mysql в командах на pgsql, чтобы использовать PostgreSQL.
Предполагается, что и интерфейс, и сервер работают на одной машине. Если у вас другая настройка, внесите соответствующие изменения.
Удалите старый веб-интерфейс

Существующий веб-интерфейс Zabbix должен быть удален перед запуском обновления. Старый файл конфигурации будет перемещен в /etc/httpd/conf.d/zabbix.conf.rpmsave с rpm.

yum remove zabbix-web-*

Установите репозиторий SCL

На RHEL выполните

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

На CentOS выпоните

yum install centos-release-scl

На Oracle Linux выполните

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

Установите пакет релиза Zabbix 5.0 и включите репозиторий zabbix-frontend

Установите пакет zabbix-release-5.0.

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

Отредактируйте файл /etc/yum.repos.d/zabbix.repo. Замените enabled=0 на enabled=1.

[zabbix-frontend]
       ...
       enabled=1
       ...

Установите новые пакеты веб-интерфейса

yum install zabbix-web-mysql-scl

Официальные пакеты веб-интерфейса Zabbix 5.0 используют php-fpm. Обновите часовой пояс в файле /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf.

** Обновите оставшиеся пакеты и перезапустите Zabbix сервер**

yum update zabbix-*

Перезапуск сервера Zabbix обновит базу данных. Убедитесь, что у вас сделана резервная копия базы.

systemctl restart zabbix-server

** Обновите оставшиеся службы **

Запустите и включите службу php-fpm.

systemctl start rh-php72-php-fpm
       systemctl enable rh-php72-php-fpm

Перезапустите Apache.

systemctl restart httpd

Процесс обновления с Nginx

Обновление до Zabbix 5.0 с помощью Nginx требует выполнения еще нескольких шагов.

Обязательно остановите и отключите старые Nginx и php-fpm перед обновлением. Для этого выполните:

systemctl stop nginx php-fpm
       systemctl disable nginx php-fpm

При редактировании файла zabbix.conf для php-fpm добавьте пользователя nginx в директиву listen.acl_users

listen.acl_users = apache,nginx

Установите пакет zabbix-nginx-conf-scl.

yum install zabbix-nginx-conf-scl

Отредактируйте файл /opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf.
Настройте директивы listen и server_name.

#        listen          80;
       #        server_name     example.com;

Запустите и включите Nginx и php-fpm

systemctl start rh-nginx116-nginx rh-php72-php-fpm
       systemctl enable rh-nginx116-nginx rh-php72-php-fpm