Переезд или перенос Zabbix Server

В последнее время задача, указанная в заголовке, стала очень актуальна в связи с различными изменениями с операционных системах. Я расскажу, как перенести Zabbix Server с одного сервера на другой максимально просто и быстро. Сам уже несколько раз проделывал эту процедуру, так как во-первых, закончилась поддержка Centos 8 и я переезжаю потихоньку на Debian. Во-вторых, в Centos 7 поддержка Zabbix Server прекращена, начиная с версии 5.4. То есть до 5.4 вы не обновитесь, не переехав на другую систему.

Онлайн-курс по устройству компьютерных сетей

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Введение

Как я уже сказал, Zabbix больше не поддерживает Centos 7 в качестве системы для сервера мониторинга. Хотя поддержка самой системы 7-й версии будет до 2023 года. По идее, она всё еще актуально. Но это в теории, на практике есть проблемы. Причин у команды Zabbix несколько:

  1. Старая версия php 5.4, а надо минимум 7.2 для нового веб интерфейса.
  2. TLS подключения к базе данных не поддерживаются в Centos 7.
  3. Старые пакеты OpenSSL не поддерживают TLS 1.3.

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

В итоге для дальнейшего обновления Zabbix Server нужно мигрировать с Centos 7 на какую-то другую систему. Я выбрал в качестве такой системы Debian 11. Так что на практике расскажу и покажу, как перенести Zabbix Server с Centos 7 на Debian 11. Инструкция будет одинаково актуальна для любой системы, так как принцип один и тот же.

Подготовка к переносу Zabbix Server

Первое, что вам нужно сделать для переноса Zabbix Server - установить точно такую же версию на новый сервер. Если переносите Zabbix Server 5.0, то на новый сервер устанавливаете тоже 5.0. У меня есть подробная инструкция по установке Zabbix Server.

Вам нужно не только установить и подготовить сам сервер, но и перенести все конфигурационные файлы и скрипты со старого сервера на новый. Можно просто скопировать с перезаписью дефолтных конфигов. А так же создать базу данных MySQL или PostgreSQL, в зависимости от того, что используете, с таким же именем, пользователем и паролем, как на старом сервере. Это не обязательно, но так будет удобнее. Не придётся конфиг сервера менять.

Когда закончите, можете запустить Zabbix Server на новом сервере и зайти в веб интерфейс. Если вас встретит установщик, значит всё сделали правильно. Можно выполнить чистую установку и убедиться, что всё готово, веб интерфейс работает. В это же время советую внимательно посмотреть и перенести со старого сервера всё, что может пригодиться - external scripts, задачи cron, настройки sudoers и многое другое, что могло использоваться в процессе эксплуатации.

Если вы используете русский язык в веб интерфейсе, то в Debian или Ubuntu не забудьте добавить локаль ru_RU:

# dpkg-reconfigure locales

dpkg-reconfigure locales

И далее добавьте ru_RU.UTF-8. Ставить по умолчанию её не обязательно.

Перенос Zabbix Server

Теперь можно перейти непосредственно к переносу сервера мониторинга. Для этого остановите старый сервер:

# systemctl stop zabbix-server zabbix-agent

Делаем дамп базы данных. В нём хранится вся информация по мониторингу, которую нужно перенести.

# /usr/bin/mysqldump --opt -v --databases zabbix -uzabbix -p'password' | /usr/bin/gzip -c > ~/zabbix.sql.gz
zabbix название базы данных заббикса
-uzabbix ключ -u и дальше имя пользователя базы данных
-p'password' ключ -p и дальше пароль пользователя бд, если в пароле есть спецсимволы, экранируйте их одиночными кавычками

Перенос Zabbix Server

Этот дамп нужно перенести на новый сервер. Можете использовать любой привычный для вас способ. В простых случаях я предпочитаю scp:

# scp ~/zabbix.sql.gz root@10.1.3.19:/tmp

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

10.1.3.19 - ip адрес нового сервера, на который переносим Zabbix. На старом сервере службу zabbix-server больше не запускаем.

Переходим на новый сервер, распаковываем архив базы данных:

# gunzip ~/zabbix.sql.gz

Открываем консоль MySQL и восстанавливаем дамп в базу данных Zabbix:

# mysql -u root -p
> use zabbix;
> source ~/zabbix.sql;

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

Дожидаемся окончания заливки. Это может длиться очень долго, если база большая.

После того, как загрузится дамп, можно зайти в веб интерфейс нового сервера и убедиться, что всё восстановлено и сервер выглядит также, как на старом месте. Если всё ОК, то выключайте старый сервер мониторинга и больше не включайте с этим IP. А на новом настройте IP адрес старого и тоже для верности перезагрузите.

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

Заключение

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

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

Онлайн-курс по устройству компьютерных сетей.

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

