Поиск по сайту

telegram

Интересуешься IT и системным администрированием? Подпишись на наш канал, где мы делимся инсайдами, новостями и практическими советами! Прокачай свои навыки вместе с нами!

Как обновить Zabbix с версии 6.0 до 7.0

Обновление Zabbix 6.0 до 7.0 может потребоваться в различных ситуациях. Например, при необходимости использовать новые функции и улучшения, предлагаемые новой версией системы, а также для обеспечения совместимости с более новыми версиями операционных систем или программного обеспечения. Помимо этого, обновление может быть вызвано необходимостью повышения производительности, исправления ошибок безопасности или улучшения отказоустойчивости системы.

Независимо от причин, успешное обновление Zabbix 6.0 до 7.0 требует тщательной подготовки. Необходимо внимательно подходить к сохранению всех настроек и данных мониторинга, а также тщательно следить за процессом миграции. Ошибки на этапе обновления могут привести к потере времени или, в худшем случае, — к утрате данных.

Онлайн-курс: Zabbix 6. Мониторинг IT инфраструктуры предприятия.

Курс предлагает глубокое изучение Zabbix 6 и охватывает все ключевые аспекты: от установки и конфигурации до продвинутого мониторинга и автоматизации. Курс подходит как для начинающих, так и для опытных администраторов.

Подготовительные этапы

  • Ознакомьтесь с «заметками о выпуске» [Официальные заметки о выпуске Zabbix 7.0 LTS].
  • Тщательно изучите «заметки по обновлению» [Официальные заметки по обновлению для Zabbix 7.0 LTS].
  • Проведите проверку и оптимизацию производительности текущей базы данных в соответствии с рекомендациями поставщика и требованиями экземпляра Zabbix.
  • Убедитесь, что версии всех компонентов соответствуют матрице совместимости новой версии Zabbix.
  • Создайте резервные копии файлов конфигурации сервера Zabbix.
  • Сделайте резервную копию баз данных сервера Zabbix.
  • Создайте резервные копии всех пользовательских изменений, выполненных вручную в настройках Zabbix.
  • Отключите высокую доступность (HA) на сервере Zabbix перед обновлением.

Важно, перед обновлением Zabbix-сервера крайне важно позаботиться о безопасности данных. Минимум, что нужно сделать, — создать снимок (снепшот) виртуальной машины. Но еще лучше — выполнить полноценный бэкап системы. Это обеспечит вам возможность быстро восстановить сервер в случае возникновения проблем и исключить риск потери данных.

Проверка версий

Прежде чем приступить к обновлению, мы проверим версии всех ключевых компонентов, от которых зависит работа Zabbix и его модулей. Это необходимо, чтобы убедиться, что они соответствуют официальной матрице совместимости для Zabbix 7.0. В частности, мы проверим версии PHP, MySQL, операционной системы и самого Zabbix Server. Для этого будем использовать следующие команды:

  • php -v — чтобы узнать текущую версию PHP.

php -v
PHP 8.3.6 (cli) (built: Dec  2 2024 12:36:18) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.6, Copyright (c) Zend Technologies
    with Zend OPcache v8.3.6, Copyright (c), by Zend Technologies


  • mysql -V — для проверки версии MySQL.

mysql -V
mysql  Ver 8.0.40-0ubuntu0.24.04.1 for Linux on x86_64 ((Ubuntu))


  • lsb_release -a — чтобы узнать версию операционной системы.

lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 24.04.1 LTS
Release:        24.04
Codename:       noble

  • zabbix_server --version — для отображения версии установленного Zabbix Server.

zabbix_server --version
zabbix_server (Zabbix) 6.0.36
Revision 6bcc7a62c0e 19 November 2024, compilation time: Nov 19 2024 09:21:26

Copyright (C) 2024 Zabbix SIA

Как видите, моя система полностью соответствует требованиям Zabbix 7. Это неудивительно, ведь недавно, в статье "Как перенести Zabbix на новый сервер", я рассказывал, как перевел свой Zabbix сервер с Ubuntu 20.04 на Ubuntu 24.04, обновив при этом все остальные компоненты.

