В данной статье рассмотрим перенос и обновление Zabbix Server 5.0 LTS до 7.0 LTS. Разберем ключевые этапы подготовки, резервного копирования, обновления базы данных и конфигурации. Также рассмотрим возможные ошибки, способы их устранения и преимущества новой версии, чтобы обеспечить стабильную работу системы мониторинга.
В нескольких компаниях, которые у меня на обслуживании, имеются сервера на Ubuntu 18.04 и мониторингом на Zabbix 5.0 LTS. Появилась необходимость обновить его до версии 7.0 LTS.
Проблема только в том, что версия Zabbix 5.0 поддерживает максимум Ubuntu 20.04, а Zabbix 7.0 поддерживает минимум Ubuntu 22.04 и обновить Zabbix 5.0 на 7.0 на Ubuntu 18.04 не получится.
Поэтому план наших действий будет такой:
- Устанавливаем Ubuntu 20.04 и туда устанавливаем Zabbix 5.0
- Переносим с Ubuntu 18.04 Zabbix 5.0 на Ubuntu 20.04
- Далее на Ubuntu 20.04 обновляем Zabbix 5.0 на версию 6.0
- После этого устанавливаем Ubuntu 24.04 и туда устанавливаем Zabbix 6.0
- Переносим с Ubuntu 20.04 Zabbix 6.0 на Ubuntu 24.04
- На Ubuntu 24.04 обновляем Zabbix 6.0 на версию 7.0
Оглавление:
- Подготовка к переносу и обновлению Zabbix Server
- Установка Zabbix 5.0 на Ubuntu 20.04
- Перенос Zabbix Server 5.0 LTS
- Обновление Zabbix Server 5.0 LTS на 6.0 LTS
- Установка Zabbix 6.0 LTS на Ubuntu 24.04
- Перенос Zabbix Server 6.0 LTS
- Обновление Zabbix Server 6.0 LTS на 7.0 LTS
- Заключение
Подготовка к переносу и обновлению Zabbix Server
Главное что нам нужно сделать, чтобы корректно прошел перенос и обновление Zabbix Server — это установить точно такую же версию Zabbix Server на новый сервер Ubuntu. В нашем случае это Zabbix Server 5.0. Так же необходимо перенести все конфигурационные файлы и скрипты со старого сервера на новый, а так же создать базу данных (в нашем случае MySQL) с таким же именем базы, пользователем и паролем, как на старом сервере. Можно конечно задать другие имена, но тогда эти данные придется прописывать и в конфигурации сервера.
Установка Zabbix 5.0 на Ubuntu 20.04
После того, как вы установили чистую систему Ubuntu 20.04, давайте на нее установим Zabbix 5.0
Подключаем необходимые репозитории:
# wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_5.0+ubuntu20.04_all.deb
# dpkg -i zabbix-release_latest_5.0+ubuntu20.04_all.deb
# apt update
Устанавливаем Zabbix Server 5.0 LTS и его компоненты, а так же mariadb в качестве mysql сервера:
# apt install mariadb-server zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-agent zabbix-sql-scripts
Создайте базу данных
Задаем пароль root для mysql с помощью скрипта предварительной настройки:
# mysql_secure_installation
Подключаемся к MySQL под root-ом:
# mysql -uroot -p
Указываем пароль, который задавали ранее и создаем пользователя и базу данных последовательно введя команды:
> create database zabbix character set utf8 collate utf8_bin;
> create user zabbix@localhost identified by 'password';
> grant all privileges on zabbix.* to zabbix@localhost;
> set global log_bin_trust_function_creators = 1;
> quit;
Внимание!
В строке create user zabbix@localhost identified by ‘password’; password замените на свой пароль.
Импортируем схему базы и начальные данные:
# zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p zabbix
Внимание!
Пароль указываем тот же самый, что и на предыдущем шаге.
Выключите опцию log_bin_trust_function_creators после импорта схемы базы данных:
# mysql -uroot -p
Enter password:
> set global log_bin_trust_function_creators = 0;
> quit;
Теперь, если еще не перенесли конфигурационные файлы со старого сервера на новый, сделайте это. Либо отредактируйте текущие файлы.
Отредактируйте файл /etc/zabbix/zabbix_server.conf:
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=password
Внимание!
В параметре DBPassword задайте свой пароль.
После этого можете запустить Zabbix Server 5.0 LTS:
# systemctl enable --now zabbix-server
Чтобы проверить работу Zabbix Server, используйте команду:
# systemctl status zabbix-server
Должно выдать как на картинке ниже:

Отредактируйте файл /etc/zabbix/nginx.conf:
listen 80 default_server;
server_name zabbix;
Внимание!
Если в файле /etc/zabbix/nginx.conf указываете listen 80 default_server, то обязательно закомментируйте данные строки в файле /etc/nginx/sites-available/default
Отредактируйте файл /etc/zabbix/php-fpm.conf раскомментируйте строку и укажите свой часовой пояс:
; php_value[date.timezone] = Europe/Riga
Запустите процессы Zabbix сервера и агента и настройте их запуск при загрузке ОС:
# systemctl restart zabbix-server zabbix-agent nginx php7.4-fpm
# systemctl enable zabbix-server zabbix-agent nginx php7.4-fpm
Все, после этого можете подключаться браузером к Zabbix Server и провести первоначальную настройку, для того чтобы убедиться что все работает без проблем.
Перенос Zabbix Server 5.0 LTS
Переходим к переносу Zabbix Server 5.0 LTS. Для этого останавливаем старый сервер на Ubuntu 18.04:
# systemctl stop zabbix-server zabbix-agent
Делаем дамп базы данных:
# /usr/bin/mysqldump --opt -v --databases zabbix -uzabbix -p'password' > ~/zabbix.sql
Пояснения по команде выше:
—databases zabbix
Эта опция указывает, что нужно создать дамп базы данных с именем zabbix. --databases
говорит о том, что будет дамп не отдельных таблиц, а целой базы данных. Указывая имя базы данных, вы также включаете команду CREATE DATABASE в дамп, так что база данных будет воссоздана при восстановлении.
-uzabbix
Эта опция указывает пользователя, под которым нужно выполнить дамп. В данном случае это пользователь zabbix. Он должен иметь необходимые привилегии для чтения базы данных.
-p’password’
Тут, между кавычками, указываете свой пароль для пользователя zabbix.
После создания дампа, перенесите его на новый сервер с Ubuntu 20.04 например командой ниже:
# scp ~/zabbix.sql root@192.168.1.6:~/zabbix.sql
192.168.1.6 — это адрес нового сервера с установленным Ubuntu 20.04 куда мы переносим Zabbix. На старом сервере службу zabbix-server больше не запускаем.
Переходим на новый сервер и открываем консоль MySQL:
# mysql -u root -p
Далее восстанавливаем дамп в базу данных Zabbix Server:
> use zabbix;
> source ~/zabbix.sql;
После загрузки дампа можно открыть веб-интерфейс нового сервера и проверить, что данные успешно восстановлены, а система выглядит так же, как на предыдущем сервере. Если всё в порядке, отключите старый сервер мониторинга и больше не используйте его с этим IP-адресом. Затем настройте новый сервер на старый IP-адрес и перезагрузите его для надёжности.
Когда новый сервер с перенесённым Zabbix запустится, агенты автоматически начнут передавать данные, поскольку для них ничего не изменилось. Если все в порядке, тогда переходим к следующему шагу — Обновление Zabbix Server 5.0 LTS на 6.0 LTS.
Обновление Zabbix Server 5.0 LTS на 6.0 LTS
Теперь, после того, как мы установили Zabbix Server 5.0 LTS на Ubuntu 20.04 и перенесли туда базу с Ubuntu 18.04, давайте обновим Zabbix на версию 6.0 LTS.
Для этого останавливаем сервер и агент:
# systemctl stop zabbix-server zabbix-agent
Удалите старый репозиторий Zabbix 5.0:
# rm -Rf /etc/apt/sources.list.d/zabbix.list
Добавьте репозиторий Zabbix 6.0:
# wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest+ubuntu20.04_all.deb
# dpkg -i zabbix-release_latest+ubuntu20.04_all.deb
# apt update
Запустите обновление пакетов Zabbix:
# apt install --only-upgrade zabbix-server-mysql zabbix-frontend-php zabbix-agent
После окончания обновления запустите Zabbix Server и агент:
# systemctl start zabbix-server zabbix-agent
Теперь можете подключиться к веб-интерфейсу Zabbix Server и убедиться, что сервер корректно обновился. Должно получиться примерно как на картинке ниже:

