Thank you for reading this post, don't forget to subscribe!
Недавно вышла новая версия сервера Zabbix 5.0. Сегодня я расскажу, как обновить предыдущую версию zabbix 4.4 до актуальной 5.0. Делать это придется в обязательном порядке всем, так как версия 4.4 не LTS и имеет ограниченное время поддержки. В то время 5.0 как раз LTS с циклом поддержки в 5 лет.
Важный нюанс. Минимальные системные требования к версии php для Zabbix 5 - 7.2 Так что прежде чем обновлять сам сервер мониторинга, убедитесь, что у вас стоит подходящая версия php.
Перед обновлением, сделаем на всякий случай бэкап базы данных. Для этого предварительно остановим сервер.
1 |
# systemctl stop zabbix-server |
У меня что-то активно писалось в базу, поэтому сервер выключался долго. При этом systemd выдал ошибку:
1 2 |
Failed to stop zabbix-server.service: Connection timed out See system logs and 'systemctl status zabbix-server.service' for details. |
Я проверил лог zabbix-server, чтобы убедиться в корректном выключении. Там все нормально было, сервер штатно завершил работу, дописав то, что у него там накопилось. Так что бэкапим.
1 |
# /usr/bin/mysqldump --opt -v --databases zabbix -uzabbix -p'password' | /usr/bin/gzip -c > /root/zabbix.sql.gz |
zabbix | название базы данных заббикса |
-uzabbix | ключ -u и дальше имя пользователя базы данных |
-p’password’ | ключ -p и дальше пароль пользователя бд, если в пароле есть спецсимволы, экранируйте их одиночными кавычками |
На всякий случай сохраним php скрипты админки, чтобы можно было оперативно запустить старую версию в случае нештатной ситуации. Хотя лично я сделал снепшот виртуалки перед обновлением, чтобы откатиться назад в случае проблем.
1 |
# cp -R /usr/share/zabbix /root |
Centos 7
Подключаем репозиторий версии zabbix 5.0:
1 |
# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm |
Centos 8
1 |
# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm |
Старый репозиторий от версии 4.4 будет автоматически удален.
Очищаем и пересоздаем кэш yum:
1 2 |
# yum clean all # yum makecache |
Debian 10
Удаляем пакет текущего репозитория:
1 |
# rm -Rf /etc/apt/sources.list.d/zabbix.list |
Подключаем новый:
1 2 |
# wget https://repo.zabbix.com/zabbix/5.0/debian/pool/main/z/zabbix-release/zabbix-release_5.0-1+buster_all.deb # dpkg -i zabbix-release_5.0-1+buster_all.deb |
Обновляем информацию о репозиториях:
1 |
# apt update |
Ubuntu 18
Удаляем пакет текущего репозитория:
1 |
rm -Rf /etc/apt/sources.list.d/zabbix.list |
Подключаем новый:
1 2 |
# wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+bionic_all.deb # dpkg -i zabbix-release_5.0-1+bionic_all.deb |
Обновляем информацию о репозиториях:
1 |
# apt update |
Ubuntu 20
Удаляем пакет текущего репозитория:
1 |
rm -Rf /etc/apt/sources.list.d/zabbix.list |
Подключаем новый:
1 2 |
# wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb # dpkg -i zabbix-release_5.0-1+focal_all.deb |
Обновляем информацию о репозиториях:
1 |
# apt update |
Если у вас другие версии систем, то простой найдите ссылки пакетов под свою версию в официальном репозитории — https://repo.zabbix.com/zabbix/5.0/ Дальнейшее обновление не будет отличаться от текущего.
К обновлению подготовились, можно приступать.
Установка обновления zabbix 4.4 до 5.0
Centos 8
Устанавливаем само обновление zabbix на сервер Centos следующей командой:
1 |
# yum upgrade zabbix-server-mysql zabbix-web-mysql zabbix-web zabbix-agent |
Это список пакетов заббикса для общего случая. Если у вас установлено что-то еще, лучше обновить все сразу. Посмотреть список установленных пакетов zabbix можно командой:
1 2 3 4 5 6 7 8 |
rpm -qa | grep zabbix zabbix-agent-4.4.8-1.el8.x86_64 zabbix-web-4.4.8-1.el8.noarch zabbix-release-5.0-1.el8.noarch zabbix-web-mysql-4.4.8-1.el8.noarch zabbix-server-mysql-4.4.8-1.el8.x86_64 zabbix-get-4.4.8-1.el8.x86_64 zabbix-sender-4.4.8-1.el8.x86_64 |
В приведенном примере есть еще пакеты zabbix-get и zabbix-sender. Обновляем все сразу:
1 |
# yum upgrade zabbix-server-mysql zabbix-web zabbix-agent zabbix-get zabbix-sender |
Centos 7
В Centos 7 обновить Zabbix с 4-й вертки на 5-ю может оказать не такой простой задачей. Связано это с тем, что необходима версия php 7.2, в ее в базовых репозиториях Centos 7 нет. Необходимо подключать репозиторий centos-release-scl и ставить пакеты из него. Но просто так взять и поставить не получится, будет конфликт с текущими версиями пакетов. Так что нужно аккуратно что-то удалить, а что-то добавить. Действуем аккуратно и внимательно.
Удаляем старые пакеты, которые будут заменены при обновлении:
1 |
# yum remove zabbix-web-* |
Подключаем репозиторий centos-release-scl:
1 |
# yum install centos-release-scl |
Редактируем файл /etc/yum.repos.d/zabbix.repo, разрешая обновляться пакетам из zabbix-frontend. Не забудьте проверить, что у вас подключился репозиторий от 5-й версии.
1 2 3 4 5 |
[zabbix-frontend]name=Zabbix Official Repository frontend - $basearch baseurl=http://repo.zabbix.com/zabbix/<strong>5.0</strong>/rhel/7/$basearch/frontend <strong>enabled=1</strong> gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591 |
Устанавливаем новые пакеты:
1 |
# yum install zabbix-web-mysql-scl zabbix-apache-conf-scl |
Обновляем существующие:
1 |
# yum update zabbix-* |
Теперь убедитесь, что у вас активирован новый конфиг zabbix для apache. У вас должен быть файл /etc/httpd/conf.d/zabbix.conf, а в нем следующая строка:
1 |
SetHandler "proxy:unix:/var/opt/rh/rh-php72/run/php-fpm/zabbix.sock|fcgi://localhost" |
Она отвечает за использования новой версии php 7.2 из пакета php-fpm. Перезапускаем все службы:
1 2 |
# systemctl restart zabbix-server httpd # systemctl enable --now rh-php72-php-fpm |
После этого у вас должно корректно пройти обновление zabbix на 5-ю версию в Centos 7.
Debian / Ubuntu
Устанавливаем само обновление zabbix на сервер с Debian или Ubuntu следующей командой:
1 |
# apt-get install --only-upgrade zabbix-server-mysql zabbix-frontend-php zabbix-agent |
Дальше инструкция общая для всех систем. После завершения обновления, запускаем сервер:
1 |
# systemctl start zabbix-server |
В момент запуска произойдет обновление базы данных. Для маленькой базы (1-2 гб) это не займет много времени. Вы можете даже не заметить процесса. Если база больше, то надо подождать, пока не закончится обновление. Следить за ним можно с помощью просмотра лог файла zabbix сервера.
1 |
# tail -f /var/log/zabbix/zabbix_server.log |
После завершения обновления базы, сервер запустится. После этого можно запустить и агент.
1 |
# systemctl start zabbix-agent |
В логах агента и сервера можно посмотреть версию запущенных сервисов.
1 2 |
Starting Zabbix <strong>Agent </strong>[Zabbix server]. Zabbix 5.0.0 (revision 9665d62db0). Starting Zabbix <strong>Server</strong>. Zabbix 5.0.0 (revision 9665d62db0). |
Теперь можно идти в веб интерфейс и смотреть на обновленную версию zabbix server. Перед этим почистите кэш браузера и удалите куки от страницы заббикса. Если этого не сделать, то могут быть проблемы и ошибки, с чем я не раз сталкивался. Если у вас в качестве веб сервера используется nginx, не забудьте поменять владельца директории /etc/zabbix/web на nginx, в том случае, если веб сервер работает от него. После обновления он будет принадлежать apache, а web интерфейс не заработает.
1 |
# chown -R nginx:nginx /etc/zabbix/web |
Можете лицезреть обновленную версию web интерфейса.
Сначала провел обновление на небольшом сервере. У меня весь процесс прошел без ошибок и накладок. Новый интерфейс сразу заработал.
Основные изменения в интерфейсе Zabbix 5.0
Я потратил некоторое время, пока искал привычные настройки на новых местах. Чтобы сэкономить вам время, дам несколько подсказок.
Web проверки и графики теперь живут в разделе Узлы сети.
Я долго искал web проверки и перепугался, не убрали ли их совсем из системы. Для меня это очень актуальный функционал. С его помощью настроен мониторинг сайтов.
Для того, чтобы посмотреть на одном экране набор произвольных графиков хотса, надо перейти в Узлы сети, открыть графики конкретного хоста. Затем перейти в Фильтр и там выбрать необходимые графики. Стало удобно.
Раньше, чтобы быстро посмотреть несколько графиков на одном экране, надо было их собирать в дашборд или комплексный экран. Теперь можно без проблем вывести в три клика все, что надо.
Настройка шаблонов оповещений теперь находится в способах оповещений. Все старые шаблоны, что были в действиях, удалены. Так что сохраняйте их перед обновлением.
Вот подтверждение того, что несмотря на обновление zabbix server до 5.0, шаблон остался старый.
В новом шаблоне этого триггера уже нет. Так что добавлять в систему и обновлять шаблоны у хостов придется вручную. Я уже немного занимался этим еще в версии 4.4 и могу сказать, что это хлопотно. В новых шаблонах больше данных и триггеров, которые не всегда и не везде нужны. Надо внимательно все смотреть и отключать не нужное. А так же редактировать некоторые триггеры под свои нужды.
С другой стороны, если вас старые шаблоны полностью устраивают, то и менять их не обязательно. Я скорее всего на старых установках так и оставлю старые шаблоны, а в новых буду использовать новые.