46 комментариев

  1. @Zerox , hey. Подскажи, если я конвертну centos7 ---> almalinux8, а потом в almalinux9, zabbix взлетит или танец нужен будет?

    • Точно не знаю. Скорее всего будут танцы, так как там сильно разные пакеты для php и веб сервера. Мне кажется, конкретно Zabbix проще настроить заново и перенести. Там всего конфиг сервера надо перекинуть и дамп базы. Это проще и быстрее, чем делать обновления. Я все Zabbix серверы переносил вручную. И на Debian :)

  2. Николай

    Database error

    The Zabbix database version does not match current requirements. Your database version: 6030059. Required version: 6040000. Please contact your system administrator.

    С чем может быть связана ошибка?

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

      • Аноним

        Подскажите как обновить?

        • Я не знаю, что конкретно вы делали? Если делаете перенос, то переносите на ровно такую же версию сервера, которая была на старом и такой проблемы не будет. Zabbix Server обновляется штатно, у меня много статей на эту тему.

          • Аноним

            Раньше стоял zabbix 6.2.7, поставил 6.4
            Есть возможность как решить проблему?

  3. Аноним

    Заканчивается место на диске по причине роста объема базы Заббикс. Какой способ решения проблемы посоветуете выбрать? Добавить диск и перенести туда БД, увеличить место на диске или еще что-то? Сервеса Забикса виртуальная машина на Hyper-V, диск один системный.

  4. Аноним

    Что если на том же Centos 7 развернуть zabbix в докере?

  5. Спасибо, миграция прошла успешно!!

  6. Подскажите, если базы в разных базах лежат как быть на исходном сервере Centos7-MariaBD , то на новом сервера CentOS8-MySQL?

    • Не понял вопрос. Что значит базы в разных базах лежат? У Zabbix ровно одна база данных. Если имеется ввиду переезд с MariaDB на MySQL, то проблем быть не должно. Они полностью совместимы по формату хранения данных. Дампы спокойно разворачиваются между этими версиями.

    • Jun 15 17:14:30 zabbix1.gsi.local zabbix_server[3463]: /usr/sbin/zabbix_server: error while loading shared libraries: libnetsnmp.so.31: cannot open shared object file: No such file or dire>
      Jun 15 17:14:30 zabbix1.gsi.local systemd[1]: zabbix-server.service: Control process exited, code=exited status=127
      Jun 15 17:14:30 zabbix1.gsi.local systemd[1]: zabbix-server.service: Failed with result 'exit-code'.

  7. Михаил

    Проще всего докеризировать заббикс и миграция будет еще проще - скопировал папку

    • При чём тут докер? Перенос Zabbix = Перенос БД. Не важно, где она запущена, на хосте или в докере.

      • Михаил

        бд в докере - это просто папка, скопировал и запустил на другом сервере без всяких танцев с установкой софта нужной версии, дампами и ресторами

        • Перенос папки не всегда может привести к желаемому результату. Так что дампы я бы советовал регулярно снимать и хранить.

  8. Виктор

    Спасибо большое, успешно переехали с CentOS 7 на Ubuntu 20 по вашей инструкции!

  9. Если база с timescaledb это вариант переноса БД будет работать?

    • В примере используется база Mysql. Для PostgreSQL будет всё то же самое, только переносить надо эту базу.

  10. Аноним

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

  11. Владимир, добрый день.
    Не знал куда написать. Есть такой плагин для wordpress 'VDZ Yandex Metrika' думаю многие его используют. так вот рекомендую его отключить. так как антироссийская риторика.
    https://ru.wordpress.org/plugins/vdz-yandex-metrika/
    p.s.
    комментарий можете не публиковать.

    • Да, я видел уже. И не только в этом плагине. Все плагины от VDZ занимаются этим.

  12. Александр Л

    Я включил попробовать новый zabbix 6 и параметры, которые приехали из windows содержащие кириллицу отображаются криво (например Network Adapter(Беспроводная сеть 2). Э то мне локаль БД менять или где-то в конфиге можно поправить?

    • Никита

      Присоединяюсь к вопросу

      • Аноним

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

    • Кодировку таблиц БД надо менять.

      • Аноним

        А почему выбрали debian а не oracle? я всегда страдаю когда обновляю debian.

        • Что за страдания от обновления? Мне в целом не нравится, что появился целый набор rpm-based дистрибутивов. Непонятно, как ошибки гуглить, статьи писать. Перебирать все дистрибутивы? Я посмотрел опросы, статистику. Deb-based дистрибутивы выросли в статистике. Да и Ubuntu набирает популярность всё больше и больше, а это тот же Debian.

          • Можете на Ubuntu продемонстрировать, как с нуля поднять zabbix

              • Добрый день. По 6й версии пока не планируете такую же подробную статью по установка и настройке? Спасибо.

                • Пока вообще не планирую подробных статей. Если интересны причины, то описывал их тут:
                  https://t.me/srv_admin/1610
                  https://t.me/srv_admin/1614

                  • Спасибо! Прочитал, да, понимаю Вас... Сами страдаем от блокировщиков. Одно время было выходом Яндекс.Турбо для контентных сайтов, там можно было людям с блокировщиками показывать десктопное турбо. Но, насколько я знаю, Яндекс свернул это направление.
                    В любом случае, спасибо за Ваш труд, за уже вышедшие статьи, да и вообще.

                    • Я не то, чтобы страдаю. Сайт занимал моё время, а теперь оно освободилось. По доходу я остался в плюсе, потому что сайт с точки зрения дохода не очень прибыльный актив. Я хотел в том числе помогать людям статьями. Но раз они решили, что им это не надо, то зачем и мне этим заниматься. Сам то я знаю всё, что написано в статьях.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.
Используешь Telegram? Подпишись на канал автора →
This is default text for notification bar