Если вы все еще используете Ubuntu 20.04 или более старую версию, которые не поддерживаются Zabbix 7, обязательно ознакомьтесь с этой статьей. А если у вас не соответствует какой-либо другой компонент, обновите его вручную. Это несложно и поможет обеспечить стабильную работу системы.

Резервное копирование файлов конфигурации Zabbix

Перед тем как продолжить, убедитесь, что вы сделали резервную копию всех конфигурационных файлов Zabbix-сервера и веб-сервера. Это поможет избежать проблем в случае непредвиденных ошибок.

Конфигурация Zabbix-сервера:


cp /etc/zabbix/zabbix_server.conf ~/zabbix_server.conf.bak

Конфигурация Zabbix-агента:


cp /etc/zabbix/zabbix_agentd.conf ~/zabbix_agentd.conf.bak

Конфигурация веб-сервера (Apache):


cp /etc/zabbix/apache.conf ~/apache.conf.bak

Эти шаги помогут вам сохранить текущие настройки для быстрого восстановления, если что-то пойдет не так.

Далее, остановите Zabbix-сервер:


service zabbix-server stop

Установите утилиту bzip2, если она еще не установлена. Bzip2 - это инструмент для сжатия файлов, который поможет уменьшить размер резервной копии.


apt install bzip2

Затем выполните резервное копирование базы данных:


mysqldump -uroot -p zabbix --extended-insert --single-transaction | bzip2 -9 > ~/zabbix_db_backup-$(date "+%Y-%m-%d_%H.%M.%S").sql.bz2

Эта команда создаст дамп базы данных Zabbix, сожмет его с помощью bzip2 и сохранит в файле с текущей датой и временем в названии.

После выполнения данной команды потребуется ввести пароль пользователя root.

Обновление Zabbix сервера

Рекомендуется запустить две параллельные сессии SSH во время обновления Zabbix. В одной из них вы будете выполнять шаги обновления, а во второй — наблюдать за журналами сервера. Для мониторинга в реальном времени выполните команду: tail -f /var/log/zabbix/zabbix_server.log. Это позволит оперативно отслеживать последние записи в журнале, выявлять возможные ошибки и быстро реагировать на них. Такой подход особенно важен для крупных инсталляций, где стабильность системы критически важна.

На следующем этапе выполните обновление системы и удаление лишних пакетов. Для этого используйте следующие команды:

  1. Обновите список пакетов и установите все доступные обновления:

apt update && sudo apt upgrade -y

  1. Очистите систему, удалив неиспользуемые пакеты:

apt autoremove -y

Эти шаги обеспечат актуальность всех системных компонентов перед обновлением Zabbix-сервера.

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

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


wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.0+ubuntu24.04_all.deb
dpkg -i zabbix-release_latest_7.0+ubuntu24.04_all.deb
apt update

Эти команды предназначены исключительно для установки репозитория Zabbix на Ubuntu 24.04. Если вы используете другую операционную систему, подходящие команды можно найти на официальном сайте Zabbix в разделе загрузки.

Для успешного обновления Zabbix-сервера на базе MySQL/MariaDB требется включение параметра log_bin_trust_function_creators, если в MySQL включено бинарное логирование, отсутствуют привилегии суперпользователя, и данный параметр не установлен в конфигурационном файле MySQL.

Чтобы задать этот параметр через консоль MySQL, выполните следующую команду:


mysql -u root -p -e "SET GLOBAL log_bin_trust_function_creators = 1;"

После ввода этой команды вам потребуется ввести пароль пользователя root.

На этом этапе репозитории для новой версии Zabbix будут успешно настроены. Теперь вы можете обновить все компоненты Zabbix, установленные в системе, с помощью команды:


apt install --only-upgrade 'zabbix-*' -y

