Home » Zabbix » Обновление Zabbix 5.0 до 5.2

Обновление Zabbix 5.0 до 5.2

26 октября 2020 года состоялся релиз версии 5.2 популярной системы мониторинга Zabbix. В своей статье я расскажу, как обновиться до новой версии Zabbix 5.2 с предыдущего релиза 5.0. В качестве операционных систем, на которых будет выполняться обновление выступят Centos 7, 8 и Debian 10, Ubuntu 18, 20.

Хочешь научиться строить и поддерживать высоконагруженные приложения? Тогда рекомендую познакомиться с онлайн-интенсивом "Tarantool" в OTUS. Актуально для системных администраторов и devops инженеров. Подробности по .

Zabbix 5.0 upgrade to 5.2

Что нового в Zabbix 5.2?

Все нововведения свежей версии Zabbix 5.2 вы можете прочитать в официальном релизе - https://www.zabbix.com/ru/release_notes. Я среди них выделил следующие:

  1. Появился новый тип элемента данных - script. С его помощью можно существенно расширить возможности мониторинга. Например, при наблюдении за микросервисами и приложениями. Отрадно видеть такие изменения. Явно видно, что Zabbix старается идти в ногу со временем.
  2. Комплексные экраны полностью заменяются дашбордами. Их теперь можно будет создавать в шаблонах (наконец-то). Существующие экраны будут трансформированы в дашборды автоматически.
  3. Появились новые функции триггеров для работы с историческими данными. В документации еще не вижу подробностей. На одном из скринов видел функцию trendavg. Надо ждать обновление доков с подробностями использования.
  4. Улучшили ролевую модель прав пользователей для гранулярного управления правами. Не понял, о чем речь, не разбирался еще. Думаю, просто более гибко можно настраивать права на объекты и элементы мониторинга.
  5. Появились готовые шаблоны для мониторинга Asterisk, DB Oracle, Ceph, Squid, Php-fpm. Многие костыли, которые я городил много лет для мониторинга всех этих программ, становятся не актуальными. Напоминаю, что чуть раньше появился шаблон для мониторинга mssql server.
  6. Появилась встроенная поддержка протокола modbus. Я как раз недавно настраивал подобное. Для этого требовалась компиляция и установка внешнего модуля. Теперь все работает из коробки.
  7. В качестве стандартного формата для шаблонов становится YAML вместо XML.
  8. Настройки языка и часового пояса вынесли наконец-то в веб интерфейс. Их можно глобально указать во время установки сервера или отдельно в настройках пользователя.
  9. Теперь хосты можно создавать вообще без указания интерфейса и адреса на нем. Раньше приходилось указывать какой-то несуществующий адрес, если у вас был чисто технический хост, например, с http агентом, который сам по себе может собирать данные.

Ну и много других более мелких изменений. Я пробежался глазами по release_notes и перевел то, что показалось наиболее интересным. Еще наконец-то починили баг в Latest Data с отображением списков.

В общем, Zabbix не стоит на месте, развивается. Свою нишу в мониторинге удерживает твердо. Если кто-то не читал мою статью про сравнение Zabbix vs Prometheus, можете ознакомиться. Описал своими словами отличия.

Так же рекомендую мою статью по установке и настройке Zabbix 5. Там я разбираю различные варианты установки, выполняю первоначальную настройку и делюсь своим опытом эксплуатации данной системы мониторинга.

Подготовка к обновлению

Важная информация перед обновлением. Версия 5.2 без длительной поддержки. Через пол года к ней перестанут выходить обновления, так что вам обязательно придется обновляться на следующую версию. Если для вас не критичны нововведения этого релиза, пропускайте его и ждите новой LTS версии.

Если у вас версия ниже 5.0, то предварительно обновите ее до указанной. У меня есть цикл статей на тему обновления Zabbix:

Перед обновлением, сделаем на всякий случай бэкап базы данных. Для этого предварительно остановим сервер с агентом.

# systemctl stop zabbix-server zabbix-agent

У меня что-то активно писалось в базу, поэтому сервер выключался долго. Я проверил лог zabbix-server, чтобы убедиться в корректном выключении. Там все нормально было, сервер штатно завершил работу, дописав то, что у него там накопилось. Так что бэкапим.

# /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 скрипты админки, чтобы можно было оперативно запустить старую версию в случае нештатной ситуации. Хотя лично я сделал снепшот виртуалки перед обновлением, чтобы откатиться назад в случае проблем.

# cp -R /usr/share/zabbix /root

Centos 7

Подключаем репозиторий версии zabbix 5.0:

