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

telegram

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

Как перенести Zabbix на новый сервер

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

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

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

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

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

Предисловие

Сейчас у меня работает Zabbix 6 на сервере с Ubuntu 20.04 и PHP 7.3. Но для перехода на Zabbix 7 потребуется обновить окружение, так как новая версия не поддерживает ни эту ОС, ни старый PHP. План такой: сначала перенести Zabbix 6 на новый сервер с Ubuntu 24.04 и PHP 8.3, а уже потом заняться обновлением до Zabbix 7. Приступим к переносу!

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

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

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

Установка Zabbix сервера

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


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 и предназначены для установки Zabbix 6 на Ubuntu 24.04. Если у вас другая версия Zabbix или другая операционная система, вам потребуется подобрать соответствующие команды для своей конфигурации.

Если у вас появятся вопросы или что-то останется неясным, у меня есть подробная инструкция по установке Zabbix, которая поможет вам разобраться.

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


apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-agent

После установки открываем конфигурационный файл Zabbix сервера:


nano /etc/zabbix/zabbix_server.conf

В этом файле находим параметр DBPassword и указываем пароль пользователя Zabbix для базы данных MySQL. Пароль может быть любым, в моем случае я использую password.


DBPassword=password

Настраиваем часовой пояс. В моем случае это +3 (Москва). Для этого выполняем следующую команду:


timedatectl set-timezone Europe/Moscow

Установка СУБД MySQL

Чтобы установить СУБД MySQL из официального репозитория, выполним следующую команду:


apt install mysql-server

Далее, переходим в режим управления MySQL, создаем базу данных Zabbix с кодировкой UTF8mb4, добавляем пользователя с именем zabbix и паролем password, предоставляем ему полный доступ к базе, применяем изменения командой FLUSH PRIVILEGES; и выходим из MySQL с помощью команды QUIT;.


mysql
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
FLUSH PRIVILEGES;
QUIT;

Копирование базы данных

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


mysqldump --quick zabbix | gzip > zabbix.gz

Эта команда выполняет резервное копирование базы данных zabbix, используя утилиту mysqldump, и сразу сжимает полученный файл в формат .gz для экономии места.

Полученный файл zabbix.gz будет сохранен в корневой директории пользователя root.

Восстановление базы данных

Далее, с помощью любого файлового менеджера, переносим файл резервной копии базы данных из корневой директории пользователя root на старом сервере /root/zabbix.gz в корневую директорию пользователя root на новом сервере /root/zabbix.gz. Я предпочитаю использовать файловый менеджер WinSCP для таких задач.

После того как файл резервной копии базы данных перенесен на новый сервер, давайте его восстановим. Для этого используем команду:


gunzip < zabbix.gz | mysql -uroot zabbix

Эта команда разархивирует файл zabbix.gz с помощью gunzip и сразу передает его содержимое в утилиту mysql для восстановления базы данных zabbix от имени пользователя root.

Перенос пользовательских скриптов

Отлично, база данных успешно восстановлена. Теперь переходим к переносу пользовательских скриптов со старого сервера Zabbix на новый, если таковые имеются. У меня, например, есть скрипт для проверки срока действия сертификатов сайтов, который называется checkssl.sh и находится по пути /home/zabbix.

На новом сервере изначально такой папки нет, поэтому я создам её с помощью команды:


mkdir /home/zabbix

После этого скопирую файл скрипта со старого сервера в эту папку. Затем назначу скрипту checkssl.sh разрешение на выполнение (0755) с помощью команды:


chmod a+x /home/zabbix/checkssl.sh

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

Установка SSL-сертификата

В этой статье я не буду объяснять установку Certbot, а просто покажу, как перенести уже существующие сертификаты со старого сервера Zabbix на новый. На практике часто бывает, что Zabbix-сервер не имеет доступа в интернет и не может самостоятельно получить сертификат. В таких случаях можно заранее получить бесплатный сертификат Let's Encrypt, например, на хостинге, если он у вас есть. Лично я в тестовой среде поступаю именно так, периодически заменяя файлы сертификата каждые три месяца.

В боевой среде я предпочитаю использовать купленный сертификат, так как он используется не только для Zabbix, но и для других систем, таких как Exchange, IIS и т.д.

Первым делом установим модуль SSL для Apache с помощью команды:


a2enmod ssl

Эта команда активирует модуль ssl в Apache, который необходим для обработки HTTPS-запросов и работы с SSL-сертификатами. После активации модуля веб-сервер сможет использовать шифрование для защищенного соединения.

Далее, используя WinSCP, подключаемся к старому серверу Zabbix, переходим в папку /etc/ssl и копируем оттуда три файла сертификата:

  • itadminlab.pem – сам сертификат,
  • itadminlab_root.pem – цепочка сертификатов,
  • itadminlab_key.pem – закрытый ключ.

После этого загружаем эти файлы в ту же папку /etc/ssl, но уже на новом сервере.

И последнее, что нам нужно сделать, — это перенести информацию из конфигурационного файла Apache со старого сервера на новый. Этот файл находится по следующему пути:


/etc/apache2/sites-available/000-default.conf

В данном файле на старом сервере добавлен блок VirtualHost для порта 443, который указывает Apache, где находятся файлы нашего SSL-сертификата. Этот блок необходимо скопировать и перенести в аналогичный файл на новом сервере, чтобы настроить работу HTTPS.

Ну и последнее, что нам осталось сделать, — это перезапустить службы Zabbix сервера и Apache, чтобы применить все изменения. Выполняем команды:


systemctl restart zabbix-server apache2

Изменение IP-адреса на новом сервере Zabbix

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

Сначала определяем имя сетевого адаптера с помощью команды:


ip link show
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens160:  mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:8d:f3:63 brd ff:ff:ff:ff:ff:ff
    altname enp3s0


Как видно из вывода, имя моего адаптера — ens160, и именно его будем настраивать.

Для редактирования настроек сетевого адаптера используем команду:


nano /etc/netplan/*.yaml

В открывшемся файле изменяем IP-адрес на нужный, после чего сохраняем изменения, нажав CTRL + X, затем Y, и подтверждаем клавишей Enter.

Для применения новых настроек выполняем:


netplan --debug apply

После применения настроек, ваша SSH-сессия зависнет. Это нормально, так как изменился IP-адрес. Имейте это в виду. Чтобы снова подключиться к серверу, откройте новое SSH-соединение с обновленным IP-адресом.

Отлично, на этом процесс переноса почти завершён!

Настройка веб-интерфейса Zabbix

Открываем веб-интерфейс Zabbix по знакомой ссылке. В моем случае это:


https://zabbix.itadminlab.ru/zabbix

Если вы все сделали правильно, то при переходе по ссылке вы увидите начальный экран настройки Zabbix.

На первом шаге настройки вы можете выбрать язык интерфейса.

На втором шаге настройки будет выполнена проверка предварительных требований для работы Zabbix.

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

На четвертом шаге укажите имя сервера и задайте часовой пояс.

На пятом шаге отображается сводка всех настроек. Если все указано верно, установка веб-интерфейса Zabbix будет успешно завершена.

Теперь авторизуемся на нашем новом Zabbix сервере. Для входа используйте тот же пароль, который вы использовали ранее на старом сервере Zabbix.

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

Заключение

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

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

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

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

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

This comment was minimized by the moderator on the site

Добрый день. Скажите, а разве нельзя со старого сервера Zаbbix экспортировать все конфигурационные файлы и dump MeSQL и импортировать на новый без последовательного обновления 5.4.x –> 6.0 –> 6.2 –> 6.4 –> 7.0 –> 7.2 –> 7.4?

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

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

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