Эта команда обновит только пакеты, связанные с Zabbix, до их последних версий. Выполнение этого шага завершает процесс обновления компонентов.

Во время обновления Zabbix вы можете увидеть запрос, связанный с файлом конфигурации Zabbix-сервера:


Configuration file '/etc/zabbix/zabbix_server.conf'
==> Modified (by you or by a script) since installation.
==> Package distributor has shipped an updated version.
What would you like to do about it ?  Your options are:
Y or I  : install the package maintainer's version
N or O  : keep your currently-installed version
D       : show the differences between the versions
Z       : start a shell to examine the situation
The default action is to keep your current version.
*** zabbix_server.conf (Y/I/N/O/D/Z) [default=N] ?

  • D — покажет различия между текущей и новой конфигурацией, что поможет принять решение.
  • Y или I — установят новую версию конфигурационного файла от разработчика пакета.
  • N или O — сохранят вашу текущую конфигурацию, оставив изменения, которые вы ранее вносили.

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

На следующем шаге запустите Zabbix-сервер:


service zabbix-server start

Если вы открывали вторую SSH-сессию для мониторинга, то в журнале (через tail -f /var/log/zabbix/zabbix_server.log) вы сможете увидеть, как начинается процесс обновления базы данных. Это нормальный этап, необходимый для адаптации структуры базы данных к новой версии Zabbix.


157267:20241218:222903.660 required mandatory version: 07000000
157267:20241218:222903.660 mandatory patches were found
157267:20241218:222903.662 starting automatic database upgrade
157267:20241218:222903.664 completed 0% of database upgrade
157267:20241218:222904.050 completed 1% of database upgrade
157267:20241218:222904.284 completed 2% of database upgrade
157267:20241218:222904.417 completed 3% of database upgrade
157267:20241218:222904.540 completed 4% of database upgrade
157267:20241218:222904.641 completed 5% of database upgrade
157267:20241218:222904.761 completed 6% of database upgrade
157267:20241218:222904.807 completed 7% of database upgrade

Давайте подождем, пока процесс обновления базы данных завершится. Это может занять некоторое время, в зависимости от объема данных и производительности системы.


157342:20241218:223205.406 completed 95% of database upgrade
157342:20241218:223205.463 completed 96% of database upgrade
157342:20241218:223205.487 completed 97% of database upgrade
157342:20241218:223205.504 completed 98% of database upgrade
157342:20241218:223205.521 completed 99% of database upgrade
157342:20241218:223205.584 completed 100% of database upgrade
157342:20241218:223205.820 database upgrade fully completed

На следующем этапе выполните команду:


mysql -u root -p -e "set global log_bin_trust_function_creators = 0;"

Эта команда отключает параметр log_bin_trust_function_creators, возвращая базу данных в безопасный режим. После обновления Zabbix это необходимо, чтобы запретить обычным пользователям без привилегий SUPER создавать или изменять хранимые функции и процедуры, что повышает общую безопасность системы.

Последние шаги

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

  1. Проверьте Zabbix-сервер и сервер базы данных:

Убедитесь, что оба сервиса работают правильно и имеют обновленную версию. Для этого можно использовать веб-интерфейс Zabbix и команду проверки статуса сервисов:


service zabbix-server status
service mysql status

  1. Проверьте все Zabbix-прокси:

Убедитесь, что прокси-серверы запущены и обновлены до актуальной версии. Для этого выполните:


service zabbix-proxy status

Что касается прокси-сервера, в панели управления Zabbix вы можете перейти в раздел АдминистрированиеПрокси и увидеть, что прокси-сервер работает на старой версии. Рядом с ним будет отображаться значок восклицания. Если навести курсор на этот значок, появится сообщение: Версия прокси устарела, доступны только сбор данных и выполнение удаленных команд с сервером версии 7.0.7.

Да, прокси-сервер также необходимо обновить. Как это сделать, вы можете подробно прочитать в моей статье: Как обновить Zabbix Proxy с версии 6.0 до 7.0.

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