# rpm -Uvh https://repo.zabbix.com/zabbix/5.2/rhel/7/x86_64/zabbix-release-5.2-1.el7.noarch.rpm

Centos 8

# rpm -Uvh https://repo.zabbix.com/zabbix/5.2/rhel/8/x86_64/zabbix-release-5.2-1.el8.noarch.rpmСтарый репозиторий от версии 4.4 будет автоматически удален.

Подключение репозитория Zabbix 5.2

Очищаем и пересоздаем кэш yum:

# yum clean all
# yum makecache

Debian 10

Удаляем пакет текущего репозитория:

# rm -Rf /etc/apt/sources.list.d/zabbix.list

Подключаем новый:

# wget https://repo.zabbix.com/zabbix/5.2/debian/pool/main/z/zabbix-release/zabbix-release_5.2-1%2Bdebian10_all.deb
# dpkg -i zabbix-release_5.2-1+debian10_all.deb

Обновляем информацию о репозиториях:

# apt update

Ubuntu 18

Удаляем пакет текущего репозитория:

rm -Rf /etc/apt/sources.list.d/zabbix.list

Подключаем новый:

# wget https://repo.zabbix.com/zabbix/5.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.2-1%2Bubuntu18.04_all.deb
# dpkg -i zabbix-release_5.2-1+ubuntu18.04_all.deb

Обновляем информацию о репозиториях:

# apt update

Ubuntu 20

Удаляем пакет текущего репозитория:

rm -Rf /etc/apt/sources.list.d/zabbix.list

Подключаем новый:

# wget https://repo.zabbix.com/zabbix/5.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.2-1%2Bubuntu20.04_all.deb
# dpkg -i zabbix-release_5.2-1+ubuntu20.04_all.deb

Обновляем информацию о репозиториях:

# apt update

Если у вас другие версии систем, то простой найдите ссылки пакетов под свою версию в официальном репозитории — https://repo.zabbix.com/zabbix/5.2/ Дальнейшее обновление не будет отличаться от текущего.

К обновлению подготовились, можно приступать.

Установка обновления zabbix 5.0 до 5.2

Centos 7, 8

Для начала проверим список установленных пакетов zabbix в системе. Их название может быть разным в зависимости от используемых репозиториев. К примеру, в centos 7 у пакетов может быть дополнение в виде scl к названию пакета.

Centos 7:

# rpm -qa | grep zabbix
zabbix-web-5.0.5-1.el7.noarch
zabbix-web-mysql-scl-5.0.5-1.el7.noarch
zabbix-agent-5.0.5-1.el7.x86_64
zabbix-web-deps-scl-5.0.5-1.el7.noarch
zabbix-apache-conf-scl-5.0.5-1.el7.noarch
zabbix-release-5.2-1.el7.noarch
zabbix-server-mysql-5.0.5-1.el7.x86_64

Centos 8:

# rpm -qa | grep zabbix
zabbix-server-mysql-5.0.5-1.el8.x86_64
zabbix-web-5.0.5-1.el8.noarch
zabbix-web-mysql-5.0.5-1.el8.noarch
zabbix-web-deps-5.0.5-1.el8.x86_64
zabbix-release-5.0-1.el8.noarch
zabbix-agent-5.0.5-1.el8.x86_64

Устанавливаем обновление zabbix на сервер Centos 8, выбирая установленные у вас пакеты:

# yum upgrade zabbix-web zabbix-web-mysql zabbix-server-mysql zabbix-agent

Обновление zabbix 5.0 до 5.2 на Centos

Для centos 7 будет такой список:

# yum upgrade zabbix-web zabbix-web-mysql-scl zabbix-agent zabbix-server-mysql

Обращаю внимание, что на момент написания данной статья, пакетов 5.2 для Centos 7 в репозиториях нет. В официальных инструкциях их тоже нет и не понятно, будут ли. Как только появятся, я дополню статью.

Пакеты Zabbix 5.2 для Centos 7

После завершения обновления, запускаем zabbix-server.

# systemctl start zabbix-server

Проверяем лог сервера. Необходимо дождаться обновления базы данных. Важно не трогать в этот момент сервер, не прерывать обновление, не пытаться его перезапустить. Если база большая, обновление может длиться очень долго. Рекомендую сначала где-то протестировать этот процесс, прежде чем обновлять прод.

# tail -f /var/log/zabbix/zabbix_server.log

Обновление базы zabbix

В конце должны получить сообщение:

2860543:20201029:173036.441 completed 100% of database upgrade
2860543:20201029:173036.441 database upgrade fully completed

