В последнее время задача, указанная в заголовке, стала очень актуальна в связи с различными изменениями с операционных системах. Я расскажу, как перенести Zabbix Server с одного сервера на другой максимально просто и быстро. Сам уже несколько раз проделывал эту процедуру, так как во-первых, закончилась поддержка Centos 8 и я переезжаю потихоньку на Debian. Во-вторых, в Centos 7 поддержка Zabbix Server прекращена, начиная с версии 5.4. То есть до 5.4 вы не обновитесь, не переехав на другую систему.
Введение
Как я уже сказал, 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 это просто перенос его базы данных, так как всё своё состояние он хранит в ней, за исключением конфигурации самой службы и возможно каких-то дополнительных скриптов.
Онлайн курcы по Mikrotik
Если у вас есть желание научиться работать с роутерами микротик и стать специалистом в этой области, рекомендую пройти курcы по программе, основанной на информации из официального курcа MikroTik Certified Network Associate. Помимо официальной программы, в курcах будут лабораторные работы, в которых вы на практике сможете проверить и закрепить полученные знания. Все подробности на сайте Курcы по ИТ. Стоимость обучения весьма демократична, хорошая возможность получить новые знания в актуальной на сегодняшний день предметной области. Особенности курcов:- Знания, ориентированные на практику;
- Реальные ситуации и задачи;
- Лучшее из международных программ.
Заканчивается место на диске по причине роста объема базы Заббикс. Какой способ решения проблемы посоветуете выбрать? Добавить диск и перенести туда БД, увеличить место на диске или еще что-то? Сервеса Забикса виртуальная машина на 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
Спасибо! Прочитал, да, понимаю Вас... Сами страдаем от блокировщиков. Одно время было выходом Яндекс.Турбо для контентных сайтов, там можно было людям с блокировщиками показывать десктопное турбо. Но, насколько я знаю, Яндекс свернул это направление.
В любом случае, спасибо за Ваш труд, за уже вышедшие статьи, да и вообще.
Я не то, чтобы страдаю. Сайт занимал моё время, а теперь оно освободилось. По доходу я остался в плюсе, потому что сайт с точки зрения дохода не очень прибыльный актив. Я хотел в том числе помогать людям статьями. Но раз они решили, что им это не надо, то зачем и мне этим заниматься. Сам то я знаю всё, что написано в статьях.