Дано. Debian 8 + Zabbix 4.4.
Хочу. Debian 10 + Zabbix 5.х.
1. Плацдарм для нового заббикса.
Действия произвожу на свежий установленный дистрибутив Debian 10.
Для начала надо выровнять версии zabbix. На исходном сервере версия 4.4, значит на сервер назначения я буду устанавливать такую же версию.
Проверить наличие php. Если нет, то:
apt -y install php php-common apt install php php-mysql php-mysqlnd php-ldap php-bcmath php-mbstring php-gd php-pdo php-xml libapache2-mod-php apt -y install libapache2-mod-php
Подготовка дистрибутива:
wget https://repo.zabbix.com/zabbix/4.4/debian/pool/main/z/zabbix-release/zabbix-release_4.4-1+buster_all.deb dpkg -i zabbix-release_4.4-1+buster_all.deb apt update
mariadb может пускать без пароля, надо проверить. Если это так, то вот как устранить - https://unix-garage.tk/mariadb-ne-prosit-parol-root-pri-vhode-ili-vypolnyaet-vhod-s-nevernym-parolem/
Настройка mariadb:
mysql_secure_installation
На очередной чистой ОС Debian 10 не оказалось никакой установленной СУБД. Я поставил MYSQL8 - https://unix-garage.tk/ustanovka-mysql-5-7-na-debian-10. При настройке первичной возникает затыка с установкой пароля для root, оно гуглится и решается через ALTER USER.
Подготовка БД для zabbix-server:
# mysql -uroot -p password mysql> create database zabbix character set utf8 collate utf8_bin; mysql> create user zabbix@localhost identified by 'password'; mysql> grant all privileges on zabbix.* to zabbix@localhost; mysql> quit; Установка:
apt install zabbix-server-mysql zabbix-frontend-php zabbix-agent
apt install zabbix-apache-conf
zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p zabbix
Мой конфиг для MariaDB (/etc/mysql/mariadb.conf.d/50-server.cnf):
innodb_strict_mode = 0 query_cache_size = 16M query_cache_type = 0 innodb_file_per_table = 1 innodb_log_file_size = 16M innodb_buffer_pool_size = 13G innodb_stats_on_metadata = 0 innodb_flush_method = O_DIRECT
Настройка конфигурации:
nano /etc/zabbix/zabbix_server.conf DBPassword=password
Настройка часового пояса:
/etc/zabbix/apache.conf php_value date.timezone Europe/Riga
Перезапуск сервисов и добавление в автозагрузку:
systemctl restart zabbix-server zabbix-agent apache2 systemctl enable zabbix-server zabbix-agent apache2
Копирование конфига для веб-интерфейса:
ln -s /etc/zabbix/apache.conf /etc/apache2/sites-enabled/
Открываем веб-интерфейс по адресу своего хоста (я на локальном тренировался) и завершаем установку:
http://10.10.10.172/zabbix/setup.php
На забываем посмотреть старый рабочий конфиг сервера, чтобы прописать все нужные параметры на новом месте. Вот пример моего старого конфига:
egrep -v '^#|^$' zabbix_server.conf LogFile=/var/log/zabbix/zabbix_server.log LogFileSize=0 DebugLevel=3 PidFile=/var/run/zabbix/zabbix_server.pid DBName=zabbix DBUser=zabbix DBPassword=ххххххххх DBSocket=/var/run/mysqld/mysqld.sock StartPollers=20 StartPollersUnreachable=5 StartPingers=2 JavaGateway=127.0.0.1 JavaGatewayPort=10052 StartJavaPollers=5 MaxHousekeeperDelete=15000 CacheSize=256M StartDBSyncers=6 HistoryCacheSize=64M HistoryIndexCacheSize=16M TrendCacheSize=24M ValueCacheSize=64M Timeout=25 AlertScriptsPath=/usr/lib/zabbix/alertscripts ExternalScripts=/usr/lib/zabbix/externalscripts FpingLocation=/usr/bin/fping Fping6Location=/usr/bin/fping6 LogSlowQueries=3000
Он не образцовый. Конфигурация сервера всегда настраивается под текущие потребности. Как пишется в самой инструкции Zabbix, слишком много выделенных ресурсов по некоторым параметрам это тоже не есть хорошо.
Возможные проблемы в процессе настройки, с которыми я сталкивался.
The server requested authentication method unknown to the client
Решается вот так:
ALTER USER zabbix@localhost IDENTIFIED WITH mysql_native_password BY 'password'; GRANT ALL ON zabbix.* TO zabbix@localhost; FLUSH PRIVILEGES;
Такая ошибка:
Incorrect default charset for Zabbix database: "utf8mb3" instead "UTF8".
Решение:
zabbix.com/documentation/current/en/manual/appendix/install/db_charset_coll
https://www.zabbix.com/forum/zabbix-help/446193-zabbix-upgrade-from-5-4-to-6-0-automatic-database-upgrade-problem
Но применительно к текущей статье Zabbix 4.4 не взлетает на mysql 8, поэтому если есть эти ошибки, то лучше выбрать mysql5.7 или mariadb.
Как только веб-интерфейс пустил в настройки по логину Admin и паролю по умолчанию zabbix, система готова к переносу данные. Можно сделать её копию на случай, если что-то при переносе потом пойдёт не так и чтобы не разворачивать всё по новой.
2. Подготовка пациента.
Обновляем пациента до нужной версии, которая поедет на целевой новый сервер.
rm -Rf /etc/apt/sources.list.d/zabbix.list cd /tmp wget https://repo.zabbix.com/zabbix/4.4/debian/pool/main/z/zabbix-release/zabbix-release_4.4-1+jessie_all.deb dpkg -i zabbix-release_4.4-1+jessie_all.deb apt update service zabbix-server stop service zabbix-agent stop apt-get install --only-upgrade zabbix-server-mysql zabbix-frontend-php zabbix-agent service zabbix-server start service zabbix-agent start
tail -f /var/log/zabbix/zabbix_server.log — наблюдать за обновлением базы и должно быть в процессе сообщение database upgrade fully completed, например вот так:
7216:20201022:155130.354 completed 99% of database upgrade 7216:20201022:155131.464 completed 100% of database upgrade 7216:20201022:155131.464 database upgrade fully completed 7216:20201022:155131.472 database is not upgraded to use double precision values 7216:20201022:155131.546 server #0 started [main process] 7242:20201022:155131.550 server #1 started [configuration syncer #1]
Теперь версии у меня сравнялись: Zabbix 4.4.10.
Перенос заббикса.
Останавливаем сервер, чтобы в базу не писались данные. Копия базы:
service zabbix-server stop
mysqldump -u root -p zabbix > /var/mysqldump/zabbix.sql
Архив веб-интерфейса:
tar -czf zabbix-web.tar /usr/share/zabbix
Переношу на целевой сервер и разворачиваю дампы. Останавливаю заббикс сервер.Вливаю базу:
service zabbix-server stop
mysql -u root -p zabbix < zabbix.sql
Распаковываю и копирую новые файлы веб-интерфейса в /usr/share/zabbix
tar -xvf zabbix-web.tar
Запускаю сервер:
service zabbix-server start
Проверю что всё заработало.
Обновление до 5-й версии.
service zabbix-server stop rm -Rf /etc/apt/sources.list.d/zabbix.list cd /tmp wget https://repo.zabbix.com/zabbix/5.1/debian/pool/main/z/zabbix-release/zabbix-release_5.1-1+debian10_all.deb dpkg -i zabbix-release_5.1-1+debian10_all.deb apt-get update apt-get install --only-upgrade zabbix-server-mysql zabbix-frontend-php zabbix-agent
tail -f /var/log/zabbix/zabbix_server.log — наблюдать за обновлением базы
Получился у меня Zabbix 5.2.0rc2.