Есть ненулевой шанс, что будет какая-то ошибка с базой. Чаще всего возникают проблемы с какой-то нестандартной записью в таблице. Туда может попасть какой-то необычный символ, или с кодировкой проблемы. В этих случаях удаляйте проблемные записи, меняйте кодировку базы zabbix.

После обновления переходите в web интерфейс и проверяйте версию Zabbix. Должна быть 5.2.

Web интерфейс Zabbix 5.2

На этом обновления Zabbix до 5.2 на Centos завершено.

Debian / Ubuntu

Устанавливаем само обновление zabbix на сервер с Debian или Ubuntu следующей командой:

# apt upgrade zabbix-agent zabbix-frontend-php zabbix-nginx-conf zabbix-server-mysql

Обновление zabbix 5.0 до 5.2 на Debian / Ubuntu

После завершения обновления, запускаем сервер:

# systemctl start zabbix-server

В момент запуска произойдет обновление базы данных. Для маленькой базы (1-2 гб) это не займет много времени. Вы можете даже не заметить процесса. Если база больше, то надо подождать, пока не закончится обновление. Следить за ним можно с помощью просмотра лог файла zabbix сервера.

# tail -f /var/log/zabbix/zabbix_server.log

После завершения обновления базы, сервер запустится. После этого можно запустить и агент.

# systemctl start zabbix-agent

В логах агента и сервера можно посмотреть версию запущенных сервисов.

Starting Zabbix Agent [Zabbix server]. Zabbix 5.2.0 (revision bcf99fb248).
Starting Zabbix Server. Zabbix 5.2.0 (revision bcf99fb248).

Теперь можно идти в веб интерфейс и смотреть на обновленную версию zabbix server. Перед этим почистите кэш браузера и удалите куки от страницы заббикса. Если этого не сделать, то могут быть проблемы и ошибки, с чем я не раз сталкивался. Если у вас в качестве веб сервера используется nginx, не забудьте поменять владельца директории /etc/zabbix/web на nginx, в том случае, если веб сервер работает от него. После обновления он будет принадлежать apache, а web интерфейс не заработает.

# chown -R nginx:nginx /etc/zabbix/web

Теперь можете лицезреть обновленную версию web интерфейса в браузере.

Заключение

Напоминаю, что с обновлением 5.2 появились новые шаблоны. Они автоматически не появятся у вас на сервере. Их нужно будет скачать и импортировать вручную из репозитория - https://github.com/zabbix/zabbix/tree/master/templates. Это же касается и способов оповещения, который много добавилось в 5-й версии. Если не обновили их вручную при переходе на 5-ю ветку, то так же можете забрать их из репы и импортировать к себе на сервер.

Супер-интенсив "Tarantool"

Если у вас есть желание освоить платформу in-memory вычислений, востребованную в современных высоконагруженных приложениях, рекомендую пройти интенсив Tarantool в OTUS. Обучение длится 5 дней. Что даст вам этот интенсив:
  • Узнаете архитектуру и внутреннее устройство Tarantool.
  • Поймете сильные и слабые стороны Tarantool.
  • Сможете назвать сходства и отличия от других СУБД.
  • Увидите кейсы использования: куда брать, куда не брать.
  • Установите и запустите Tarantool.
  • Поднимете собственный кластер.
Смотрите подробнее программу по .

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Автор Zerox

Zerox
Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