Если прокси остаётся на версии предыдущего релиза, он будет работать в ограниченном режиме. В таком случае возможны ограничения: прокси сможет только собирать данные и выполнять удалённые команды, но другие функции могут быть недоступны или работать некорректно.

Поэтому, чтобы гарантировать стабильность и полную функциональность системы, рекомендуется обновить прокси-сервер до версии, соответствующей серверу Zabbix.

  1. Оцените производительность системы:

Проверьте:

  • Журналы сервера:

tail -f /var/log/zabbix/zabbix_server.log

  • Неподдерживаемые элементы (веб-интерфейс, раздел "Проблемы").
  • Очереди сбора данных, выполнение скриптов мониторинга и общее состояние системы.
  1. Обновите шаблоны Zabbix (необязательный пункт):

Убедитесь, что на ваших серверах установлены последние версии официальных шаблонов. Шаблоны можно загрузить из официального репозитория Zabbix на GitHub.

Эти шаги помогут убедиться, что обновление прошло успешно и система готова к эксплуатации.

Обновление шаблонов Zabbix

После обновления серверной части Zabbix обновление шаблонов не является обязательным. Система продолжит работать корректно, используя старые шаблоны, и сбор метрик будет выполняться в привычном режиме. Это большое преимущество, так как поведение системы после обновления остаётся предсказуемым.

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

  1. Загрузка новых шаблонов

Скачайте новую версию шаблонов из официального репозитория Zabbix.

  1. Импорт шаблонов

Зайдите в веб-интерфейс Zabbix и импортируйте новые шаблоны в систему через раздел Настройки → Шаблоны → Импортировать.

  1. Применение новых шаблонов к хостам

Для замены шаблона на новую версию нужно выполнить следующие шаги:

  • Открепите старый шаблон от хоста, удаляя при этом все элементы данных (айтемы), связанные с этим шаблоном. Это важный шаг, так как новые шаблоны не смогут примениться, если на хосте уже существуют элементы данных с такими же именами, как в новом шаблоне.
  • После удаления старого шаблона прикрепите новый.
    1. Особенности обновления шаблонов

    При обновлении шаблона вы потеряете статистику по существующим элементам данных на хосте, так как привязанные айтемы будут удалены вместе с шаблоном. Это неудобство связано с пересечением идентификаторов и названий элементов данных между старой и новой версией шаблона.

    1. Альтернатива: обновление шаблона вручную

    Если потеря статистики недопустима, единственный выход — вручную доработать старый шаблон, чтобы он соответствовал новой версии. Это можно сделать, добавив или изменив недостающие элементы и параметры в существующем шаблоне. Хотя этот процесс трудоёмкий, он позволяет сохранить исторические данные и избежать удаления статистики.

    Итак, обновление шаблонов требует внимательного подхода, особенно если сохранение исторических данных является критически важным. Несмотря на трудности, задачу можно решить, выбрав наиболее подходящий способ в зависимости от ваших потребностей.

    Заключение

    В этой статье мы подробно разобрали процесс обновления Zabbix с версии 6.0 до 7.0. Мы прошли через все ключевые этапы — от подготовки системы и создания резервных копий до обновления серверной части и шаблонов. Несмотря на то что обновление может показаться сложным, при четком следовании инструкции этот процесс становится понятным и предсказуемым.

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

    Теперь ваш Zabbix-сервер обновлен и готов к работе с новыми функциями и улучшениями, которые предлагает версия 7.0.

    Вам понравилась эта статья? Тогда вам, скорее всего, будет интересна другая полезная статья Как мигрировать базу данных Zabbix с MySQL на PostgreSQL.

    Интересуешься IT и системным администрированием? Подпишись на SysAdminHub в Телеграмм или Макс, чтобы узнавать обо всем первым!

    Комментарии (0)

    Здесь не опубликовано еще ни одного комментария

    Оставьте свой комментарий

    0 Значки
    Вложения (0 / 5)
    Поделитесь своим местоположением