Thank you for reading this post, don't forget to subscribe!
закончилась поддержка Centos 8 и я переезжаю потихоньку на Debian. Во-вторых, в Centos 7 поддержка Zabbix Server прекращена, начиная с версии 5.4. То есть до 5.4 вы не обновитесь, не переехав на другую систему.
поддержка самой системы 7-й версии будет до 2023 года. По идее, она всё еще актуально. Но это в теории, на практике есть проблемы. Причин у команды Zabbix несколько:
- Старая версия php 5.4, а надо минимум 7.2 для нового веб интерфейса.
- TLS подключения к базе данных не поддерживаются в Centos 7.
- Старые пакеты OpenSSL не поддерживают TLS 1.3.
Все эти проблемы так или иначе можно решить, но ребята из Zabbix решили, что оно не стоит того. Слишком много хлопот с этой уже устаревшей системой. И я их прекрасно понимаю, так как сам устал от подобных проблем со старыми пакетами.
В итоге для дальнейшего обновления Zabbix Server нужно мигрировать с Centos 7 на какую-то другую систему. Я выбрал в качестве такой системы Debian 11.
Подготовка к переносу Zabbix Server
Первое, что вам нужно сделать для переноса Zabbix Server - установить точно такую же версию на новый сервер. Если переносите Zabbix Server 5.0, то на новый сервер устанавливаете тоже 5.0
Вам нужно не только установить и подготовить сам сервер, но и перенести все конфигурационные файлы и скрипты со старого сервера на новый. Можно просто скопировать с перезаписью дефолтных конфигов. А так же создать базу данных 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 загрузится, все агенты начнут отправлять на него информацию, так как для них ничего не поменялось. Фактически на этом перенос закончен.