В последнее время задача, указанная в заголовке, стала очень актуальна в связи с различными изменениями с операционных системах. Я расскажу, как перенести Zabbix Server с одного сервера на другой максимально просто и быстро. Сам уже несколько раз проделывал эту процедуру, так как во-первых, закончилась поддержка Centos 8 и я переезжаю потихоньку на Debian. Во-вторых, в Centos 7 поддержка Zabbix Server прекращена, начиная с версии 5.4. То есть до 5.4 вы не обновитесь, не переехав на другую систему.
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Введение
Как я уже сказал, Zabbix больше не поддерживает Centos 7 в качестве системы для сервера мониторинга. Хотя поддержка самой системы 7-й версии будет до 2023 года. По идее, она всё еще актуально. Но это в теории, на практике есть проблемы. Причин у команды Zabbix несколько:
- Старая версия php 5.4, а надо минимум 7.2 для нового веб интерфейса.
- TLS подключения к базе данных не поддерживаются в Centos 7.
- Старые пакеты 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
И далее добавьте 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 и дальше пароль пользователя бд, если в пароле есть спецсимволы, экранируйте их одиночными кавычками |
Этот дамп нужно перенести на новый сервер. Можете использовать любой привычный для вас способ. В простых случаях я предпочитаю scp:
# scp ~/zabbix.sql.gz root@10.1.3.19:/tmp
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.
@Zerox , hey. Подскажи, если я конвертну centos7 ---> almalinux8, а потом в almalinux9, zabbix взлетит или танец нужен будет?
Точно не знаю. Скорее всего будут танцы, так как там сильно разные пакеты для php и веб сервера. Мне кажется, конкретно Zabbix проще настроить заново и перенести. Там всего конфиг сервера надо перекинуть и дамп базы. Это проще и быстрее, чем делать обновления. Я все Zabbix серверы переносил вручную. И на Debian :)
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
Есть возможность как решить проблему?
Заканчивается место на диске по причине роста объема базы Заббикс. Какой способ решения проблемы посоветуете выбрать? Добавить диск и перенести туда БД, увеличить место на диске или еще что-то? Сервеса Забикса виртуальная машина на Hyper-V, диск один системный.
Вот ещё вариант, удалить лишнее: https://serveradmin.ru/chto-zanimaet-mesto-v-baze-dannyh-zabbix/
Что если на том же Centos 7 развернуть zabbix в докере?
Можно, если очень хочется.
Спасибо, миграция прошла успешно!!
Подскажите, если базы в разных базах лежат как быть на исходном сервере 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 на 8 Centos.
Переезд с 7 на 8 Centos.
Проще всего докеризировать заббикс и миграция будет еще проще - скопировал папку
При чём тут докер? Перенос Zabbix = Перенос БД. Не важно, где она запущена, на хосте или в докере.
бд в докере - это просто папка, скопировал и запустил на другом сервере без всяких танцев с установкой софта нужной версии, дампами и ресторами
Перенос папки не всегда может привести к желаемому результату. Так что дампы я бы советовал регулярно снимать и хранить.
Спасибо большое, успешно переехали с CentOS 7 на Ubuntu 20 по вашей инструкции!
Если база с timescaledb это вариант переноса БД будет работать?
В примере используется база Mysql. Для PostgreSQL будет всё то же самое, только переносить надо эту базу.
Zabbix 6.0 у меня уходит в регулярный рестарт, как только я пытаюсь добавить хосты через импорт или миграциюБД
Забыл добавить что на Ubuntu 18 и 20
Логи сервера надо смотреть. Там будет информация о проблемах.
Владимир, добрый день.
Не знал куда написать. Есть такой плагин для wordpress 'VDZ Yandex Metrika' думаю многие его используют. так вот рекомендую его отключить. так как антироссийская риторика.
https://ru.wordpress.org/plugins/vdz-yandex-metrika/
p.s.
комментарий можете не публиковать.
Да, я видел уже. И не только в этом плагине. Все плагины от VDZ занимаются этим.
Я включил попробовать новый zabbix 6 и параметры, которые приехали из windows содержащие кириллицу отображаются криво (например Network Adapter(БеÑÐ¿Ñ€Ð¾Ð²Ð¾Ð´Ð½Ð°Ñ Ñеть 2). Э то мне локаль БД менять или где-то в конфиге можно поправить?
Присоединяюсь к вопросу
Нет, ничего менять не надо. В 6.0 такой баг. Вчера обновился до 6.0.2 и все прекрасно по-русски прописалось. На 6.0 были проблемы с русскими буквами на дашбордах и путях в триггерах.
Кодировку таблиц БД надо менять.
O каком debian 11 идет речь, если оффрепы максимум под buster?
https://www.zabbix.com/documentation/current/en/manual/installation/requirements
https://www.zabbix.com/documentation/current/en/manual/installation/install_from_packages/debian_ubuntu
Вот репа: https://repo.zabbix.com/zabbix/5.4/debian/pool/main/z/zabbix-release/zabbix-release_5.4-1+debian11_all.deb
Давно уже всё есть.
А почему выбрали debian а не oracle? я всегда страдаю когда обновляю debian.
Что за страдания от обновления? Мне в целом не нравится, что появился целый набор rpm-based дистрибутивов. Непонятно, как ошибки гуглить, статьи писать. Перебирать все дистрибутивы? Я посмотрел опросы, статистику. Deb-based дистрибутивы выросли в статистике. Да и Ubuntu набирает популярность всё больше и больше, а это тот же Debian.
Можете на Ubuntu продемонстрировать, как с нуля поднять zabbix
https://serveradmin.ru/ustanovka-i-nastrojka-zabbix-5-0/
Добрый день. По 6й версии пока не планируете такую же подробную статью по установка и настройке? Спасибо.
Пока вообще не планирую подробных статей. Если интересны причины, то описывал их тут:
https://t.me/srv_admin/1610
https://t.me/srv_admin/1614
Спасибо! Прочитал, да, понимаю Вас... Сами страдаем от блокировщиков. Одно время было выходом Яндекс.Турбо для контентных сайтов, там можно было людям с блокировщиками показывать десктопное турбо. Но, насколько я знаю, Яндекс свернул это направление.
В любом случае, спасибо за Ваш труд, за уже вышедшие статьи, да и вообще.
Я не то, чтобы страдаю. Сайт занимал моё время, а теперь оно освободилось. По доходу я остался в плюсе, потому что сайт с точки зрения дохода не очень прибыльный актив. Я хотел в том числе помогать людям статьями. Но раз они решили, что им это не надо, то зачем и мне этим заниматься. Сам то я знаю всё, что написано в статьях.