Это перевод страницы документации с английского языка. Помогите нам сделать его лучше.

1 Red Hat Enterprise Linux/CentOS

Обзор

Этот раздел описывает требуемые шаги для успешного обновления с Zabbix 3.4.x до Zabbix 4.0.x с использованием официальных пакетов Zabbix для Red Hat Enterprise Linux/CentOS.

В то время как обновление Zabbix агентов не является обязательным шагом (но рекомендуемым), Zabbix сервер и прокси должны быть одной мажорной версии. Поэтому, при наличии сервер-прокси инсталляции, Zabbix сервер и все прокси должны быть остановлены и обновлены.

Чтобы минимизировать время простоя и потери данных в процессе обновления, рекомендуется остановить и обновить Zabbix сервер и один за другим затем остановить, обновить и запустить Zabbix прокси. Когда все прокси будут обновлены, запустите Zabbix сервер. Пока Zabbix сервер будет остановлен, запущенные прокси будут продолжать сбор и хранение данных и отправят эти данные на Zabbix сервер, когда сервер запустится и заработает. Любые оповещения о проблемах в процессе простоя Zabbix сервера будут сгенерированы только после того как обновленный сервер запустится.

Обратите внимание, что при наличии прокси с SQLite базой данных, данные истории этих прокси будут потеряны до обновления, так как обновление файла базы данных SQLite не поддерживется и этот файл необходимо удалить вручную. Когда прокси запускается в первый раз и будет отсутствовать файл базы данных SQLite, прокси создаст его автоматически.

В зависимости от размера базы данных обновление базы данных до версии 4.0 может занять продолжительное время.

Перед выполнением обновления убедитесь что прочитали все соответствующие заметки по обновлению!

Доступны следующие заметки по обновлению:

Обновление с Прочитайте заметки по обновлению полностью Важные заметки/изменения между версиями
3.4.x Для 4.0 Библиотеки 'libpthread' и 'zlib' теперь обязательны;
Поддержка протокола в виде простого текста убрана и заголовок обязателен;
Zabbix агенты версий Pre-1.4 более не поддерживаются;
Параметр Server в конфигурации пассивного прокси теперь обязателен
3.2.x Также для 3.4 Поддержка SQLite в виде основной базы данных убрана для Zabbix сервера/веб-интерфейса;
Поддерживается Perl совместимые регулярные выражения (PCRE) вместо POSIX расширенных;
Библиотеки 'libpcre' and 'libevent' обязательны для Zabbix сервера;
Добавлены проверки кода выхода для пользовательских параметров, удаленных команд и элементов данных system.run[] без 'nowait' флага, а также для выполняемых скриптов Zabbix сервером;
Zabbix Java gateway необходимо обновить для поддержки новых функций
3.0.x Также для 3.2 Обновление базы данныз может быть медленным, в зависимости от размеров таблиц истории

Вы возможно захотите также проверить требования для 4.0.

Возможно удобно запустить две параллельные SSH сессии на время обновления, выполняя шаги обновления в одной сессии и наблюдая за файлами журналов сервера/прокси в другой. Например, при выполнении tail -f zabbix_server.log или tail -f zabbix_proxy.log во второй SSH сессии будут отображаться последние записи из файла журнала и возможные ошибки в режиме реального времени. Такой подход может быть критичным на продуктивных серверах.

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

1 Остановите Zabbix процессы

Остановите Zabbix сервер, чтобы быть уверенными, что в базу данных не будет происходить запись новых данных.

# systemctl stop zabbix-server

При обновлении прокси, остановите также и его.

# systemctl stop zabbix-proxy

Известно, что имеется возможность запустить обновленный сервер с ещё не обновленными прокси, которые будут отправлять данные на новый сервер (хотя прокси и не смогут обновлять свою конфигурацию). Однако, такой подход не рекомендуется и не поддерживается Zabbix, его выбор исключительно на ваш страх и риск.

2 Сделайте архивную копию существующей базы данных Zabbix

Этот шаг очень важен. Убедитесь, что у вас есть архивная копия вашей базы данных. Это поможет, если процедура обновления закончится неудачно (отсутствие свободного места на диске, выключение питания, любая неожиданная проблема).

3 Резервное копирование файлов конфигурации, PHP файлов и бинарных файлов Zabbix

Выполните резервное копирование бинарных файлов Zabbix, файлов конфигурации и папки с PHP файлами.

Файлы конфигурации:

# mkdir /opt/zabbix-backup/
       # cp /etc/zabbix/zabbix_server.conf /opt/zabbix-backup/
       # cp /etc/httpd/conf.d/zabbix.conf  /opt/zabbix-backup/

Файлы PHP и бинарные файлы Zabbix:

# cp -R /usr/share/zabbix/ /opt/zabbix-backup/
       # cp -R /usr/share/doc/zabbix-* /opt/zabbix-backup/
4 Обновите пакет конфигурации репозитория

Чтобы продолжить обновление, необходимо обновить пакет текущий репозитория.

# rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.centos.noarch.rpm
5 Обновите компоненты Zabbix

Для обновления компонентов Zabbix вы можете выполнить что-то вроде:

# yum upgrade zabbix-server-mysql zabbix-web-mysql zabbix-agent

Если используете PostgreSQL, в команде замените mysql на pgsql. Если обновляете прокси, в команде замените server на proxy.

6 Просмотрите параметры конфигурации компонент

Для получения более подробных сведений смотрите заметки по обновлению на предмет обязательных изменений.

7 Запустите процессы Zabbix

Запустите обновленные компоненты Zabbix.

# systemctl start zabbix-server
       # systemctl start zabbix-proxy
       # systemctl start zabbix-agent
8 Очистите cookies и кэш в веб-браузере

После обновления вам, возможно, потребуется очистить cookies веб-браузера и кэш веб-браузера, чтобы Zabbix веб-интерфейс работал правильно.

Обновление между минорными версиями

Имеется возможность обновления между минорными версиями 4.0.x (например, с 4.0.1 на 4.0.3). Процедура минорного обновления Zabbix очень проста.

Для выполнения минорного обновления Zabbix необходимо выполнить:

$ sudo yum upgrade 'zabbix-*'

Для выполнения обновления минорной версии Zabbix сервера выполните:

$ sudo yum upgrade 'zabbix-server-*'

Для выполнения обновления минорной версии Zabbix агента выполните:

$ sudo yum upgrade 'zabbix-agent-*'

Обратите внимание, что в этих командах вы можете также использовать 'update' вместо 'upgrade'. В то время как 'upgrade' удалит устаревшие пакеты, 'update' сохранит их.