Если все в порядке, переходим к следующему шагу — установке Zabbix Server 6.0 LTS на Ubuntu 24.04
Установка Zabbix 6.0 LTS на Ubuntu 24.04
Если у вас еще не установлен сервер Ubuntu 24.04, то рекомендую воспользоваться статьей на сайте Установка Ubuntu Server 24.04, а так же статьей Настройка Ubuntu Server 24.04 после установки.
После того, как вы установили чистую систему Ubuntu 24.04, давайте на нее установим Zabbix 6.0 LTS.
Подключаем необходимые репозитории:
# wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_6.0+ubuntu24.04_all.deb
# dpkg -i zabbix-release_latest_6.0+ubuntu24.04_all.deb
# apt update
Устанавливаем Zabbix Server 6.0 LTS и его компоненты, а так же mariadb в качестве mysql сервера:
# apt install mariadb-server zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-agent zabbix-sql-scripts
Задаем пароль root для mysql и удаляем тестовые базы с помощью скрипта предварительной настройки:
# mysql_secure_installation
Подключаемся к MySQL под root-ом:
# mysql -uroot -p
Указываем пароль, который задавали ранее и создаем пользователя и базу данных последовательно введя команды:
> create database zabbix character set utf8 collate utf8_bin;
> create user zabbix@localhost identified by 'password';
> grant all privileges on zabbix.* to zabbix@localhost;
> set global log_bin_trust_function_creators = 1;
> quit;
Внимание!
В строке create user zabbix@localhost identified by ‘password’; password замените на свой пароль.
Импортируем схему базы и начальные данные:
# zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
Внимание!
Пароль указываем тот же самый, что и на предыдущем шаге.
Выключите опцию log_bin_trust_function_creators после импорта схемы базы данных:
# mysql -uroot -p
Enter password:
> set global log_bin_trust_function_creators = 0;
> quit;
Отредактируйте файл /etc/zabbix/zabbix_server.conf:
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=password
Внимание!
В параметре DBPassword задайте свой пароль.
После этого можете запустить Zabbix Server 6.0 LTS:
# systemctl enable --now zabbix-server
Чтобы проверить работу Zabbix Server, используйте команду:
# systemctl status zabbix-server
Отредактируйте файл /etc/zabbix/nginx.conf:
listen 80 default_server;
server_name zabbix;
Внимание!
Если в файле /etc/zabbix/nginx.conf указываете listen 80 default_server, то обязательно закомментируйте данные строки в файле /etc/nginx/sites-available/default
Запустите процессы Zabbix сервера и агента и настройте их запуск при загрузке ОС:
# systemctl restart zabbix-server zabbix-agent nginx php8.3-fpm
# systemctl enable zabbix-server zabbix-agent nginx php8.3-fpm
Все, после этого можете подключаться браузером к Zabbix Server и провести первоначальную настройку, для того чтобы убедиться что все работает без проблем.
Перенос Zabbix Server 6.0 LTS
Переходим к переносу Zabbix Server 6.0 LTS. Для этого останавливаем старый сервер на Ubuntu 20.04:
# systemctl stop zabbix-server zabbix-agent
Делаем дамп базы данных:
# /usr/bin/mysqldump --opt -v --databases zabbix -uzabbix -p'password' > ~/zabbix.sql
После создания дампа, перенесите его на новый сервер с Ubuntu 24.04 например командой ниже:
# scp ~/zabbix.sql root@192.168.1.7:~/zabbix.sql
192.168.1.7 — это адрес нового сервера с установленным Ubuntu 24.04 куда мы переносим Zabbix. На старом сервере службу zabbix-server больше не запускаем.
Переходим на новый сервер и открываем консоль MySQL:
# mysql -u root -p
Далее восстанавливаем дамп в базу данных Zabbix Server:
> use zabbix;
> source ~/zabbix.sql;
После загрузки дампа можно открыть веб-интерфейс нового сервера и проверить, что данные успешно восстановлены, а система выглядит так же, как на предыдущем сервере. Если всё в порядке, отключите старый сервер мониторинга и больше не используйте его с этим IP-адресом. Затем настройте новый сервер на старый IP-адрес и перезагрузите его для надёжности.
Когда новый сервер с перенесённым Zabbix запустится, агенты автоматически начнут передавать данные, поскольку для них ничего не изменилось. Если все в порядке, тогда переходим к следующему шагу — Обновление Zabbix Server 6.0 LTS на 7.0 LTS.
Обновление Zabbix Server 6.0 LTS на 7.0 LTS
Теперь, после того, как мы установили Zabbix Server 6.0 LTS на Ubuntu 24.04 и перенесли туда базу с Ubuntu 20.04, давайте обновим Zabbix на версию 7.0 LTS.
Для этого останавливаем сервер и агент:
# systemctl stop zabbix-server zabbix-agent
Удалите старый репозиторий Zabbix 6.0:
# rm -Rf /etc/apt/sources.list.d/zabbix.list
Добавьте репозиторий Zabbix 7.0:
# 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
Далее для успешного обновления включим опцию log_bin_trust_function_creators:
# mysql -u root -p -e "SET GLOBAL log_bin_trust_function_creators = 1;"
После ввода команды, укажите пароль к MySQL под root-ом.
После этого обновляем все компоненты Zabbix:
# apt install --only-upgrade 'zabbix-*' -y
На данном этапе, на одном из серверов Zabbix при обновлении у меня вылезла ошибка ниже:
2945:20250130:175148.690 Starting Zabbix Server. Zabbix 7.0.9 (revision 05b8b05eefe).
2945:20250130:175148.690 ****** Enabled features ******
2945:20250130:175148.691 SNMP monitoring: YES
2945:20250130:175148.691 IPMI monitoring: YES
2945:20250130:175148.691 Web monitoring: YES
2945:20250130:175148.691 VMware monitoring: YES
2945:20250130:175148.691 SMTP authentication: YES
2945:20250130:175148.691 ODBC: YES
2945:20250130:175148.691 SSH support: YES
2945:20250130:175148.692 IPv6 support: YES
2945:20250130:175148.692 TLS support: YES
2945:20250130:175148.692 ******************************
2945:20250130:175148.692 using configuration file: /etc/zabbix/zabbix_server.conf
2945:20250130:175148.699 current database version (mandatory/optional): 06010083/06010083
2945:20250130:175148.699 required mandatory version: 07000000
2945:20250130:175148.699 mandatory patches were found
2945:20250130:175148.700 starting automatic database upgrade
2945:20250130:175148.797 [Z3005] query failed: [1452] Cannot add or update a child row: a foreign key constraint fails (zabbix.#sql-alter-35d-64, CONSTRAINT c_functions_1 FOREIGN KEY (itemid) REFERENCES items (itemid)) [alter table functions add constraint c_functions_1 foreign key (itemid) references items (itemid)]
2945:20250130:175148.797 database upgrade failed on patch 06010084, exiting in 10 seconds
Ошибка «Cannot add or update a child row: a foreign key constraint fails» указывает, что в таблице functions присутствуют записи с itemid, которых нет в таблице items. Это происходит из-за нарушения целостности данных во время обновления базы данных Zabbix.
Решение проблемы такое, подключаемся к базе данных Zabbix:
# mysql -u zabbix -p zabbix
Enter password:
И удаляем «битые» записи из functions:
DELETE FROM functions WHERE itemid NOT IN (SELECT itemid FROM items);
Перезапускаем сервер Zabbix, чтобы снова запустить миграцию базы:
# systemctl restart zabbix-server
Следить за состоянием обновления можно с помощью команды:
# tail -f /var/log/zabbix/zabbix_server.log
По окончании обновления, возвращаем базу данных в безопасный режим:
# mysql -u root -p -e "set global log_bin_trust_function_creators = 0;"
И запускаем Zabbix Server и агент:
# systemctl start zabbix-server zabbix-agent
Теперь можете подключиться к веб-интерфейсу Zabbix Server и убедиться, что сервер корректно обновился. Должно получиться примерно как на картинке ниже:

На этом перенос Zabbix Server 6.0 и обновление на Zabbix Server 7.0 завершен.
Заключение
Перенос и обновление Zabbix Server с версии 5.0 LTS до 7.0 LTS требует тщательной подготовки, соблюдения порядка шагов и внимательности при работе с базой данных и конфигурационными файлами. В ходе данной статьи мы рассмотрели поэтапный процесс обновления, начиная с установки промежуточных версий Ubuntu и Zabbix, переноса данных и завершения обновления на последнюю версию 7.0 LTS.
Следование данному плану позволяет минимизировать риски, связанные с потерей данных или сбоем мониторинговой системы. Основные рекомендации при обновлении:
- Создание резервных копий – всегда делайте бэкапы баз данных и конфигурационных файлов перед началом любого обновления.
- Обновление в несколько этапов – сначала перенос на промежуточную версию ОС и Zabbix, затем обновление до целевой версии.
- Тестирование после каждого шага – проверка корректности работы сервера и его компонентов после каждого этапа обновления.
- Соблюдение совместимости – при обновлении убедитесь, что используемые плагины, настройки и агенты соответствуют новой версии Zabbix.
Обновление Zabbix до последней версии 7.0 LTS открывает доступ к новым возможностям системы мониторинга, улучшенной производительности и обновлённым механизмам безопасности. Следуя приведённым инструкциям, вы сможете успешно выполнить перенос и обновление, обеспечивая стабильную и эффективную работу системы мониторинга в вашей инфраструктуре.
Помогла статья? Подписывайся на Telegram канал автора.
Анонсы всех статей, много другой полезной и интересной информации, которая не попадает на сайт.
Если у вас имеются вопросы, задавайте их в комментариях.