Zabbix перенос на другой сервер

Задача: мигрировать zabbix-сервер на новую платформу с сохранением всех настроек, айтемов, триггеров, хостов и прочего исключив историю записей
В статье подразумевается, что была произведена установка и настройка zabbix-сервера с нуля и на текущий момент он абсолютно пуст.
Текущий сервер:

Так как zabbix хранит все данные в БД, то решением будет дамп всех таблиц, в имени которых не встречатся history. Есть маленький нюанс: исключить нужно только те таблицы, которые начинаются с history

как видим кроме общей истории zabbix сохраняет историю прокси и пользователей, которую мы оставим.
Сделаем мы это следующим образом:
Запросом получим от сервера список всех таблиц в БД, исключим из них те, которые начинаются с history и сделаем дамп каждой в отдельный архив:

Получаем следующий вывод:

Отправка полученного каталога на новый сервер:

Импортируем дампы всех таблиц: получаем список всех архивов и поочерёдно в цикле загоняем данные в БД

После этого на новом zabbix сервере появились все необходимые инстансы.

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

Для отправки комментария вам необходимо авторизоваться.

четверг, 7 августа 2014 г.

Linux перенос Zabbix со старого сервера на новый с обновлением версии

Дано: есть backup базы zabbix 2.0.3 на ubuntu 12.10, нужно поставить на ubuntu 14.04 текущий релиз zabbix 2.2.5

Поставить zabbix 2.0.3 и потом обновить на ubuntu 14.04 из deb-пакетов нельзя, нет релиза 2.0.3 для ubuntu 14.04

Решение: разворачиваем backup 2.0.3, даем права пользователю zabbix в MySQL, запускаем установку zabbix-server-mysql (версия 2.2.5). Веб-интерфейс у меня разворачивается вручную из tar-архива.

Во время установки предлагается создать базу zabbix, но так как она уже развернута — отказываемся. Проверяем конфиг /etc/zabbix/zabbix_server.conf и заполняем отутствующие параметры. У меня там после установки не были заполнены данные для подключения к базе (DBUser=zabbix DBPassword=password).
Что дальше? Дело в том, что база обновляется при старте zabbix-server. Поэтому важно, чтобы не было ограничений доступа к базе и не прерывайте обновление. Иначе можно словить подобное: Configuration file error: The frontend does not match Zabbix database. Current database version (mandatory/optional): 2010033/2010033. Required mandatory version: 2020000. Contact your system administrator.
и придется выкручиваться по ситуации. У меня например добавилось поле в таблицу config и обновление остановилось. Пришлось ручками удалять и запускать заново zabbix-server.

Читайте также:  Mysql if then else

Для этого просматриваем лог zabbix на предмет таких записей
31958:20140806:152453.863 completed 94% of database upgrade
31958:20140806:152454.097 completed 95% of database upgrade
31958:20140806:152454.316 completed 96% of database upgrade
31958:20140806:152454.364 completed 97% of database upgrade
31958:20140806:152454.481 completed 98% of database upgrade
31958:20140806:152454.539 completed 99% of database upgrade
31958:20140806:152454.598 completed 100% of database upgrade
31958:20140806:152454.598 database upgrade fully completed
31965:20140806:152454.607 server #1 started [configuration syncer #1]
31966:20140806:152454.607 server #2 started [db watchdog #1]

Если нужно остановить zabbix-server, то проверяем лог и не останавливаем во время обновления.

После обновления можно заходить в веб-интерфейс и работать.

250Gb. Дело осложняется не только размером базы, но и тем, что SSD (RAID1) переезжают в новый сервер — сейчас рейд собран через контроллер, а в новом сервере будет mdadm.

Посоветуйте пожалуйста как переехать с сохранением всех настроек (что куда копировать) и с минимальным простоем.

Адрес нового сервера будет такой же как у старого, клиенты перенастраивать не придется.

  • Вопрос задан более года назад
  • 2754 просмотра

Итак, что в итоге сделано для успешного переноса Zabbix.
1) На новом сервере развернул Zabbix той же версии.
-скопированы конфиги, алерт-скрипты, внешние скрипты
-"стандартная" база данных развернута на системных HDD, по стандартному пути /var/lib/mysql
2) На старом сервере сделал бекапы через innobackupex, mysqldump.
3) На обоих серверах остановил mysql, файлы из /var/lib/mysql старого сервера скопировал в ту же папку на новом сервере.
4) Запустил на новом сервере mysql. Запустился. Делаю mysql_upgrade — утилита менее чем за минуту проверила все таблицы базы на совместимость с новой версией MariaDB (на старом была 10.0, на новом 10.1). Отлично
5) Перенес SSD из старого сервера в новый, собрал из них RAID1 (на старом сервере HP контроллер, на новом mdadm).
6) Смонтировал RAID в папку (/srv/ssd, можно в любую пустую), скопировал в /srv/ssd/mysql "проверенные" данные из /var/lib/mysql.
7) Очистил /var/lib/mysql, примонтировал туда /srv/ssd/mysql.
6) Запустил mysql — работает.
7) Остановил старый сервер, назначил новому серверу ip старого, чтобы не перенастраивать тысячи zabbix-агентов.
8) PROFIT!

Rate this post

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

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