Содержание страницы
Заметки в процессе обновления
Вводные данные, ОС Debian 9 версия 9.13 и Zabbix 4.0.12
План обновления
Предельно простой из-за того что используется довольно старый дистрибутив Debian будем обновлять ZABBIX по мере поддержки, можно конечно все было обновить на Debian 9, но было принято решение в процессе обновить и ОС до актуальной версии, в связи с поддержкой нужных версий ПО PHP 7.4, MariaDB – 10.5, да их можно установить на более старые версии дистрибутивов Debian, но лучше обновить сейчас пока это возможно.
- Обновление ZABBIX до версии 4.2 на Debian 9
- Обновление Debian 9 до Debian 10
- Обновление ZABBIX до версии 5.0 на Debian 10
- Обновление Debian 10 до Debian 11
- Обновление ZABBIX до версии 6.0 на Debian 11
- Обновление ZABBIX до версии 6.2 на Debian 11
- Обновление ZABBIX до версии 6.4 на Debian 11
- Обновление Debian 11 до Debian 12
- Обновление ZABBIX до версии 7.0 на Debian 12
Обновление ОС Debian
Задача крайне простая и описана тут
После обновления Debian до более высокой версии, PHP будет работать не корректно из-за неверной конфигурации, рекомендуется удалить все версии и библиотеки используемые PHP.
Обновление ZABBIX
Процедура обновления сервера ZABBIX одинаковая, отличия только в версии ZABBIX и ОС. Так же будут замечания при обновлении дистрибутива и версии PHP
Остановка процессов ZABBIX
service zabbix-server stop
service zabbix-agent stop
Создание резервной копии
Резервное копирование базы данных ZABBIX
mkdir /opt/zabbix-backup/
mysqldump --opt -v --databases zabbix -uzabbix -pqwerty123 | gzip -c > /opt/zabbix-backup/sql/zabbix.sql.gz
Убедитесь, что у вас имеется резервная копия вашей базы данных. Если процедура обновления закончится неудачно, она поможет восстановить работу сервиса.
Резервное копирование файлов конфигурации, PHP файлов и бинарных файлов ZABBIX
mkdir /opt/zabbix-backup/
cp /etc/zabbix/zabbix_server.conf /opt/zabbix-backup/
cp /etc/apache2/conf-enabled/zabbix.conf /opt/zabbix-backup/
cp -R /usr/share/zabbix/ /opt/zabbix-backup/
cp -R /usr/share/doc/zabbix-* /opt/zabbix-backup/
Обновление репозитория
Чтобы продолжить обновление, необходимо удалить текущий репозиторий.
rm -Rf /etc/apt/sources.list.d/zabbix.list
dpkg --purge zabbix-release
Перед обновлением
Добавлена инкрементная синхронизация кэша конфигурации для хостов, тегов хостов, элементов, тегов элементов, предварительной обработки элементов, триггеров, тегов триггеров и функций, чтобы сократить время синхронизации и нагрузку на базу данных при обновлении конфигурации на уже работающем сервере Zabbix или прокси-сервере Zabbix. В результате этого изменения во время обновления необходимо создать детерминированные триггеры.
В MySQL и MariaDB это необходимо установить GLOBAL log_bin_trust_function_creators = 1
mysql -uroot -p zabbix -e "SET GLOBAL log_bin_trust_function_creators = 1;"
После обновления вернуть в стандартное положение
mysql -uroot -p zabbix -e "SET GLOBAL log_bin_trust_function_creators = 0;"
Добавление репозитория ZABBIX нужной версии
- ZABBIX 4.0 (Debian 8/9/10)
wget https://repo.zabbix.com/zabbix/4.0/debian/pool/main/z/zabbix-release/zabbix-release_4.0-3+$(lsb_release -c -s)_all.deb
dpkg -i zabbix-release_4.0-3+$(lsb_release -c -s)_all.deb
- ZABBIX 4.0 (Debian 11)
wget https://repo.zabbix.com/zabbix/4.0/debian/pool/main/z/zabbix-release/zabbix-release_4.0-4+debian$(cut -d"." -f1 /etc/debian_version)_all.deb
dpkg -i zabbix-release_4.0-4+debian$(cut -d"." -f1 /etc/debian_version)_all.deb
- ZABBIX 4.4 (Debian 8/9/10)
wget https://repo.zabbix.com/zabbix/4.4/debian/pool/main/z/zabbix-release/zabbix-release_4.4-1+$(lsb_release -c -s)_all.deb
dpkg -i zabbix-release_4.4-1+$(lsb_release -c -s)_all.deb
- ZABBIX 5.0 (Debian 8/9/10/11)
wget https://repo.zabbix.com/zabbix/5.0/debian/pool/main/z/zabbix-release/zabbix-release_5.0-1+$(lsb_release -c -s)_all.deb
dpkg -i zabbix-release_5.0-1+$(lsb_release -c -s)_all.deb
- ZABBIX 5.0 (Debian 11)
wget https://repo.zabbix.com/zabbix/5.0/debian/pool/main/z/zabbix-release/zabbix-release_5.0-1+debian$(cut -d"." -f1 /etc/debian_version)_all.deb
dpkg -i zabbix-release_5.0-1+debian$(cut -d"." -f1 /etc/debian_version)_all.deb
- ZABBIX 6.0 (Debian 8/9/10/11)
wget https://repo.zabbix.com/zabbix/6.0/debian/pool/main/z/zabbix-release/zabbix-release_6.0-1+debian$(cut -d"." -f1 /etc/debian_version)_all.deb
dpkg -i zabbix-release_6.0-1+debian$(cut -d"." -f1 /etc/debian_version)_all.deb
- ZABBIX 6.2 (Debian 9/10/11)
wget https://repo.zabbix.com/zabbix/6.2/debian/pool/main/z/zabbix-release/zabbix-release_6.2-1+debian$(cut -d"." -f1 /etc/debian_version)_all.deb
dpkg -i zabbix-release_6.2-1+debian$(cut -d"." -f1 /etc/debian_version)_all.deb
- ZABBIX 6.4 (Debian 9/10/11)
wget https://repo.zabbix.com/zabbix/6.4/debian/pool/main/z/zabbix-release/zabbix-release_6.4-1+debian$(cut -d"." -f1 /etc/debian_version)_all.deb
dpkg -i zabbix-release_6.4-1+debian$(cut -d"." -f1 /etc/debian_version)_all.deb
- ZABBIX 7.0 (Debian 9/10/11/12)
wget https://repo.zabbix.com/zabbix/7.0/debian/pool/main/z/zabbix-release/zabbix-release_7.0-1+debian$(cut -d"." -f1 /etc/debian_version)_all.deb
dpkg -i zabbix-release_7.0-1+debian$(cut -d"." -f1 /etc/debian_version)_all.deb
Обновление сервера ZABBIX
apt update apt install -y --only-upgrade zabbix-server-mysql zabbix-frontend-php zabbix-agent
Запуск сервисов
service zabbix-server start
service zabbix-agent start
Обновление версии PHP
При обновлении ОС Debian c 9 на 10 или с 10 на 11, необходимо удалить PHP и его библиотеки.
apt update
apt remove -y php*
# apt purge -y php*
apt remove -y zabbix-apache-conf
apt autoremove -y
Установить нужную версию PHP и все необходимые модули, а так же настроить Apache для текущей версии ZABBIX поможет zabbix-apache-conf
apt install -y zabbix-apache-conf
Перезапустим Apache
service apache2 restart
Проверка выполнения обновления базы ZABBIX
cat /var/log/zabbix/zabbix_server.log | grep database
15244:20221123:133217.440 current database version (mandatory/optional): 06000000/06000007
15244:20221123:133217.440 starting automatic database upgrade 15244:20221123:133217.446 completed 1% of database upgrade 15244:20221123:133217.840 completed 10% of database upgrade ********************************************************** 15244:20221123:133218.110 completed 98% of database upgrade 15244:20221123:133218.123 completed 100% of database upgrade 15244:20221123:133218.123 database upgrade fully completed 15244:20221123:133218.136 database could be upgraded to use primary keys in history tables
Проверка оповещений
После обновления, уведомления будут какое время работать. Но как только измените хотя бы один параметр то значения некоторых параметров придут в пустое значение, тк при обновлении данные параметры не соответствуют новым требованиям.
Ошибка No media defined for user – у пользователя не указан способ оповещения
Ошибка No message defined for media type – в способе оповещения отсутствуют шаблоны сообщений
Необходимо обновить все в соответствии с новой версией ZABBIX
- Администрирование -> Способы оповещения
- Там будет 3 вкладки: Способ оповещений, Шаблоны сообщений и Опции, проверить необходимо все
- Проверяем Способ оповещений, в данной вкладке настраивается способ подключения, логин, пароль и аналогичные настройки, в зависимости от типа оповещения
- Если во вкладке Шаблоны сообщений, то необходимо создать шаблоны для необходимых типов сообщения, обычно это Проблема, Восстановление проблемы и Обновление проблемы (если они отсутствуют вы получите ошибку No message defined for media type)
- Во вкладке Опции, нет особых изменений
- После нажмите обновить и выполните тестирование, используя кнопку тест
- Там будет 3 вкладки: Способ оповещений, Шаблоны сообщений и Опции, проверить необходимо все
- Администрирование -> Пользователи
- Выбираем нужного пользователя, переходим во вкладку Оповещения
- Проверяем что установлен нужный тип оповещения и указаны необходимые поля, например
- Добавляем нужно количество видов оповещения, в моем случае их 2 Telegram и Email
- После нажмите обновить
- Выбираем нужного пользователя, переходим во вкладку Оповещения
- Настройка -> Действия-> Действия триггеров
- Выбираем или создаем нужный триггер
- Во вкладке Операции, указываем как и кого оповещать, при Проблеме, Восстановлении и Обновлении проблем
- В моем случае Проблема и Восстановление
- Выбираем или создаем нужный триггер
Ошибки в процессе обновления
[Z3005] query failed: [1709] Index column size too large
При обновлении с Zabbix-сервера с версии 4.0 до версии 5.0.
[Z3005] query failed: [1709] Index column size too large. The maximum column size is 767 bytes [create index items_1 on items (hostid,key_(1021))]
Решение
Добавить в mysql конфиг в секцию [mysqld]
innodb_large_prefix = ON
innodb_file_format = Barracuda
Возможно потребуется изменить формат innodb-default-row-format
innodb-default-row-format=dynamic
[Z3005] query failed: [1118] Row size too large
[Z3005] query failed: [1118] Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
Решение временно отключить режим innodb strict в MySQL/MariaDB и перезапустить сервис zabbix-server
mysql -uroot -p zabbix -e "set global innodb_strict_mode='OFF';"
service zabbix-server restart
После успешного обновления вернуть параметр в нормальное состояние
mysql -uroot -p zabbix -e "set global innodb_strict_mode='ON';"
service zabbix-server restart
[Z3005] query failed: [1419] You do not have the SUPER privilege and binary logging is enabled
[Z3005] query failed: [1419] You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variab> before insert on hosts for each row
Проверка
mysql> SHOW VARIABLES LIKE 'log_bin_trust_function_creators'; +---------------------------------+-------+ | Variable_name | Value | +---------------------------------+-------+ | log_bin_trust_function_creators | OFF | +---------------------------------+-------+
Решение
mysql -uroot -p zabbix -e "set global log_bin_trust_function_creators = 1;"
service zabbix-server restart
mysql> SELECT Host,User,Super_priv FROM mysql.user; +-----------+-------------+------------+
| Host | User | Super_priv |
+-----------+-------------+------------+
| % | admin | Y |
| localhost | zabbix | N |
| localhost | mariadb.sys | N |
| localhost | root | Y |
+-----------+-------------+------------+
Решение
UPDATE mysql.user SET Super_Priv='Y' WHERE user='zabbix' AND host='localhost';
После успешного завершения обновления log_bin_trust_function_creators можно отключить
Дополнительная информация