36 комментариев

  1. Аватар
    Сергей

    подскажите пожалуйста, может кто знает, zabbix-proxy 5.2.1 на centos 7 где взять? а то сервер обновил, а потом оказалось что в репозитории zabbix-proxy 5.2.1 нет, и старый прокси теперь с сервером не синхронизируется (

    • Zerox

      Если в репе нет, то только собрать из исходников. В целом, это не очень сложно, но если нет выхода, надо собирать. Это проще, чем назад откатываться.

      • Аватар
        Сергей

        Согласен с Вами. Да и назад не хочется. Попробую скомпилировать, что поделать.

  2. Аватар

    При обновлении на 5.2 поломались графы отправляемые ableev/Zabbix-in-Telegram

    • Zerox

      Спасибо за информацию. Я пока не тороплюсь обновляться. Не вижу для себя большой необходимости. Возможно, пропущу этот релиз.

  3. Аватар
    Евгений

    После обновления с 5.0.5 до 5.2.1, появилось уведомление Unsupported charset or collation for tables: item_parameter, role, role_rule.

  4. Аватар
    Аноним

    Просьба пояснить по шаблонам.

    Была версия заббикса 5.0, стала 5.2.

    1. Я правильно понимаю, что шаблоны надо обновлять руками?

    2. Как правильно обновлять шаблоны, если хочется обновить все стандартные шаблоны?

    3. Есть возможность посмотреть на изменения в шаблонах, не сравнивая их вручную? Официалы ничего не выкладывают https://www.zabbix.com/documentation/current/ru/manual/installation/template_changes

    • Zerox

      Обычно достаточно прочитать подробные изменения в новой версии, чтобы понять, поменялся там шаблон или нет. Их не так много и меняются они не часто. Все это отражено в release notes.

      Как автоматически сравнить шаблоны, я не знаю. Мне известен только один способ замены - вручную удалить старый шаблон и импортировать новый.

      Чаще всего в системе используется не так много шаблон по сравнению с тем, что есть в наличии. Можно просто удалить их все и добавить из самых свежих только те, что нужны. Я делаю так.

      • Аватар
        Аноним

        При импорте шаблона "галочки", которые заббикс выставляет (Правила, Обновить существующее, Создать новый, Удалить отсутствующее) нужно подправлять?

        Можно ли обновить шаблон без потери собранных данных?

        • Zerox

          Галочки я всегда дефолтные использую. А вот обновить так просто шаблон без потери данных не получится. При обновлении шаблона многие айтемы имеют схожие имена, а значит новый шаблон не применится без удаления старых айтемов. А при удалении, они очищаются. В общем, я не нашел простого пути, как обновить шаблон и не потерять данные. Из-за этого на многих серверах по прежнему использую старые шаблоны, если они удовлетворяют задачам. В принципе, вы можете вручную перенести изменения из старого шаблона в новый. Да, это немного муторно делать вручную, но в целом не очень сложно. Зачастую, это единственный способ.

          • Аватар
            Аноним

            Кстати, заметил, что шаблоны, которые идут изначально в поставке, названы лучше, чем из гитхаба:
            было: Template App NNTP Service
            стало: NTP Service

            Если можно "попытать" - есть еще один вопрос, косвено связанный с обновлением/шаблонами.

            Я очень давно мониторю нагиосом. Я могу достать очень старые данные. Но снимаемые данные я завожу сам, руками. Как я понимаю, философия заббикса: добавить хост, подключить шаблон, в шаблоне должно быть ллд. Т.е. метрики, которые мониторятся добавляются автоматически и, что самое главное, если шаблон обновляется, то вся история удаляется.

            Как идеалогически верно работать с заббиксом таким образом, чтобы и заббикс был всегда свежий и данные были за весь период. Или заббиксу "в пару" надо ставить что-то еще

            • Zerox

              "Шаблон обновляется - данные удаляются" это не так. Удаляются данные только если вы удаляете айтем, который их собирал. Совершенно необязательно, что обновление шаблона приведет к удалению айтема. Более того, шаблоны вообще меняются редко и вы всегда можете руками аккуратно все обновить, так что данные не потеряются. В этом плане Zabbix очень хорош. Он как раз адаптирован к хранению большого количества исторических данных.

              Ничего не надо ставить заббиксу в пару. Его спокойно можно обновлять, к потере данных это не приводит. Он потому и не обновляет шаблоны автоматически, чтобы обеспечить максимально стабильную работу и сохранность данных. На моей памяти самый популярный шаблон для мониторинга ОС Linux обновился равно один раз в версии 4.4. До этого с версии 2.4 он был один и тот же. В основном новые шаблоны только добавляются. Нет никакой необходимости убирать старые шаблоны и ставить новые.

              • Аватар
                Аноним

                Спасибо.

                Будет здорово, если напишете про подход к сопровождению заббикса в длительной инсталляции: нужно ли что-то чистить, как масштабировать и пр

  5. Аватар
    Сергей

    Обновление шаблонов из репозитория - https://github.com/zabbix/zabbix/tree/master/templatesр дало ошибку "Ошибка при импортировании. Unable to parse at line 7 (near "")." Сервер на Cen8.
    Установлены компоненты
    zabbix-web-mysql-5.2.1-1.el8.noarch
    zabbix-sender-5.2.1-1.el8.x86_64
    zabbix-web-5.2.1-1.el8.noarch
    zabbix-web-deps-5.2.1-1.el8.noarch
    zabbix-server-mysql-5.2.1-1.el8.x86_64
    zabbix-java-gateway-5.2.1-1.el8.x86_64
    zabbix-agent-5.2.1-1.el8.x86_64
    zabbix-release-5.2-1.el8.noarch
    zabbix-nginx-conf-5.2.1-1.el8.noarch
    zabbix-get-5.2.1-1.el8.x86_64
    Что можете посоветовать?

  6. Аватар
    Андрей

    После установки сервера и агента , у агента вот такая как бы ошибка...При этом все работает.
    Кто нибудь знает как решить проблему?. На что она влияет и т.д.
    Файл то на который он ссылается существует, и он сам его создает со своими правами. Почему такая ерунда - не понятно.

    При этом, установка агента на чистую виртуалку Centos 7, 8. Debian - везде одно и тоже....

    Так же есть такая же ошибка на самом сервере, но там именно zabbix-server.service и дальше такая же.

    zabbix-agent.service: Can't open PID file /run/zabbix/zabbix_agentd.pid (yet?) after start: No such file or directory

    • Zerox

      Так это вроде не ошибка, а информационное сообщение. На момент запуска pid файла не было, но он успешно создался после запуска.

      • Аватар
        Андрей

        Я в принципе тоже так подумал. потому что при первом запуске(скажем при перезагрузке виртуалки) все окей. Но стоит перезапустить агента, как появляется такое сообщение. Довольно странно - ведь в весиях до 4й было все отлично.

  7. Аватар

    у меня вот так на сеn 7 получилось

    zabbix-server-pgsql-5.0.5-1.el7.x86_64
    zabbix-release-5.2-1.el7.noarch
    zabbix-web-deps-scl-5.0.5-1.el7.noarch
    zabbix-web-pgsql-scl-5.0.5-1.el7.noarch
    zabbix-apache-conf-scl-5.0.5-1.el7.noarch
    zabbix-web-5.0.5-1.el7.noarch
    zabbix-agent-5.2.0-1.el7.x86_64

    • Zerox

      Так ничего не получилось. Кроме агента ничего не обновилось, потому что пакетов нет в репозитории для Centos 7. Пока не получится обновиться. Можно либо самому собрать свой пакет, либо прям из исходников установить. Но лучше просто подождать. Думаю, пакеты в ближайшее время подвезут.

  8. Аватар

    спасибо, интересно
    к сожалению не увидел можно ли через api получать графики
    извиняюсь если я тормоз и это уже было в 4-х версиях.
    сам сижу на 3.4 и не очень в курсе что нового появилось с тех пор.
    но этой фичи сильно мне не хватает. приходится графики строить графаной и забирать в свое вебприложение уже оттуда.

    • Zerox

      Я, честно говоря, не знаю. По идее можно. Скрипты отправки уведомлений в телеграм откуда-то берут графики и шлют в телегу. Можно там подсмотреть, как это происходит. Я не помню подробностей.

  9. Аватар
    Андрей

    Не смог обновиться по вашему мануалу
    Вероятно в имени репозитория ошибка:
    # wget https://repo.zabbix.com/zabbix/5.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.2-1%2Bubuntu18.04_all.deb
    # dpkg -i zabbix-release_5.2-1+ubuntu18.04_all.deb

    5.2-1+ubuntu или 5.2-1%Bubuntu

    Процесс обновления запускается, но репозиторий остается старый и не обновляется с версии 5.0.2 на 5.2.0

    • Zerox

      Нет ошибки. Даже если через браузер скачать файл по указанной ссылке, то скачивается пакет с репозиторием. Само имя файла - zabbix-release_5.2-1+ubuntu18.04_all.deb. Символ плюс в http запросе кодируется как %2B, но это не проблема.

  10. Аватар

    Спасибо за инструкцию. Обновился до версии 5.2. Вот только не останавливал службу, а как оказалось обновил на горячую. Все работает, пишет что версия 5.2. Интересно он при обновлении сам остановил сервер и все перезаписал или перезаписал только часть файлов и в дальнейшем после обновления такого могут появиться проблемы.

    • Zerox

      Если сейчас все работает, то вряд ли будут какие-то проблемы в будущем. Скорее всего он сам себя перезапустил во время установки, иначе как новые бинарники запустить. Я всегда останавливаю сервер, чтобы нормально снять бэкап. Наживую никогда не обновлял.

  11. Аватар

    А обновление базы он в фоне делает после старта службы или перед запуском службы?
    Пробовал обновить 5.0.1 до 5.0.2 в своё время и получил жуткие лаги системы сразу после обновления (до этого нормально работало всё). Ждать не стал и быстро откатил виртуалку к снапшоту до обновления.
    Вот думаю что это было и почему. База у меня постгре правда с timescaledb.

    • Zerox

      Обновление базы запускается в момент старта службы zabbix-server. Пока база не обновится, сервер не запустится в рабочем режиме. Так что тормоза не могли быть связаны с фоновым обновлением.

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

Ваш адрес email не будет опубликован.

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.